2010-09-14 5 views
25

Lorsque j'exécute les lignes ci-dessous à partir d'un script, le fichier est créé sur mon ordinateur local.Enter-PSSession ne fonctionne pas dans mon script Powershell

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

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

exit-pssession 

Quand je lance chaque ligne individuellement à partir de la console powershell la session à distance est créé correctement et le fichier est créé sur la machine distante. Des pensées sur pourquoi? Est-ce un problème de synchronisation est le script peut-être?

Répondre

52

Vous ne savez pas s'il s'agit d'un problème de synchronisation. Je suppose que c'est plus comme Enter-PSSession invoque quelque chose comme une invite imbriquée et vos commandes suivantes ne sont pas en cours d'exécution en son sein. Quoi qu'il en soit, je crois que Enter/Exit-PSSession est destiné à une utilisation interactive - pas à l'utilisation de scripts. Pour les scripts utilisent New-PSSession et passer cette instance de la session dans Invoke-Command .: par exemple

$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

Merci Keith - Je donnerai ce demain regard quand je reviens au bureau. –

+0

Cela semble faire l'affaire. Une chose est la dernière ligne doit être Supprimer-PSSession $ s –

+0

Merci, j'ai mis à jour la réponse. –

Questions connexes