スクリプトから以下の行を実行すると、ファイルはローカルマシンで作成されます。
$cred = Get-Credential domain\DanTest
Enter-PSSession -computerName xsappb01 -credential $cred
New-Item -type file c:\temp\blahxsappk02.txt
exit-pssession
PowerShellコンソールから各行を個別に実行すると、リモートセッションが正しく作成され、リモートマシンにファイルが作成されます。理由について何か考えはありますか?おそらくスクリプトのタイミングの問題ですか?
タイミングの問題かどうかはわかりません。 Enter-PSSessionがネストされたPromptのようなものを呼び出しており、その後のコマンドがその中で実行されていないようです。とにかく、Enter/Exit-PSSessionはスクリプトの使用ではなく、インタラクティブな使用を目的としています。スクリプトの場合、New-PSSessionを使用して、そのセッションインスタンスをInvoke-Commandに渡します。例:
$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