2012-11-02 4 views
51

Ho dei problemi con questo comando:PowerShell tubo v3.0 problema

gc .\domains.txt | Get-ADDomain 

Come suggerisce il nome, domains.txt contiene un elenco di Active Directory per interrogare (tutti i domini sono nella stessa foresta) .

Se lo eseguo sulla mia macchina Windows 8 tutto funziona correttamente e ottengo i risultati attesi, invece su un server membro Windows 2008 R2 SP1 (non un controller di dominio) con WMF 3.0 ottengo risultato solo dal primo dominio in lista e per gli altri:

Get-ADDomain : A referral was returned from the server 

Se interrogo un dominio nella lista con:

Get-ADDomain <Domain name here> 

funziona benissimo.

mia workstation

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 

Server

Server 2008 R2 Standard SP1 (6.1.7601) x64

Microsoft Windows

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 

Aggiornamento

Se faccio funzionare sul server:

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

funziona benissimo

TRACE

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

Server: http://pastebin.com/sRVJHaCU

Workstation: http://pastebin.com/kj3JV6nV

Grazie in anticipo

+1

è il primo dominio (su cui si sta lavorando in Server 2008 R2) il dominio di questo server appartiene? – JPBlanc

+1

no, il server appartiene a un dominio che restituisce l'errore (usando la pipe) – EsOsO

+1

Controllate due volte il file di testo (nessun carattere speciale alla fine delle righe, unicode/ansi misfit)? – JPBlanc

risposta

0

Powershell v3.0 pipe issue

ho solo cercato di eseguire il 'gc cmdlet \ text.txt. | Get-ADDOMain 'da una casella Server 2008 R2 virtuale che ho. Ho costruito un file di testo nel seguente formato:

Domain1 
Domain2 
Domain3 

Una cosa da essere sicuri è che ogni dominio è su di essa la propria linea nel file di testo. Posso capire perché la sola sintassi funzionato quando si convogliato lo STDOUT a:

%{ Get-ADDomain $_} 

perché si sta loop attraverso tutte le informazioni contenute nel file di testo e hanno solo il lavoro cmdlet su un singolo valore alla volta. Purtroppo non ho il pacchetto RSAT sul mio desktop Win 8, quindi non posso testare dal mio desktop. Speriamo che questo aiuti un po '.

1

Ho trovato un articolo che può essere d'aiuto.

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

Dallo sguardo dello script si sta fornendo il server utilizzando il file di testo. È possibile che il problema sia che il server Windows 2008 su cui viene eseguito lo script PowerShell non si trova nello stesso dominio o se l'utente che ha effettuato l'accesso non ha accesso ai domini in cui gli altri server sono membri?

frammento dal suddetto articolo:

-Se il parametro Server è specificato e il parametro Credential non è specificato: --La dominio è impostato sul dominio del server specificato e il cmdlet verifica a assicurarsi che il server si trovi nel dominio del computer locale o di LoggedOnUser. Quindi le credenziali dell'attuale utente registrato su vengono utilizzate per ottenere il dominio. Viene restituito un errore quando il server non si trova nel dominio di LocalComputer o di LoggedOnUser.

Si potrebbe provare ad aggiungere i parametri aggiuntivi per il Get-ADDomain commandlet quali Identity, -AuthType, e -Credential

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

+0

Hai ragione il server è unito a un dominio e sto cercando di ottenere informazioni di altri domini nella foresta, ma non riesco ancora a capire perché gc. \ Domains.txt | % {Get-ADDomain $ _} funziona, mentre gc. \ Domains.txt | Get-ADDOMain no. – EsOsO