Cómo extraer usuarios de múltiples AD

Cómo extraer usuarios de múltiples AD

Necesito extraer un archivo que contenga todos mis AD. Estoy intentando hacerlo con Get-ADuser. Sin embargo, dado que Searchbase no acepta múltiples fuentes, hice algo como esto:

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

Pero cuando lo ejecuto, aparece este error 3 veces:

get-aduser: El nombre distinguido proporcionado debe pertenecer a una de las siguientes particiones: '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'. En C:\Users\adm.wfd\Desktop\getaduser.ps1:3 char:1 + get-aduser -SearchBase $_ -Filter { ( Enabled -eq $True ) -and ( (sn -ne 'Empty' .. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: Argumento no válido: (:) [Get-ADUser], ArgumentException + FullyQualifiedErrorId: ActiveDirectoryCmdlet:System.ArgumentException,Microsoft.ActiveDirectory.Management.Comm ands.GetADUser

Supongo que los 3 tiempos son para cada AD al que mi servidor no está conectado. No puedo ejecutar mi comando en cada DC...

¿Cómo puedo obtener mi csv con todos mis usuarios en un solo servidor?

Gracias por tus respuestas

Respuesta1

¿Está seguro de que está utilizando los controladores de dominio adecuados? ¿O la ortografía y el orden encajan? Probé su script en mi propio entorno con varios controladores de dominio y funcionó. Su mensaje de error solo apareció si ingresé la información incorrecta.

¿El comando funciona con los controladores de dominio individuales cuando no se ejecuta en el bucle?

¿Qué pasaría si iniciaras tu script directamente en el controlador de dominio?

No lo probé yo mismo.

Como eso.

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

información relacionada