PowerShell: Abrufen von Gruppenrichtliniendetails für Remotecomputer

Es gibt mehrere Szenarien als Teil der Anzeigenverwaltung, in denen Gruppenrichtlinieninformationen für verwaltete Computer abgerufen werden müssen. Es gibt im Allgemeinen zwei Methoden, um die Informationen zu erhalten.

Methode 1:

Die gebräuchlichste Methode ist die Verwendung von gpresult.exe-Befehl, der in diesem Technet-Artikel detailliert beschrieben ist. Dies funktioniert nur dann gut, wenn sich der Benutzer, der den Befehl ausführt, mindestens einmal auf dem Zielcomputer angemeldet hat. Sonst wirft es unten Fehler.,

Der Benutzer hat keine RSOP-Daten

Methode 2:

Methode 2 ist die Verwendung des Befehls Get-GPResultantSetOfPolicy PowerShell-let, der hier beschrieben wird. Dieser Befehl funktioniert auch ähnlich wie Methode 1 und erfordert, dass sich der Benutzer mindestens einmal anmeldet.

Mit Methode 1 und Methode 2 ist es auch dann nicht möglich, wenn die Gruppenrichtlinieninformationen unabhängig vom Benutzer nur für den Computer angezeigt werden, ohne dass der Benutzer mindestens einmal angemeldet ist, da der Befehl eine Reihe von Richtlinien abruft, die für den angegebenen Benutzer auf dem Zielcomputer erzwungen werden.,

Lösung:

Um diese Probleme zu überwinden, mit Group Policy Management COM-Objekt, das die Basis für gpresult ist.exe und Get-ResultantSetOfPolicy PS Befehl-let dient besser. Wir können das COM-Objekt in VB-oder PS-Skripten verwenden. Hier werden wir über die Verwendung in PS Scripting diskutieren.

#Variablen Initialisieren

$OutputFile = „C:TempGPOExport.html“

$ComputerName = „test.contoso.,com “

$UserName = „john“

Als erstes erstellen wir eine Instanz des GPMgmt.GPM-Objekt. Wir können dieses Objekt verwenden, wenn die Gruppenrichtlinienverwaltungskonsole auf dem Computer installiert ist.

$G = New-Object-ComObject GPMgmt.GPM

Der nächste Schritt besteht darin, alle Konstanten abzurufen und in einer Variablen zu speichern.

$constants = $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

Hinweis: Wenn wir die RSOP-Daten nur für Computer benötigen, ohne Benutzer-oder Gruppenrichtliniendaten zu berücksichtigen, müssen wir den konstanten Wert“ RsopLoggingNoUser “ anstelle von $gpmRSOP.LoggingUser.

$gpmRSOP.LoggingFlags = $Konstanten.RsopLoggingNoUser

Der nächste Schritt besteht darin, den Zielcomputer nach RSOP-GPO-Daten abzufragen.

$gpmRSOP.CreateQueryResults ()

Zum Exportieren von Daten in eine Ausgabedatei wird der folgende Befehl verwendet.,

HTML:

$gpmRSOP.GenerateReportToFile($Konstanten.ReportHTML,$outputfile)

XML:

$gpmRSOP.GenerateReportToFile($Konstanten.ReportXML,$outputfile)

So mit GPMgmt.GPM COM-Objekt, können wir erhalten Resultierenden Satz von Gruppenrichtlinien für Zielcomputer mit oder ohne Berücksichtigung der Benutzer und auch ohne Anforderung der Benutzerprotokollierung mindestens einmal.

Share

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.