PowerShell: groepsbeleidsdetails ophalen voor externe Computer

Er zijn meerdere scenario ‘ s als onderdeel van Advertentiebeheer waarin we Groepsbeleidsinformatie voor beheerde computers moeten ophalen. Er zijn over het algemeen twee methoden om de informatie te krijgen.

Methode 1:

De meest voorkomende methode is het gebruik van gpresult.exe commando dat wordt beschreven in dit technet artikel. Dit werkt alleen goed als de gebruiker die het commando uitvoert minstens eenmaal in de doelcomputer is ingelogd. Anders gooit het onder de fout.,

De gebruiker heeft geen RSOP-gegevens

Methode 2:

Methode 2 is het gebruik van Get-GPResultantSetOfPolicy PowerShell command-let die hier wordt beschreven. Dit commando werkt ook vergelijkbaar met Methode 1 en vereist dat de gebruiker minstens één keer inlogt.

gebruikmakend van Methode 1 en Methode 2, zelfs als we de groepsbeleidsinformatie alleen voor de computer willen, ongeacht de gebruiker, is het niet mogelijk zonder dat de gebruiker minstens één keer is aangemeld, omdat de opdracht resulterende set beleidsregels opvraagt die voor de opgegeven gebruiker op de doelcomputer worden afgedwongen.,

oplossing:

om deze problemen op te lossen, gebruikt u Groepsbeleidsbeheer COM-Object dat de basis is voor gpresult.exe en Get-ResultantSetOfPolicy PS command-let serves better. We kunnen het COM object gebruiken in VB of PS scripting. Hier zullen we bespreken over het gebruik ervan in PS Scripting.

#initialize Variables

$OutputFile = ” C:TempGPOExport.html “

$ComputerName = ” test.contoso.,com “

$UserName = “john”

het eerste wat we doen is een instantie van de GPMgmt maken.GPM object. We kunnen dit object gebruiken als de Console Groepsbeleidsbeheer op de computer is geïnstalleerd.

$gpm = New-Object-ComObject GPMgmt.GPM

De volgende stap is om alle constanten te verkrijgen en op te slaan in een variabele.

$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

Opmerking: Als we de rsop-gegevens alleen voor de Computer nodig hebben zonder rekening te houden met door de gebruiker opgelegde Groepsbeleidsgegevens, moeten we de constante waarde” RsopLoggingNoUser ” gebruiken in plaats van $gpmRSOP.LoggingUser.

$gpmRSOP.LoggingFlags = $ Constanten.Rsoploggnouser

De volgende stap is het opvragen van de doelcomputer voor RSOP GPO-gegevens.

$gpmRSOP.CreateQueryResults ()

om gegevens te exporteren naar een uitvoerbestand onder commando wordt gebruikt.,

HTML:

$gpmRSOP.Generatereporttobestand ($constanten.ReportHTML,$outputfile)

XML:

$gpmRSOP.Generatereporttobestand ($constanten.ReportXML,$outputfile)

dus GPMgmt.GPM COM object, kunnen we de resulterende Set van Groepsbeleid voor doelcomputer te verkrijgen met of zonder rekening te houden met de gebruiker en ook zonder de eis van de gebruiker logging ten minste een keer.

Share

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *