powershell active-directory powershell-v3.0

Problema de la tubería Powershell v3.0



active-directory powershell-v3.0 (2)

Tengo problemas con este comando:

gc ./domains.txt | Get-ADDomain

Como su nombre lo indica, domains.txt contiene una lista de Active Directory para consultar (todos los dominios están en el mismo bosque).

Si lo ejecuto en mi máquina con Windows 8 todo funciona bien y obtengo los resultados esperados, en cambio en un servidor miembro de Windows 2008 R2 SP1 (no un DC) con WMF 3.0 obtengo el resultado solo del primer dominio en la lista y para el otros:

Get-ADDomain : A referral was returned from the server

Si consulto un dominio en la lista con:

Get-ADDomain <Domain name here>

funciona bien.

Mi estación de trabajo

Microsoft Windows 8 Enterprise (6.2.9200) x64

PS D:/Tools/Powershell> $PSVersionTable Name Value ---- ----- PSVersion 3.0 WSManStackVersion 3.0 SerializationVersion 1.1.0.1 CLRVersion 4.0.30319.18010 BuildVersion 6.2.9200.16384 PSCompatibleVersions {1.0, 2.0, 3.0} PSRemotingProtocolVersion 2.2

Servidor

Microsoft Windows Server 2008 R2 Standard SP1 (6.1.7601) x64

PS C:/Tools/Powershell> $PSVersionTable Name Value ---- ----- WSManStackVersion 3.0 PSCompatibleVersions {1.0, 2.0, 3.0} SerializationVersion 1.1.0.1 BuildVersion 6.2.9200.16398 PSVersion 3.0 CLRVersion 4.0.30319.269 PSRemotingProtocolVersion 2.2

Actualizar

Si corro en el servidor:

gc ./domains.txt | %{ Get-ADDomain $_ }

funciona bien

RASTRO

trace-command -Name ParameterBinding { "DOMAIN_1","DOMAIN_2" | Get-ADDomain } -PSHost

Servidor: http://pastebin.com/sRVJHaCU

Estación de trabajo: http://pastebin.com/kj3JV6nV

Gracias por adelantado


Encontré un artículo que puede ayudar.

http://technet.microsoft.com/en-us/library/ee617224.aspx

Desde el aspecto de su secuencia de comandos, está proporcionando el servidor utilizando el archivo de texto. ¿Es posible que el problema sea que el servidor de Windows 2008 en el que está ejecutando el script de PowerShell no está en el mismo dominio o en el que está conectado, ya que no tiene acceso a los dominios donde los otros servidores son miembros?

fragmento del artículo anterior:

-Si se especifica el parámetro Servidor y no se especifica el parámetro Credencial: --El dominio se establece en el dominio del servidor especificado y el cmdlet comprueba que el servidor se encuentre en el dominio de LocalComputer o LoggedOnUser. Luego, las credenciales del usuario con sesión iniciada se utilizan para obtener el dominio. Se devuelve un error cuando el servidor no está en el dominio de LocalComputer o LoggedOnUser.

Puede intentar agregar los parámetros adicionales para el comando Get-ADDomain, como -Identity, -AuthType y -Credential

Get-ADDomain [-Identity] [-AuthType {| }] [-Credential] [-Server] []


Problema de la tubería Powershell v3.0

Intenté ejecutar el cmdlet ''gc. / Text.txt | Get-ADDomain ''desde un cuadro virtual Server 2008 R2 que tengo. Creé un archivo de texto en el siguiente formato:

Domain1 Domain2 Domain3

Una cosa de la que debemos estar seguros es que cada dominio está en su propia línea en el archivo de texto. Puedo entender por qué la sintaxis funcionaba cuando canalizabas el STDOUT a:

%{ Get-ADDomain $_}

porque está recorriendo toda la información contenida en el archivo de texto y solo hace que el cmdlet trabaje en un solo valor a la vez. Lamentablemente, no tengo el paquete RSAT en mi escritorio Win 8, así que no puedo probarlo desde mi escritorio. Espero que esto ayude un poco.