Punti chiave:
- Controllo automatizzato: Lo script automatizza il processo per abilitare o disabilitare la creazione di account Microsoft, migliorando l’efficienza nella gestione degli account utente.
- Miglioramento della sicurezza: Controllando la creazione degli account, lo script per disabilitare la creazione di account migliora in modo significativo la sicurezza degli ambienti Windows.
- Flessibilità dei parametri: Offre personalizzazione attraverso parametri come Allow, BlockLogin e ForceReboot, per adattarsi a diversi requisiti amministrativi.
- Modifica delle chiavi di registro: Agisce modificando specifiche chiavi di registro che regolano i criteri di creazione e utilizzo degli account.
- Considerazioni sulla compatibilità: Progettato principalmente per Windows 10 e potenzialmente per Windows 11, la sua compatibilità con altre versioni non è garantita.
- Applicazione in casi concreti: Ideale per applicare i criteri aziendali sulla creazione e la gestione degli account utente, in particolare nelle grandi organizzazioni.
- Script o controllo manuale: Offre una soluzione più efficiente e meno soggetta a errori rispetto alle modifiche manuali del registro o alle regolazioni dei criteri di gruppo.
- Importanza dei test: È essenziale testare lo script per disabilitare la creazione di account in un ambiente controllato prima dell’implementazione su larga scala per evitare conseguenze indesiderate.
- Bilanciare sicurezza e usabilità: È fondamentale garantire che le misure di sicurezza non ostacolino l’accesso e il flusso di lavoro degli utenti legittimi.
- Integrazione con gli strumenti di gestione: Può essere efficacemente integrato con soluzioni di gestione IT come NinjaOne per migliorare le capacità di distribuzione e monitoraggio.
Introduzione
La gestione degli account utente è un aspetto critico dell’amministrazione IT, che ha un impatto diretto sulla sicurezza del sistema e sull’accessibilità degli utenti. Il controllo sulla creazione di nuovi account utente, in particolare di quelli Microsoft, è un compito essenziale per i professionisti IT e i Managed Service Provider (MSP). Uno script PowerShell che automatizzi il processo per disabilitare la creazione di account non solo migliora la sicurezza, ma fa anche risparmiare tempo e risorse.
Background
Lo script per disabilitare la creazione di account è uno strumento basato su PowerShell, progettato per abilitare o disabilitare la creazione di account Microsoft sui sistemi Windows. La sua importanza nell’IT deriva dalla necessità di mantenere il controllo sull’accesso degli utenti negli ambienti aziendali. Limitando la creazione di nuovi account Microsoft, i professionisti IT possono impedire l’accesso non autorizzato, garantire la conformità ai criteri aziendali e mantenere un ambiente informatico sicuro.
Lo script per disabilitare la creazione di account:
#Requires -Version 5.1 -RunAsAdministrator <# .SYNOPSIS Block or Allow the ability to create Microsoft Accounts. .DESCRIPTION Block or Allow the ability to create Microsoft Accounts. .EXAMPLE PS C:\> Disable-MicrosoftAccountCreation.ps1 Blocks creation of Microsoft Accounts. PARAMETER: -Allow Allows creation of Microsoft Accounts. .EXAMPLE PS C:\> Disable-MicrosoftAccountCreation.ps1 Allows creation of Microsoft Accounts. PARAMETER: -ForceReboot Blocks creation of Microsoft Accounts and reboot after 2 minutes. .EXAMPLE PS C:\> Disable-MicrosoftAccountCreation.ps1 -ForceReboot Blocks creation of Microsoft Accounts and reboot after 2 minutes. .INPUTS None .OUTPUTS String[] .NOTES Release Notes: Renamed Script, updated Set-ItemProp Only usable on Windows 10, possible Windows 11(UNTESTED/UNVERIFIED). 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/it/condizioni-utilizzo 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 LocalBuiltInAccountManagement #> [CmdletBinding()] param ( [Parameter()] [switch] $Allow, [switch] $BlockLogin, [switch] $ForceReboot ) begin { function Set-ItemProp { param ( $Path, $Name, $Value, [ValidateSet("DWord", "QWord", "String", "ExpandedString", "Binary", "MultiString", "Unknown")] $PropertyType = "DWord" ) if (-not $(Test-Path -Path $Path)) { # Check if path does not exist and create the path New-Item -Path $Path -Force | Out-Null } if ((Get-ItemProperty -Path $Path -Name $Name -ErrorAction SilentlyContinue)) { # Update property and print out what it was changed from and changed to $CurrentValue = (Get-ItemProperty -Path $Path -Name $Name -ErrorAction SilentlyContinue).$Name try { Set-ItemProperty -Path $Path -Name $Name -Value $Value -Force -Confirm:$false -ErrorAction Stop | Out-Null } catch { Write-Error "[Error] Unable to Set registry key for $Name please see below error!" Write-Error $_ exit 1 } Write-Host "$Path\$Name changed from $CurrentValue to $($(Get-ItemProperty -Path $Path -Name $Name -ErrorAction SilentlyContinue).$Name)" } else { # Create property with value try { New-ItemProperty -Path $Path -Name $Name -Value $Value -PropertyType $PropertyType -Force -Confirm:$false -ErrorAction Stop | Out-Null } catch { Write-Error "[Error] Unable to Set registry key for $Name please see below error!" Write-Error $_ exit 1 } Write-Host "Set $Path\$Name to $($(Get-ItemProperty -Path $Path -Name $Name -ErrorAction SilentlyContinue).$Name)" } } if ($env:allowCreation -like "Allow") { $Allow = $true } elseif ($env:allowCreation -like "Block Creation" -or $env:allowCreation -like "Block Creation And Login") { $Allow = $false } if ($env:forceReboot -like "true") { $ForceReboot = $true } } process { if ($Allow) { # Allow Set-ItemProp -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "NoConnectedUser" -Value 0 Set-ItemProp -Path "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowYourAccount" -Name "value" -Value 1 Remove-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\MicrosoftAccount" -Name "DisableUserAuth" -ErrorAction SilentlyContinue Write-Host "Allowing Microsoft accounts to be created." } else { # Block if ($env:allowCreation -like "Block Creation And Login" -or $BlockLogin) { # Block MS Account Creation and Login Set-ItemProp -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "NoConnectedUser" -Value 3 Set-ItemProp -Path "HKLM:\Software\Policies\Microsoft\MicrosoftAccount" -Name "DisableUserAuth" -Value 1 } else { # Block MS Account Creation Set-ItemProp -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "NoConnectedUser" -Value 1 } Set-ItemProp -Path "HKLM:\SOFTWARE\Microsoft\PolicyManager\default\Settings\AllowYourAccount" -Name "value" -Value 0 Write-Host "Blocking Microsoft accounts from being created." } if ($ForceReboot) { # Reboot shutdown.exe -r -t 60 } else { # Do not reboot Write-Host "Please restart $([System.Net.Dns]::GetHostName())" } } end { }
Accedi a oltre 700 script nel Dojo NinjaOne
Analisi dettagliata dello script per disabilitare la creazione di account
Lo script per disabilitare la creazione di account agisce modificando specifiche chiavi di registro che controllano la possibilità di creare e utilizzare gli account Microsoft in Windows 10 e potenzialmente in Windows 11. I parametri dello script (Allow, BlockLogin, ForceReboot) offrono flessibilità nell’implementazione, per rispondere a diverse esigenze amministrative.
- Impostazione dell’ambiente: Lo script per disabilitare la creazione di account inizia definendo una funzione personalizzata Set-ItemProp per creare o modificare chiavi e valori del Registro di sistema.
- Gestione dei parametri: Quindi valuta le variabili ambientali e i parametri dello script per determinare l’azione da intraprendere: consentire o bloccare la creazione di account Microsoft.
- Logica di esecuzione: In base ai parametri forniti, lo script per disabilitare la creazione di account modifica le chiavi di registro pertinenti. Se lo switch Allow è impostato, abilita la creazione di account Microsoft. Al contrario, se non è impostato, disattiva questa funzione. Il parametro BlockLogin può limitare ulteriormente l’uso dell’account.
- Risposta del sistema: A seconda di come è impostato il parametro ForceReboot, lo script per disabilitare la creazione di accountpuò avviare un riavvio del sistema per garantire che le modifiche abbiano effetto immediato.
Casi d’uso potenziali
L’amministratore IT di una grande azienda può utilizzare questo script per applicare un criterio che impedisca ai dipendenti di utilizzare gli account Microsoft personali sui dispositivi aziendali. Questo garantisce che vengano utilizzati solo gli account gestiti dall’organizzazione, migliorando la sicurezza e la conformità.
Confronti
I metodi tradizionali di controllo degli account utente spesso comportano la modifica manuale del registro di sistema o la configurazione dei criteri di gruppo. Lo script per disabilitare la creazione di account offre una soluzione più semplice e automatizzata che può essere implementata rapidamente e in modo uniforme su più sistemi.
Domande frequenti
- Questo script per disabilitare la creazione di account può essere utilizzato su tutte le versioni di Windows?
- Lo script è progettato per Windows 10 e dovrebbe funzionare anche con Windows 11, ma la compatibilità con altre versioni non è garantita.
- In che modo questo script per disabilitare la creazione di account influisce sugli account Microsoft esistenti?
- Lo script per disabilitare la creazione di account non influisce sugli account esistenti, ma controlla la creazione di nuovi account e, facoltativamente, la capacità di accedervi.
Implicazioni
L’uso di uno script come quello per disabilitare la creazione di account può migliorare in modo significativo la sicurezza di un’organizzazione, grazie al controllo sull’accesso degli utenti. Tuttavia, è fondamentale bilanciare la sicurezza con l’usabilità, garantendo che gli utenti legittimi non siano ostacolati.
Raccomandazioni
Testa sempre lo script per disabilitare la creazione di account in un ambiente controllato prima di un’ampia distribuzione. Tieni conto delle esigenze dei diversi gruppi di utenti all’interno dell’organizzazione e regola i parametri dello script di conseguenza.
Considerazioni finali
L’integrazione di questo script PowerShell in una soluzione di gestione IT completa come NinjaOne può semplificare la gestione degli account utente. NinjaOne fornisce gli strumenti per la distribuzione, il monitoraggio e la gestione di script come questo in un ambiente IT distribuito, garantendo coerenza e affidabilità nelle attività amministrative.