$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 的錯誤訊息:腳本異常:無法驗證參數「會話」的參數。參數為 null 或為空。提供一個不為 null 或空的參數,然後重試該指令。
我哪裡錯了?
答案1
不太擅長編寫腳本,但希望我指出的內容可以幫助找到正確的答案。
$session = New-PSSession -computername 'testserver' -credential $cred -> 在指定的電腦上建立會話。 $session -> 由於該會話已創建,我不相信您需要這個。 ... $session - 由於會話已經在運行。我認為沒有必要再次致電同一個人。 Remove-PSSession $session -> 您傳遞的變數用於建立另一個會話。不刪除現有的。我認為您只需要在此處指定伺服器名稱或該伺服器上的會話 ID。
答案2
找出了這個問題的解決方案。即使 VMM 成功執行了我的腳本,Azure 仍顯示錯誤。主要是抱怨劇本的最後一行。用以下修改最後一行,現在工作正常。
刪除-PSSession -Session $session