2011-12-02 9 views
14

Questo è semplicemente pazzesco, sto iniziando con PowerShell. E naturalmente ho bisogno di fare il lavoro di amministrazione da remoto.Quali impostazioni di protezione impediscono a Remote PowerShell 2.0 di accedere ai percorsi UNC

Un semplice

dir \\server\share\folder 

solo si rifiuta di lavorare, ottengo questo errore

Get-ChildItem : Cannot find path '\\server\share\folder' because it does not exist. 
    + CategoryInfo   : ObjectNotFound: (\\server\share\folder:String) [Get-ChildItem], ItemNotFoundException 
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand 

Per me è abbastanza evidente si tratta di un problema di diritti di accesso. E abbiamo un dominio qui in azienda. Sono connesso al server, con lo stesso identico account utente, su VNC e posso vedere il percorso UNC. Ma ogni volta che provo a copiare semplicemente un file dal mio desktop con la connessione remota. Semplicemente non funzionerà !!!!

Posso fare molte altre cose quindi sono positivo sono connesso.

+0

in un comando dos shell 'dir \\ server \ share \ folder' non dà errori ?? –

+0

Questo è corretto. Forse dovrei scrivere "dir \\ MyServer \ MyShare \ MyFolder". Ho scoperto che ho bisogno di configurare CredSSP, ho fatto e ho ancora un timeout seguito da Enable-WSManCredSSP: questo comando non può essere eseguito perché l'impostazione non può essere abilitata. Questo può accadere se non è presente alcuna connessione di rete. –

+0

A questo punto, ho usato gpedit.msc per consentire nuove credenziali su entrambi i computer. Ho impostato la nuova politica delle credenziali e uso i comandi 'enable-wsmancredssp -role client -delegatecomputer computer1.domain.com' e' enable-wsmancredssp -role server'. Per lo stato I eseguo 'Get-WSManCredSSP' e ottengo ** La macchina è configurata per consentire la delega di nuove credenziali ai seguenti target: wsman/computer1.dominio.com, wsm an/*. Domain.com. Questo computer è configurato per ricevere credenziali da un computer client remoto. ** Non riesco a trovare qualcos'altro da fare e non funziona ancora! –

risposta

15

Per far funzionare tutto questo, è necessario configurare sia il computer locale che quello remoto.

Sul server remoto, eseguire il seguente comando:

Enable-WSManCredSSP -Role server 

Saprete le cose stanno confgured correttamente se si esegue il cmdlet Get-WSManCredSSP e ottenere il seguente risultato:

The machine is not configured to allow delegating fresh credentials. This computer is configured to receive credentials from a remote client computer.

Sul computer locale, da un prompt di PowerShell amministrativo, è necessario consentire la delega delle credenziali in PowerShell. Eseguire il seguente comando:

Enable-WSManCredSSP -Role Client -DelegateComputer <REMOTE_COMPUTER_NAME> 

È possibile attivare tutti i server utilizzando * per REMOTE_COMPUTER_NAME.

Saprete questo è configurato correttamente quando si esegue Get-WSManCredSSP e ottenere il seguente risultato:

The machine is configured to allow delegating fresh credentials to the following target(s): wsman/REMOTE_SERVER_NAME
This computer is not configured to receive credentials from a remote client computer.

Sul computer locale, aggiornare Criteri di gruppo per consentire le credenziali per essere trasferite al Server remoto.

  1. Aprire gpedit.msc e accedere a Configurazione computer> Modelli amministrativi> Sistema> Delega credenziali.
  2. Fare doppio clic su "Consenti la delega di nuove credenziali con autenticazione server NTLM-only".
  3. Abilitare l'impostazione e aggiungere il server di build all'elenco dei server come WSMAN/BuildServerName. (È possibile attivare tutti i server inserendo WSMAN/*.)

Poi, quando è necessario eseguire il comando sul server remoto, non è possibile utilizzare uno qualsiasi dei comandi * -PSSession perché CredSSP può usare le credenziali memorizzate nella cache Devi iniziare la sessione utilizzando Invoke-Command, e utilizzare CredSSP come valore al parametro di autenticazione, in questo modo:

Invoke-Command -ScriptBlock { # remote commands here } ` 
       -ComputerName <REMOTE_COMPUTER_NAME> ` 
       -Authentication CredSSP ` 
       -Credential <USERNAME> 
+1

Ottima risposta e tante buone informazioni grazie! Sfortunatamente, ho ancora un problema. Ho apportato le modifiche ai criteri di gruppo ma quando eseguo quanto segue in una finestra PS elevata: "Enable-WSManCredSSP -role Client -DelegateComputer d-vasbiz01 -force" Viene visualizzato il seguente errore: "Enable-WSManCredSSP: Questo comando non può essere eseguito perché l'impostazione non può essere abilitata "qualche idea? –

+0

L'ho trovato! Il problema era all'interno dell'editor della politica di gruppo. Avevo bisogno di prefisso il nome del server a cui mi sto delegando con "wsman /". Questo è come afferma la risposta, ma l'ho perso! Molte grazie per la risposta. –

+0

Non ho dovuto eseguire i passaggi "Criteri di gruppo" solo abilitare "client" e abilitare i ruoli "server" sui computer corretti. – rob

0

PowerShell utilizza anche le impostazioni di protezione di Internet Explorer in esecuzione di script remoti.

Ho trovato che, per qualsiasi macchina si stia tentando di eseguire uno script remoto, se aggiungo il percorso unc della macchina remota ai miei siti intrAnet affidabili, posso eseguire gli script quindi (assumendo che la mia politica di esecuzione in posh è impostato su remotesigned .... "set-executionpolicy remotesigned").

Faccio un sacco di amministrazione per più server con e senza SQL e non ho mai fatto nulla con Enable-WSManCredSSP.

Problemi correlati