WMI-Filter testen

In Gruppenrichtlinien kommen häufig WMI-Filter zum Einsatz.

Mit dem CMDlet Get-WMIObject kann man auf jedem PC, auf dem Power Shell läuft, die WMI-Filter testen. Am besten auf dem PC auf dem die Filter wirken sollen.

Hinweis: WMI-Filter von GPOs werden auf dem Client ausgeführt und das Ergebnis entscheidet ob die Richtlinie angewendet wird oder nicht.
WMI-Filter benötigen somit Ressourcen vom Client und der Server muss auf das Ergebnis warten. Wie immer gilt: Verwendung in maßen und nicht in Massen!

Hier ein Beispiel mit Ausgabe:

PS C:\Users\rob> Get-WmiObject -Query "select * from Win32_ComputerSystem where PCSystemType = 3"


Domain              : PowerShell.PUB
Manufacturer        : Gigabyte Technology Co., Ltd.
Model               : To be filled by O.E.M.
Name                : PC-1
PrimaryOwnerName    : administrator
TotalPhysicalMemory : 16999178240

Eine Ausgabe bedeutet TRUE und wenn nichts ausgegeben wurde ist das Ergebnis FALSE

Hier noch ein hilfreicher Link: https://technet.microsoft.com/en-us/library/jj717288.aspx

GPOs exportieren

Um eine Dokumentation zu erstellen ist es u.U. hilfreich HTML-Reports von GPOs zu erstellen

param
	(
	[string]$Path=$env:tmp
	)

$GPOs = Get-GPO -all
foreach ( $GPO in $GPOs )
	{
	$File = Join-Path -path $Path -ChildPath $(($GPO.DisplayName -replace ("[\W]","")) + ".htm")
	Get-GPOReport -Id $GPO.id -ReportType html -Path $File
	$File = Join-Path -path $Path -ChildPath $(($GPO.DisplayName -replace ("[\W]","")) + ".xml")
	Get-GPOReport -Id $GPO.id -ReportType xml -Path $File
	}

Der Parameter Path wird standardmäßig auf das TMP-Verzeichnis gelegt. Sie können aber jeden beliebigen Pfad dort angeben

Aufruf:
export-gpo.ps1 [-path <Pfad>]

Im Pfad bzw TMP-Verzeichnis werden dann pro GPO eine HTML- und eine XML-Datei erstellt.