So extrahieren Sie Benutzer aus mehreren AD

So extrahieren Sie Benutzer aus mehreren AD

Ich muss eine Datei extrahieren, die alle meine ADs enthält. Ich versuche dies mit Get-ADuser. Da -Searchbase jedoch keine mehreren Quellen akzeptiert, habe ich Folgendes gemacht:

    'DC=AD1,DC=net','DC=1D2,DC=net','DC=AD3,DC=net','DC=AD4,DC=net' |
foreach-object{
get-aduser -SearchBase $_ -Filter { ( Enabled -eq $True ) -and ( (sn -ne 'Empty') -or (givenName  -ne 'empty')) -and ( (telephoneNumber -ne 'empty') -or (mobile -ne 'empty'))} -Properties * |Select sn,givenName,title,department,company,telephoneNumber,mobile,mail,employeeType,physicalDeliveryOfficeName,extensionAttribute15 | Export-CSV "c:\temp\Liste_collaborateurs.csv" -Encoding UTF8 -Delimiter ";" -NoTypeInformation
}

Aber wenn ich es ausführe, erhalte ich diesen Fehler dreimal:

get-aduser: Der angegebene DistinguishedName muss zu einer der folgenden Partitionen gehören: „DC=bva,DC=net, CN=Configuration,DC=bva,DC=net, CN=Schema,CN=Configuration,DC=bva,DC=net, DC=DomainDnsZones,DC=bva,DC=net, DC=ForestDnsZones,DC=bva,DC=net“. Bei C:\Benutzer\adm.wfd\Desktop\getaduser.ps1:3 char:1 + get-aduser -SearchBase $_ -Filter { (Aktiviert -eq $True) -und ( (sn -ne 'Leer' … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Get-ADUser], ArgumentException + FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Comm ands.GetADUser

Ich schätze, die 3 Male gelten für jedes AD, mit dem mein Server nicht verbunden ist. Ich kann meinen Befehl nicht auf jedem DC ausführen ...

Wie kann ich meine CSV-Datei mit allen meinen Benutzern auf einem einzigen Server abrufen?

Danke für eure Antworten

Antwort1

Bist du sicher, dass du die richtigen Domänencontroller verwendest? Oder stimmt die Schreibweise und Reihenfolge? Ich habe dein Skript in meiner eigenen Umgebung mit mehreren Domänencontrollern getestet und es hat funktioniert. Deine Fehlermeldung erschien nur, wenn ich die falschen Informationen eingegeben habe.

Funktioniert der Befehl mit den einzelnen Domänencontrollern, wenn er nicht in der Schleife ausgeführt wird?

Was wäre, wenn Sie Ihr Skript direkt auf dem Domänencontroller starten würden?

Ich habe es nicht selbst getestet.

So wie das.

$Servers = 'server1','server2'            
ForEach ($Server in $Servers) {            
    Invoke-Command -ComputerName $Server -ScriptBlock {            
        get-aduser -Filter { ( Enabled -eq $True ) -and ( (sn -ne 'Empty') -or (givenName  -ne 'empty')) -and ( (telephoneNumber -ne 'empty') -or (mobile -ne 'empty'))} -Properties * |Select sn,givenName,title,department,company,telephoneNumber,mobile,mail,employeeType,physicalDeliveryOfficeName,extensionAttribute15 | Export-CSV "c:\temp\Liste_collaborateurs.csv" -Encoding UTF8 -Delimiter ";" -NoTypeInformation         
    }            
} 

verwandte Informationen