2010-09-14 14 views
25

Quando eseguo le righe seguenti da uno script, il file finisce per essere creato sul mio computer locale.Enter-PSSession non funziona nel mio script PowerShell

$cred = Get-Credential domain\DanTest 
Enter-PSSession -computerName xsappb01 -credential $cred 

New-Item -type file c:\temp\blahxsappk02.txt 

exit-pssession 

Quando eseguo ciascuna linea individualmente dalla console PowerShell della sessione remota viene creato correttamente e che il file viene creato sulla macchina remota. Qualche idea sul perché? Forse è un problema di temporizzazione?

risposta

52

Non sicuro se si tratta di un problema di temporizzazione. Sospetto che sia più come Enter-PSSession invoca qualcosa come un prompt annidato e i tuoi successivi comandi non vengono eseguiti al suo interno. In ogni caso, credo che Enter/Exit-PSSession sia pensato per un uso interattivo, non per l'uso di script. Per gli script utilizzano New-PSSession e passano l'istanza di sessione in Invoke-Command es .:

$cred = Get-Credential domain\DanTest 
$s = New-PSSession -computerName xsappb01 -credential $cred 
Invoke-Command -Session $s -Scriptblock {New-Item -type file c:\temp\blah.txt} 
Remove-PSSession $s 
+0

Grazie Keith - Io darò questo un aspetto domani, quando torno in ufficio. –

+0

Sembra fare il trucco. Una cosa è che l'ultima riga deve essere Remove-PSSession $ s –

+0

Grazie, ho aggiornato la risposta. –

Problemi correlati