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.