Punti chiave
- La definizione di solidi criteri per le password è fondamentale per la sicurezza informatica.
- Lo script PowerShell fornito automatizza le configurazioni dei criteri delle password su Windows.
- Lo script per impostare la lunghezza minima della password richiede i privilegi di amministratore per essere eseguito.
- I metodi automatizzati, come questo script per impostare la lunghezza minima della password, sono più efficienti delle configurazioni manuali, soprattutto in ambienti di grandi dimensioni.
- Le revisioni e gli aggiornamenti regolari dei criteri sono essenziali per un approccio proattivo alla sicurezza.
- L’integrazione con piattaforme come NinjaOne può amplificare i vantaggi di questi script.
- Garantire requisiti coerenti per le password rafforza direttamente la sicurezza informatica.
- Gli strumenti di automazione sono fondamentali nell’era della rapida espansione dell’IT e dell’aumento delle minacce informatiche.
Nell’ambito della sicurezza informatica, in continua evoluzione, la protezione dell’accesso degli account utente rimane un principio fondamentale. Poiché le aziende puntano a migliorare le misure di sicurezza, la definizione di requisiti appropriati per le password diventa fondamentale. Nel caso preso in esame in questo articolo, uno script PowerShell svolge un ruolo fondamentale automatizzando la modifica dei criteri delle password sui dispositivi Windows.
Background
Tradizionalmente, i professionisti IT e i fornitori di servizi gestiti (MSP) impostavano manualmente i requisiti delle password. Tuttavia, quando le infrastrutture crescono e la scalabilità diventa imperativa, i processi manuali diventano impraticabili. Questo script PowerShell per impostare la lunghezza minima della password risponde perfettamente alle nuove esigenza, consentendo agli amministratori di impostare lunghezze e periodi di validità specifici delle password per gli account locali sui sistemi Windows. Automatizzando queste attività banali ma essenziali, i professionisti IT possono garantire criteri coerenti per le password e, di conseguenza, un ambiente di sicurezza IT più solido.
Lo script per impostare la lunghezza minima della password
#Requires -Version 5.1 <# .SYNOPSIS Set the minium password length or age for local accounts. .DESCRIPTION Set the minium password length or age for local accounts. .EXAMPLE -Length 14 Set the minium password length for local accounts. .EXAMPLE -Length 14 -MinAge 30 -MaxAge 42 Set the minium password length, minium age, maximum age for local accounts. .EXAMPLE PS C:> Set-MiniumPasswordRequirements.ps1 -Length 14 -Age 42 Set the minium password length and age for local accounts. .OUTPUTS None .NOTES Minimum OS Architecture Supported: Windows 10, Windows Server 2016 Release Notes: Initial Release By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use. Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA). .COMPONENT LocalUserAccountManagement #> [CmdletBinding()] param ( [Parameter()] [ValidateRange(0, 14)] [int] $Length, [Parameter()] [ValidateRange(0, 998)] [int] $MinAge, [Parameter()] [ValidateRange(0, 999)] [int] $MaxAge ) begin { function Test-IsElevated { $id = [System.Security.Principal.WindowsIdentity]::GetCurrent() $p = New-Object System.Security.Principal.WindowsPrincipal($id) if ($p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) { Write-Output $true } else { Write-Output $false } } function Get-LocalPasswordPolicy { param () $Result = [PSCustomObject]@{ MinimumLength = 0 MaximumAge = 0 MinimumAge = 0 } $(net.exe accounts) -split "n" | ForEach-Object { $Line = $_ -split ":" if ($_ -like "Minimum password length*") { $Result.MinimumLength = "$($Line[1])".Trim(' ') } if ($_ -like "Maximum password age (days)*") { $Result.MaximumAge = "$($Line[1])".Trim(' ') } if ($_ -like "Minimum password age (days)*") { $Result.MinimumAge = "$($Line[1])".Trim(' ') } } $Result } $NetExeError = $false } process { if (-not (Test-IsElevated)) { Write-Error -Message "Access Denied. Please run with Administrator privileges." exit 1 } # Get Current localhost password policy settings $CurrentSettings = Get-LocalPasswordPolicy if ($PSBoundParameters.ContainsKey("Length") -and -not ($CurrentSettings.MinimumLength -like $NewSettings.MinimumLength -or $CurrentSettings.MinimumLength -eq $NewSettings.MinimumLength)) { Write-Host "Changing Minimum Password Length from $($CurrentSettings.MinimumLength) to $Length" net.exe accounts /minpwlen:$Length } if ($PSBoundParameters.ContainsKey("MaxAge") -and -not ( $(if ($CurrentSettings.MaximumAge -like "unlimited") { 0 }else { $CurrentSettings.MaximumAge }) -like $(if ($NewSettings.MaximumAge -like "unlimited") { 0 }else { $NewSettings.MaximumAge }) )) { Write-Host "Changing Maximum Password Age from $($CurrentSettings.MaximumAge) to $MaxAge" if ($MaxAge -gt 0) { net.exe accounts /maxpwage:$MaxAge } else { net.exe accounts /maxpwage:unlimited } } if ($PSBoundParameters.ContainsKey("MinAge") -and -not ($CurrentSettings.MinimumAge -like $NewSettings.MinimumAge -or $CurrentSettings.MinimumAge -eq $NewSettings.MinimumAge)) { Write-Host "Changing Minimum Password Age from $($CurrentSettings.MinimumAge) to $MinAge" net.exe accounts /minpwage:$MinAge } # Get New localhost password policy settings and check if anything changed $NewSettings = Get-LocalPasswordPolicy if ($PSBoundParameters.ContainsKey("Length") -and ($PSBoundParameters['Length'] -notlike $NewSettings.MinimumLength)) { $NetExeError = $true Write-Host "Minimum Length was not set correctly." } if ($PSBoundParameters.ContainsKey("MaxAge") -and ($PSBoundParameters['MaxAge'] -notlike $(if ($NewSettings.MaximumAge -like "unlimited") { 0 }else { $NewSettings.MaximumAge }))) { $NetExeError = $true Write-Host "Maximum Age was not set correctly." } if ($PSBoundParameters.ContainsKey("MinAge") -and ($PSBoundParameters['MinAge'] -notlike $NewSettings.MinimumAge)) { $NetExeError = $true Write-Host "Minimum Age was not set correctly." } if ($NetExeError) { exit 1 } } end {}
Accedi a oltre 700 script nel Dojo di NinjaOne
Analisi dettagliata
Lo script fornito utilizza le funzionalità di PowerShell per modificare i criteri delle password in Windows:
- Cmdlet Binding: Lo script per impostare la lunghezza minima della password inizia con il cmdlet binding, una funzione che gli consente di accettare parametri come Length, MinAge e MaxAge.
- Test-IsElevated: Una funzione che assicura che lo script per impostare la lunghezza minima della password venga eseguito con privilegi elevati.
- Get-LocalPasswordPolicy: Questa funzione recupera il criterio locale delle password attualmente in uso. Utilizza il comando ‘net.exe’ per raccogliere gli attributi dei criteri delle password e li restituisce.
- Blocco del processo: È qui che risiede la logica di base. Lo script per impostare la lunghezza minima della password confronta i criteri esistenti con i nuovi parametri. Se esistono differenze, utilizza i comandi “net.exe” per regolare i criteri.
- Convalida: Dopo aver apportato le modifiche, lo script per impostare la lunghezza minima della password recupera i criteri aggiornati delle password e li verifica rispetto ai parametri impostati, per garantire la corretta configurazione.
Casi d’uso potenziali
Caso di studio: Immagina un professionista IT, John, che lavora in una startup in rapida crescita. A seguito di un audit di cybersecurity, John si rende conto che molti account locali hanno criteri deboli per le password. Invece di aggiornare manualmente ogni sistema, John distribuisce questo scriptper impostare la lunghezza minima della password su tutte le workstation, per assicurarsi che tutti i dispositivi rispettino la lunghezza e il periodo di validità raccomandati per le password.
Confronti
La configurazione manuale attraverso le impostazioni di Windows o i criteri di gruppo è una strada percorribile, ma richiede molto tempo, è soggetta a errori e non è adatta ad ambienti di grandi dimensioni. Gli strumenti di terze parti offrono funzionalità simili, ma possono introdurre complessità o generare costi. Lo script per impostare la lunghezza minima della password fornito offre un approccio semplice, economico e scalabile.
Domande frequenti
- Su quali versioni di Windows funziona lo script per impostare la lunghezza minima della password?
Lo script per impostare la lunghezza minima della password supporta Windows 10 e Windows Server 2016 e versioni successive. - È necessario disporre dei diritti di amministratore per eseguire lo script per impostare la lunghezza minima della password?
Sì, lo script per impostare la lunghezza minima della password richiede privilegi elevati per modificare i criteri delle password.
Implicazioni
Criteri non corretti per le password possono portare ad accessi non autorizzati, violazioni dei dati e della conformità. Garantendo requisiti coerenti e forti per le password, le organizzazioni possono ridurre drasticamente questi rischi, rafforzando la loro situazione in termini di sicurezza informatica.
Raccomandazioni
- Ricontrolla e aggiorna regolarmente i criteri per le password per stare al passo con l’evoluzione delle minacce.
- Effettua sempre un backup prima di applicare le modifiche su un vasto numero di dispositivi.
- Utilizza questo script per impostare la lunghezza minima della password in combinazione con altri strumenti di automazione per una gestione IT completa.
Considerazioni finali
In un panorama in cui solide misure di sicurezza sono una necessità, gli strumenti che facilitano la configurazione dei criteri per le password in ambiente Windows diventano preziosi. Per le aziende che desiderano un approccio semplificato alla gestione delle risorse e delle configurazioni IT, piattaforme come NinjaOne possono fornire soluzioni complete. Integrando script come quello descritto in piattaforme come NinjaOne, le organizzazioni possono garantire criteri ottimali per le password, con conseguente miglioramento della sicurezza e dell’efficienza operativa.