Gestione degli account utente: disabilitare la creazione di account in Windows con PowerShell

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

Ottieni l’accesso

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.

Passi successivi

La creazione di un team IT efficiente ed efficace richiede una soluzione centralizzata che funga da principale strumento per la fornitura di servizi. NinjaOne consente ai team IT di monitorare, gestire, proteggere e supportare tutti i dispositivi, ovunque essi si trovino, senza la necessità di una complessa infrastruttura locale.

Per saperne di più sulla distribuzione remota di script con NinjaOne, fai un tour dal vivo, o inizia la tua prova gratuita della piattaforma NinjaOne.

Categorie:

Ti potrebbe interessare anche

×

Guarda NinjaOne in azione!

Inviando questo modulo, accetto La politica sulla privacy di NinjaOne.

Termini e condizioni NinjaOne

Cliccando sul pulsante “Accetto” qui sotto, dichiari di accettare i seguenti termini legali e le nostre condizioni d’uso:

  • Diritti di proprietà: NinjaOne possiede e continuerà a possedere tutti i diritti, i titoli e gli interessi relativi allo script (compreso il copyright). NinjaOne ti concede una licenza limitata per l’utilizzo dello script in conformità con i presenti termini legali.
  • Limitazione d’uso: Puoi utilizzare lo script solo per legittimi scopi personali o aziendali interni e non puoi condividere lo script con altri soggetti.
  • Divieto di ripubblicazione: In nessun caso ti è consentito ripubblicare lo script in una libreria di script appartenente o sotto il controllo di un altro fornitore di software.
  • Esclusione di garanzia: Lo script viene fornito “così com’è” e “come disponibile”, senza garanzie di alcun tipo. NinjaOne non promette né garantisce che lo script sia privo di difetti o che soddisfi le tue esigenze o aspettative specifiche.
  • Assunzione del rischio: L’uso che farai dello script è da intendersi a tuo rischio. Riconosci che l’utilizzo dello script comporta alcuni rischi intrinseci, che comprendi e sei pronto ad assumerti.
  • Rinuncia e liberatoria: Non riterrai NinjaOne responsabile di eventuali conseguenze negative o indesiderate derivanti dall’uso dello script e rinuncerai a qualsiasi diritto legale o di equità e a qualsiasi rivalsa nei confronti di NinjaOne in relazione all’uso dello script.
  • EULA: Se sei un cliente NinjaOne, l’uso dello script è soggetto al Contratto di licenza con l’utente finale (EULA) applicabile.