Как извлечь пользователей из нескольких AD

Как извлечь пользователей из нескольких AD

Мне нужно извлечь файл, содержащий все мои AD. Я пытаюсь сделать это с помощью Get-ADuser. Однако, поскольку -Searchbase не принимает несколько источников, я сделал что-то вроде этого:

    '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
}

Но когда я его запускаю, я получаю эту ошибку 3 раза:

get-aduser : Указанное differentName должно принадлежать одному из следующих разделов: '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'. В C:\Users\adm.wfd\Desktop\getaduser.ps1:3 символ:1 + get-aduser -SearchBase $_ -Filter { ( Включено -eq $True ) -and ( (sn -ne 'Пусто' ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Get-ADUser], ArgumentException + FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Comm ands.GetADUser

Думаю, эти 3 раза для каждого AD, к которому не подключен мой сервер. Я не могу запустить свою команду на каждом DC...

Как мне получить CSV-файл со всеми моими пользователями на одном сервере?

Спасибо за ваши ответы.

решение1

Вы уверены, что используете правильные контроллеры домена? Или написание и порядок совпадают? Я протестировал ваш скрипт в своей среде с несколькими контроллерами домена, и он работал. Ваше сообщение об ошибке появлялось только в том случае, если я вводил неверную информацию.

Работает ли команда с отдельными контроллерами домена, если она не выполняется в цикле?

А что, если запустить скрипт непосредственно на контроллере домена?

Я сам не проверял.

Как это.

$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         
    }            
} 

Связанный контент