2010-09-14 13 views
25

Cuando ejecuto las líneas a continuación desde un script, el archivo termina siendo creado en mi máquina local.Enter-PSSession no funciona en mi secuencia de comandos de Powershell

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

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

exit-pssession 

Cuando corro cada línea individual desde la consola de PowerShell de la sesión remota se crea correctamente y el archivo se crea en la máquina remota. ¿Alguna idea sobre por qué? ¿Es un problema de tiempo el guión tal vez?

Respuesta

52

No estoy seguro de si se trata de un problema de temporización. Sospecho que es más como Enter-PSSession está invocando algo así como un aviso anidado y sus comandos posteriores no se están ejecutando dentro de él. De todos modos, creo que Enter/Exit-PSSession está destinado para uso interactivo, no para el uso de scripts. Para los scripts usan New-PSSession y pasan esa instancia sesión en Invoke-Command ej .:

$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

Gracias Keith - Voy a dar a esto una mirada mañana cuando vuelva a la oficina. –

+0

Eso parece hacer el truco. Una cosa es que la última línea debe ser Remove-PSSession $ s –

+0

Gracias, actualicé la respuesta. –

Cuestiones relacionadas