Lorsque j'exécute les lignes ci-dessous à partir d'un script, le fichier finit par être créé sur ma machine locale.
$cred = Get-Credential domain\DanTest
Enter-PSSession -computerName xsappb01 -credential $cred
New-Item -type file c:\temp\blahxsappk02.txt
exit-pssession
Lorsque j'exécute chaque ligne individuellement à partir de la console PowerShell, la session distante est créée correctement et le fichier est créé sur la machine distante. Des réflexions sur pourquoi? Est-ce un problème de timing du script peut-être?
Je ne sais pas si c'est un problème de timing. Je soupçonne que c'est plus comme Enter-PSSession invoque quelque chose comme une invite imbriquée et vos commandes suivantes ne s'exécutent pas à l'intérieur. Quoi qu'il en soit, je crois que Enter/Exit-PSSession est destiné à une utilisation interactive - pas à une utilisation de script. Pour les scripts, utilisez New-PSSession et passez cette instance de 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