w ramach zarządzania reklamami istnieje wiele scenariuszy, w których musimy pobrać informacje o zasadach grupy dla zarządzanych komputerów. Istnieją na ogół dwie metody uzyskiwania informacji.
Metoda 1:
najczęstszą metodą jest użycie gpresult.polecenie exe, które jest szczegółowo opisane w tym artykule technet. Działa to dobrze tylko wtedy, gdy użytkownik wykonujący polecenie zalogował się przynajmniej raz na komputerze docelowym. W przeciwnym razie rzuca poniżej błąd.,
użytkownik nie ma danych RSOP
Metoda 2:
Metoda 2 polega na użyciu polecenia Get-GPResultantSetOfPolicy PowerShell-let, które jest tutaj szczegółowo opisane. Polecenie to działa podobnie do metody 1 i wymaga od użytkownika zalogowania się przynajmniej raz.
używając metody 1 i metody 2, nawet jeśli chcemy, aby informacje o zasadach grupy były dostępne tylko dla komputera niezależnie od użytkownika, nie jest to możliwe bez zalogowanego użytkownika przynajmniej raz, ponieważ polecenie pobiera Wynikowy zestaw zasad, które są wymuszone dla określonego użytkownika na komputerze docelowym.,
rozwiązanie:
aby przezwyciężyć te problemy, użyj obiektu Group Policy Management COM, który jest podstawą gpresult.EXE and Get-ResultantSetOfPolicy PS command-let serves better. Obiekt COM możemy wykorzystać w skryptach VB lub PS. Tutaj omówimy użycie go w skryptach PS.
#Inicjalizacja zmiennych
$OutputFile = „C:TempGPOExport.html”
$ComputerName = „test.contoso.,com”
$UserName = „john”
pierwszą rzeczą, którą robimy, jest utworzenie instancji GPMgmt.Obiekt GPM. Możemy użyć tego obiektu, jeśli konsola zarządzania zasadami grupy jest zainstalowana na komputerze.
$gpm = New-Object-ComObject GPMgmt.GPM
następnym krokiem jest uzyskanie wszystkich stałych i zapisanie ich w zmiennej.
$stałe = $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
Uwaga: Jeśli potrzebujemy danych RSOP tylko dla komputera bez uwzględnienia danych zasad grupy narzuconych przez użytkownika, musimy użyć stałej wartości „rsoploggingnouser” zamiast $gpmRSOP.LoggingUser.
$gpmRSOP.LoggingFlags = $ Stałe.RsopLoggingNoUser
następnym krokiem jest zapytanie komputera docelowego o dane RSOP GPO.
$gpmRSOP.CreateQueryResults ()
aby wyeksportować dane do pliku wyjściowego poniższe polecenie jest używane.,
HTML:
$gpmRSOP.GenerateReportToFile ($constants.ReportHTML,$outputfile)
XML:
$gpmRSOP.GenerateReportToFile ($constants.ReportXML,$outputfile)
używając GPMgmt.GPM com obiekt, możemy uzyskać Wynikowy zestaw zasad grupowych dla komputera docelowego z lub bez uwzględnienia użytkownika, a także bez wymogu logowania użytkownika co najmniej raz.