41

スクリプトから以下の行を実行すると、ファイルはローカルマシンに作成されます。

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

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

exit-pssession

PowerShellコンソールから各行を個別に実行すると、リモートセッションが正しく作成され、ファイルがリモートマシンに作成されます。理由について何か考えはありますか?タイミングの問題はおそらくスクリプトですか?

4

1 に答える 1

81

タイミングの問題かどうかわからない。Enter-PSSessionがネストされたプロンプトのようなものを呼び出しており、後続のコマンドがその中で実行されていないようなものだと思います。とにかく、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
于 2010-09-14T02:58:57.533 に答える