I 10 comandi PowerShell di Group Policy più importanti
Apr 11, 2019
Oltre alla Group Policy Management Console (GPMC), Microsoft fornisce un insieme di cmdlet di Windows PowerShell che puoi utilizzare per gestire le Group Policy. Per utilizzare i cmdlet di PowerShell delle Group Policy, devi avere GPMC installato sul dispositivo dove eseguirai i cmdlet. Per verificare se il modulo PowerShell di Group Policy è installato su un dispositivo, esegui il comando sottostante, che mostrerà tutti i cmdlet di Group Policy disponibili se il modulo è installato.
Get-Command -Module GroupPolicy
Contenuti correlati selezionati:
Creazione di un nuovo oggetto Criteri di gruppo
Iniziamo creando un nuovo oggetto Criteri di gruppo (GPO). Il comando sottostante crea un nuovo GPO chiamato ‘Netwrix PCs’ e aggiunge un commento per descriverne lo scopo:
New-GPO -Name "Netwrix PCs" -Comment "Client settings for Netwrix PCs"
Il comando crea un GPO vuoto senza impostazioni. Se hai GPO di partenza configurati nel tuo Active Directory domain, puoi creare un nuovo GPO basato sulle loro impostazioni. Il seguente comando crea un nuovo GPO chiamato 'Netwrix PCs' basato sul GPO 'Windows 10 MS Security Settings':
New-GPO -Name "Netwrix PCs" -StarterGPOName "Windows 10 MS Security Settings"
È possibile collegare facoltativamente il GPO a un dominio, all'unità organizzativa (OU) del controller di dominio o al sito utilizzando il piping. Il comando sottostante crea un nuovo GPO e lo collega all'OU Clients nel dominio ad.contoso.com:
New-GPO -Name "Netwrix PCs" | New-GPLink -Target "ou=clients,dc=ad,dc=contoso,dc=com"
Per scollegare un GPO, utilizzare il cmdlet Remove-GPLink:
Remove-GPLink -Name "Netwrix PCs" -Target "ou=clients,dc=ad,dc=contoso,dc=com"
Figura 1. Come collegare e scollegare un GPO
Contenuti correlati selezionati:
Ottenere informazioni su un GPO
Una volta creato un GPO, puoi utilizzare Get-GPO per ottenere informazioni come lo stato del GPO, l'orario di creazione e l'ultimo orario di modifica:
Get-GPO -Name "Netwrix PCs"
Se desideri maggiori informazioni, indirizza l'oggetto creato da Get-GPO a Get-GPOReport. Lo script sottostante genera un report HTML che fornisce informazioni sul GPO simili a quelle che potresti vedere nella Group Policy Management Console:
Get-GPO -Name "Netwrix PCs" | Get-GPOReport -ReportType HTML -Path c:tempreport.html
Figura 2. Report HTML con dati dettagliati su uno specifico GPO
Configurazione delle impostazioni di Group Policy
Se conosci la posizione di un’impostazione dei criteri di gruppo basata sul registro, puoi utilizzare il cmdlet Set-GPRegistryValue per configurarla.
Le impostazioni dei criteri di gruppo basate sul registro sono quelle che compaiono sotto Modelli amministrativi nella GPMC. Set-GPRegistryValue può anche essere utilizzato per impostare valori del registro non coperti dalle impostazioni dei criteri di gruppo. Ad esempio, se desideri configurare impostazioni del registro per applicazioni di terze parti che non dispongono di un file ADMX per i criteri di gruppo, Set-GPRegistryValue è un modo rapido per configurare le impostazioni necessarie. Il seguente comando imposta un timeout dello screensaver di 300 secondi per l’utente connesso:
Set-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop" -ValueName ScreenSaveTimeOut -Type DWord -Value 300
È possibile specificare le impostazioni di configurazione del computer o dell'utente utilizzando Set-GPRegistryValue. Il percorso del registro nel parametro -Key qui sotto inizia con “HKCU” (che sta per “HKEY_CURRENT_USER”). Se si desidera configurare un'impostazione del computer, sostituire “HKCU” con “HKLM” (che corrisponde a HKEY_LOCAL_MACHINE).
Per ottenere informazioni dettagliate su una chiave di registro configurata in un GPO, utilizzare Get-GPRegistryValue:
Get-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop"
Figura 3. Come ottenere informazioni dettagliate su una chiave di registro configurata in un GPO
Per rimuovere un'impostazione del registro da un GPO, utilizzare Remove-GPRegistryValue:
Remove-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop" -ValueName ScreenSaveTimeOut
I tre cmdlet sopra hanno equivalenti nelle Preferenze dei Criteri di Gruppo se si decide di utilizzare le Preferenze invece delle Politiche per impostare le chiavi di registro: Set-GPPrefRegistryValue, Get-GPPrefRegistryValue, e Remove-GPPrefRegistryValue.
Applicazione delle impostazioni di Group Policy
A condizione che il tuo GPO sia collegato a un dominio, OU o sito, si applicherà agli oggetti utente e computer sottostanti dove è collegato. Ma se vuoi forzare un Group Policy update su un server remoto o altro dispositivo, puoi utilizzare Invoke-GPUpdate. Eseguire Invoke-GPUpdate senza parametri forzerà un aggiornamento delle impostazioni di configurazione utente e computer sul computer locale. Il comando sottostante forza un aggiornamento della Group Policy su server1 solo per le impostazioni di configurazione utente:
Invoke-GPUpdate -Computer "adserver1" -Target "User"
Revisione dei GPO applicati a un utente o computer
Per ottenere informazioni su quali GPO sono applicate a un utente o a un computer, è possibile generare un rapporto Resultant Set of Policy (RSoP) utilizzando il cmdlet Get-GPResultantSetOfPolicy. Il comando sottostante genera un rapporto per il computer chiamato “dc1” e scrive i risultati nella directory c:temp:
Get-GPResultantSetOfPolicy -Computer dc1 -ReportType HTML -Path c:tempdc1rsop.html
Figura 4. Come ottenere informazioni su quali GPO sono applicati a un utente o computer
I cmdlet di PowerShell possono essere molto utili per gestire Group Policy. Tuttavia, configurare le impostazioni all'interno dei GPO utilizzando PowerShell non è semplice perché le impostazioni di Group Policy non sono state progettate pensando alla configurazione basata su testo.
Condividi su
Scopri di più
Informazioni sull'autore
Russell Smith
Consulente IT
Consulente IT e autore specializzato in tecnologie di gestione e sicurezza. Russell ha più di 15 anni di esperienza nel settore IT, ha scritto un libro sulla sicurezza di Windows e ha coautore di un testo per la serie Microsoft’s Official Academic Course (MOAC).
Scopri di più su questo argomento
Creare utenti AD in massa e inviare le loro credenziali tramite PowerShell
Come creare, modificare e testare le password utilizzando PowerShell
Come aggiungere e rimuovere gruppi AD e oggetti nei gruppi con PowerShell
Fiducie in Active Directory
Attacchi ransomware di Active Directory