0

Ich versuche, den unten genannten Befehl in Server 2012 & es zieht Benutzer aus Administratoren Benutzergruppe ausführen. Aber in Server 2008R2, ist es aus gesamter Domain ziehtRunning Powershell-Skript in verschiedenen Betriebssystemen

Get-WmiObject -Class Win32_GroupUser ` 
| where{$_.GroupComponent -like "*Administrators*"} ` 
|foreach { 
$data = $_.PartComponent -split "\," 
$data[1].Remove(0,5).Replace('"','') 
} 

Antwort

0

Wie Sie das Problem schon erraten haben, dass win2008R2 nur PS 2.0.x hat Ich denke, dass dieser Befehl where{$_.GroupComponent -like "*Administrators*"} ist nicht verfügbar in dieser Version, so fragt es das gesamte AD als Fallback (das ist eine Vermutung).

Aus Ihrer Beschreibung Ich habe nicht verstanden, wenn Sie lokale Server oder Domain abfragen möchten, damit ich beide (alle auf win2008R2 (PS-Version 2.0.50727) funktionsfähig sind) eingeben:

Um lokale Administratoren und

abfragen
#get servers by AD OU 
If (!(Get-Module ActiveDirectory)) { 
    Import-Module ActiveDirectory 
} 
function get-localadmins{ 
    [cmdletbinding()] 
    Param(
    [string]$server 
) 
    $group = get-wmiobject win32_group -ComputerName $server -Filter "LocalAccount=True AND SID='S-1-5-32-544'" 
    $query = "GroupComponent = `"Win32_Group.Domain='$($group.domain)'`,Name='$($group.name)'`"" 
    $list = Get-WmiObject win32_groupuser -ComputerName $server -Filter $query 
    $list | %{$_.PartComponent} | % {$_.substring($_.lastindexof("Domain=") + 7).replace("`",Name=`"","\")} 
} 

get-localadmins 'your_server_name' 

Wenn Ihr Ziel ist die gesamte AD abzufragen ist, dann können Sie verwenden:

auf Windows 2008 R2 SP1 ein Fehler erzeugen kann: System.DirectoryServices.AccountManagement.PrincipalOperationException: ein Fehler (1301) aufgetreten wh Ile Aufzählung der Gruppen. Die SID der Gruppe konnte nicht aufgelöst werden.

Sie haben einen Hotfix von Microsoft installieren unter: https://support.microsoft.com/en-us/help/2830145/sid-s-1-18-1-and-sid-s-1-18-2-cannot-be-mapped-on-windows-based-computers-in-a-domain-environment?wa=wsignin1.0%3Fwa%3Dwsignin1.0

Der folgende Code von hier genommen wurde: https://stackoverflow.com/a/8057025/6059896 (alle Kredite an den Autor) - nur die Namen der Variablen geändert meine Codierstil Fig.

$Recurse = $true 

Add-Type -AssemblyName System.DirectoryServices.AccountManagement 
$context_type = [System.DirectoryServices.AccountManagement.ContextType]::Domain 
$group_principal_identity=[System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity($ct,'Administrators') 
$group.GetMembers($Recurse) 
Verwandte Themen