Azure Site Recovery プランから実行したときに PowerShell スクリプトが失敗する

Azure Site Recovery プランから実行したときに PowerShell スクリプトが失敗する
$username = "username" 
$password  = convertto-securestring "*****" -asplaintext -force 
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password  
$session = New-PSSession -computername 'testserver' -credential $cred 
Invoke-Command -Session $session -ScriptBlock {New-NetIPAddress -IPAddress 10.201.10.10 -InterfaceAlias 'LoadBalancer' -AddressFamily IPv4 -PrefixLength 24}
Remove-PSSession -Session $session

上記のスクリプトは VMM サーバーからは正常に実行されますが、サイト回復計画の一部として含めると失敗します。

Azure からのエラー メッセージ: スクリプト例外: パラメーター 'Session' の引数を検証できません。引数が null または空です。null または空ではない引数を指定して、コマンドを再試行してください。

どこが間違っているのでしょうか?

答え1

スクリプト作成はそれほど得意ではありませんが、私が指摘したことが正しい答えにつながることを願っています。

$session = New-PSSession -computername 'testserver' -credential $cred -> 指定されたコンピューター上にセッションを作成します。 $session -> そのセッションは作成されているので、これは必要ないと思います。 ... $session - セッションは既に実行されているためです。同じセッションを再度呼び出す必要はないと思います。 Remove-PSSession $session -> 渡す変数は、さらに別のセッションを作成するためのものです。既存のセッションを削除するものではありません。ここでは、サーバー名またはそのサーバー上のセッションの ID を指定するだけでよいと思います。

答え2

この問題の解決策を見つけました。 VMM がスクリプトを正常に実行したにもかかわらず、Azure はエラーを表示していました。 主にスクリプトの最後の行に関するエラーでした。 最後の行を次のように変更したところ、正常に動作するようになりました。

削除-PSSession -セッション $session

関連情報