Zum Inhalt springen

Gruppenmitgliedschaft per PowerShell ohne AD-Modul abfragen

Manchmal möchte man die Gruppenzugehörigkeit an einem beliebigen Rechner abfragen können ohne vorher die RSAT-Tools installieren zu müssen.
Beispielsweise um Drucker nach Gruppen einzubinden
Unter diesem URL fand ich etwas ähnliches für Computer.
Mit geringfügigen Änderungen funktioniert das dann auch mit Benutzern.

try
{
#User-CN abfragen
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher.Filter = "(&(objectCategory=User)(SamAccountname=$($env:USERNAME)))"
$objSearcher.SearchScope = "Subtree"
$obj = $objSearcher.FindOne()
$user = $obj.Properties["CN"]

#Gruppenmitgliedschaft prüfen
$Group = ""
$objSearcher.Filter = "(&(objectCategory=group)(SamAccountname=$Group))"
$objSearcher.SearchScope = "Subtree"
$obj = $objSearcher.FindOne()
[String[]]$Members = $obj.Properties["member"]

If ($Members -match $User)
{
write-host "Benutzer '$env:USERNAME' ist Mitglied der Gruppe '$Group'" -BackgroundColor DarkYellow
}
else
{
write-host "Benutzer '$env:USERNAME' ist KEINE Mitglied der Gruppe '$Group'" -BackgroundColor DarkRed
}

#Ende Try-Sektion
}
catch
{
Write-Warning -Message "Das Skript hat einen unerwarteten Fehler erzeugt. Check die Error-Variable fuer Details."
Write-Host -Object "Der Inhalt von `$error ist: `n $error"
}
finally
{
Write-Verbose "Bin mit dem Skript fertig ;-)"
}