1

スクリプトからリモート セッションを実行する場合と、正確なコマンド シーケンスを手動で入力する場合では、異なる結果が得られます。これは、私が取り組んでいるかなり複雑なスクリプトで発生していますが、問題を示すために小さなスクリプトを作成しました。返される数字は 7-5-5 ではなく 7-5-7 であるべきではありませんか?

問題のスクリプト

$oldMachineName = "ppal12084229"
$remoteSession = New-PSSession $oldMachineName

$xyz =7

"outside remote session"
$xyz
""

enter-PSSession $remoteSession
$xyz = 5

"inside remote session"
$xyz
""

exit-pssession

"outside remote session"
$xyz
""

remove-pssession $remoteSession

スクリプトを実行すると、次の出力が得られます。

outside remote session
7

inside remote session
5

outside remote session
5

しかし、コマンドを手動で入力すると、次のようになります。

PS H:\> $oldMachineName = "ppal12084229"
PS H:\> $remoteSession = New-PSSession $oldMachineName
PS H:\> $xyz =7
PS H:\> $xyz
7
PS H:\> enter-PSSession $remoteSession
[ppal12084229]: PS C:\WINDOWS\system32> $xyz = 5
[ppal12084229]: PS C:\WINDOWS\system32> $xyz
5
[ppal12084229]: PS C:\WINDOWS\system32> exit-pssession
PS H:\> $xyz
7
PS H:\> remove-pssession $remoteSession

異なる結果が得られるのはなぜですか?

4

1 に答える 1

2

Enter-PSSessionExit-PSSessionインタラクティブな使用を目的としています。スクリプトでこれを試して、何が得られるかを確認してください。

$oldMachineName = "ppal12084229"
$remoteSession = New-PSSession $oldMachineName

$xyz =7

"outside remote session"
$xyz
""

invoke-command -Session $remoteSession -ScriptBlock {
     $xyz = 5

     "inside remote session"
     $xyz
     ""
}

"outside remote session"
$xyz
""

remove-pssession $remoteSession
于 2012-11-19T17:20:11.633 に答える