PowerShell: Hent Group Policy detaljer for Ekstern Datamaskin

Det finnes flere scenarier som en del av AD management, der vi trenger å hente Group Policy-informasjon for administrerte datamaskiner. Det er vanligvis to metoder for å få informasjon.

Metode 1:

Mest vanlige metoden er å bruke gpresult.exe-kommandoen som er beskrevet i denne technet-artikkelen. Dette fungerer godt bare hvis den Brukeren, utføre kommandoen har logget inn én gang til-minst i måldatamaskinen. Ellers kaster nedenfor feil.,

brukeren ikke har RSOP Data

Metode 2:

Metode 2 er å bruke Get-GPResultantSetOfPolicy PowerShell-kommando-la som er beskrevet her. Denne kommandoen fungerer også tilsvarende Metode 1 og krever at Brukeren å logge inn på-minst én gang.

ved Hjelp av Metode 1 og Metode 2, selv om vi ønsker group policy bare til informasjon for maskinen uavhengig av brukeren, er det ikke mulig uten at brukeren er logget inn på-minst en gang som kommandoen henter resulterer sett med retningslinjer som er i bruk for angitte brukeren på måldatamaskinen.,

Løsning:

for Å overvinne disse problemene, ved hjelp av Group Policy Management COM-Objekt som er base for gpresult.exe-og Få-ResultantSetOfPolicy PS-kommandoen-la fungerer bedre. Vi kan bruke COM-objektet i VB eller PS-skript. Her vil vi diskutere om du bruker det i PS-Skript.

#Initialisere Variabler

$Utdatafil = «C:TempGPOExport.html»

$Datamaskinnavn = «test.contoso.,com»

$UserName = «john»

Det første vi gjør er å opprette en forekomst av GPMgmt.GPM objekt. Vi kan bruke dette objektet hvis Group Policy Management Console er installert i datamaskinen.

$gpm = New-Object -ComObject GPMgmt.GPM

Neste trinn er å få alle konstanter og lagre det i en variabel.

$konstanter = $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 = $Brukernavn

Merk: Hvis vi trenger RSOP data for bare Datamaskinen, uten å ta hensyn Brukeren pålagt Group Policy-data, må vi bruke «RsopLoggingNoUser» konstant verdi i stedet for $gpmRSOP.LoggingUser.

$gpmRSOP.LoggingFlags = $Konstanter.RsopLoggingNoUser

Neste trinn er å søke måldatamaskinen for RSOP GPO data.

$gpmRSOP.CreateQueryResults()

for Å eksportere data til en output fil under kommando som skal brukes.,

HTML:

$gpmRSOP.GenerateReportToFile($konstanter.ReportHTML,$utdatafil)

XML:

$gpmRSOP.GenerateReportToFile($konstanter.ReportXML,$utdatafil)

Dermed bruke GPMgmt.GPM COM-objekt, kan vi finne noe som Resulterer Sett med Policyer for måldatamaskinen med eller uten hensyn til Brukeren, og også uten krav om bruker som logger på-minst én gang.

Share

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *