PowerShell: Recuperare i dettagli dei criteri di gruppo per computer remoto

Ci sono più scenari come parte della gestione degli annunci in cui abbiamo bisogno di recuperare le informazioni sui criteri di gruppo per i computer gestiti. Ci sono generalmente due metodi per ottenere le informazioni.

Metodo 1:

Il metodo più comune è usare gpresult.comando exe che è dettagliato in questo articolo technet. Funziona bene solo se l’utente che esegue il comando ha effettuato l’accesso almeno una volta nel computer di destinazione. Altrimenti getta sotto errore.,

L’utente non dispone di dati RSOP

Metodo 2:

Il metodo 2 deve utilizzare il comando Get-GPResultantSetOfPolicy PowerShell-let che è dettagliato qui. Questo comando funziona anche in modo simile al metodo 1 e richiede all’utente di effettuare il login almeno una volta.

Utilizzando il metodo 1 e il metodo 2, anche se vogliamo le informazioni sui criteri di gruppo solo per il computer indipendentemente dall’utente, non è possibile senza che l’utente abbia effettuato l’accesso almeno una volta poiché il comando recupera il set risultante di criteri applicati per l’utente specificato sul computer di destinazione.,

Soluzione:

Per superare questi problemi, utilizzando Group Policy Management COM Object che è la base per gpresult.exe e Get-ResultantSetOfPolicy comando PS-let serve meglio. Possiamo usare l’oggetto COM in scripting VB o PS. Qui discuteremo di usarlo nello scripting PS.

#Inizializza le variabili

Outp OutputFile = “C:TempGPOExport.html”

Comput ComputerName = “test.contoso.,com ”

UserName UserName = “john”

La prima cosa che facciamo è creare un’istanza del GPMgmt.Oggetto GPM. Possiamo utilizzare questo oggetto se la Console di gestione dei criteri di gruppo è installata nel computer.

g gpm = New-Object-ComObject GPMgmt.GPM

Il passo successivo è ottenere tutte le costanti e salvarle in una variabile.

const costanti = g gpm.,GetConstants()

Now create reference RSOP object using required constants.

$gpmRSOP = $GPM.GetRSOP($Constants.RSOPModeLogging,$null,0)

Next step is to specify Target Computer and User.

$gpmRSOP.LoggingComputer = $ComputerName

$gpmRSOP.,LoggingUser=UserName UserName

Nota: Se abbiamo bisogno dei dati RSOP solo per computer senza considerare i dati dei criteri di gruppo imposti dall’utente, dobbiamo usare il valore costante “RsopLoggingNoUser” invece di g gpmRSOP.LoggingUser.

$gpmRSOP.LoggingFlags = Const Costanti.RsopLoggingNoUser

Il passo successivo è quello di interrogare il computer di destinazione per i dati RSOP GPO.

$gpmRSOP.CreateQueryResults()

Per esportare i dati in un file di output sotto comando viene utilizzato.,

HTML:

g gpmRSOP.GenerateReportToFile (const costanti.ReportHTML, outp outputfile)

XML:

g gpmRSOP.GenerateReportToFile (const costanti.ReportXML, outp outputfile)

Quindi usando GPMgmt.GPM COM object, possiamo ottenere un insieme risultante di criteri di gruppo per il computer di destinazione con o senza considerare l’utente e anche senza necessità di registrazione dell’utente almeno una volta.

Share

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *