On olemassa useita skenaarioita osana AD hallinta, jossa meidän täytyy hakea Group Policy tietoa hallittuja tietokoneita. Tiedon saamiseen on yleensä kaksi tapaa.
Menetelmä 1:
yleisin tapa on käyttää gpresult.exe komento, joka on yksityiskohtainen tässä technet artikkelissa. Tämä toimii hyvin vain, jos komennon suorittava käyttäjä on kirjautunut sisään kerran-ainakin kohdetietokoneessa. Muuten se heittää alle virheen.,
käyttäjällä ei ole RSOP Data
Menetelmä 2:
Menetelmä 2 on käyttää Get-GPResultantSetOfPolicy PowerShell komento-anna, joka on yksityiskohtainen täällä. Tämä komento toimii myös samalla tavalla kuin menetelmä 1 ja vaatii käyttäjää kirjautumaan-ainakin kerran.
Käyttämällä Menetelmää 1 ja Menetelmää 2, vaikka haluamme group policy tietoja vain tietokoneen riippumatta siitä, käyttäjä, se ei ole mahdollista ilman, että käyttäjä kirjautunut sisään at-vähintään kerran, kun komento hakee tuloksena joukko politiikkoja, jotka ovat voimassa tietyn käyttäjän kohde-tietokone.,
Ratkaisu:
ratkaista näitä kysymyksiä, käyttämällä Group Policy Management COM-Objekti, joka on perusta gpresult.exe and Get-Resultantsetpoliticy PS command-let palvelee paremmin. Voimme käyttää COM objekti VB tai PS scripting. Tässä me keskustelemme sen käyttämisestä PS Scripting.
#Alustaa Muuttujat
$OutputFile = ”C:TempGPOExport.html”
$Tietokonenimi = ”testi.contoso.,com”
$UserName = ”john”
ensimmäinen asia mitä teemme on luoda esimerkiksi GPMgmt.GPM-objekti. Voimme käyttää tätä objektia, jos ryhmäkäytännön hallintakonsoli on asennettu tietokoneeseen.
$gpm = New-Object-ComObject GPMgmt.GPM
Seuraava askel on saada kaikki vakiot ja tallentaa sen muuttujaan.
$vakioita = $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
Huomautus: Jos tarvitsemme RSOP data vain Tietokone, ilman, että otetaan huomioon Käyttäjän käyttöön Group Policy tiedot, meidän täytyy käyttää ”RsopLoggingNoUser” vakioarvo sijasta $gpmRSOP.LoggingUser.
$gpmRSOP.LoggingFlags = $ Vakiot.RsopLoggingNoUser
Seuraava askel on kyselyn kohde-tietokone RSOP GPO tiedot.
$gpmRSOP.CreateQueryResults()
tietojen vienti lähtö-tiedostosi alla komentoa käytetään.,
HTML:
$gpmRSOP.GenerateReportToFile($vakiot.ReportHTML,$outputfile)
XML:
$gpmRSOP.GenerateReportToFile($vakiot.ReportXML,$outputfile)
Näin käytät GPMgmt.GPM COM-objekti, voimme saada aikaan joukon ryhmäkäytäntöjä Kohdetietokoneelle käyttäjän kanssa tai ottamatta huomioon käyttäjää ja myös ilman käyttäjän kirjaamista vähintään kerran.