$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 $session