根据this answer中提供的建议,我能够在Azure VM(1)上设置winrm
。
现在,我可以通过
打开New-PSSession
的PS会话
但如果我在Azure Runbook中完全相同,
$cred = Get-AutomationPSCredential -Name "admin"
InlineScript
{
$vmSession = New-PSSession -ConnectionUri 'https://xxx.yyy.cloudapp.azure.com:5986' -Credential $cred -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck)
}
它失败并显示错误消息:
New-PSSession:[xxx.yyy.cloudapp.azure.com]连接到远程服务器 xxx.yyy.cloudapp.azure.com失败并显示以下错误消息:访问被拒绝。
作为用户,我使用`localhost \ admin"密码是正确的(仔细检查)。
问如何克服拒绝访问?
更新
PS-workflow得到了我最好的。因此,上面的代码中只有一个小的语法问题。如果有人分享了正确的答案,我很高兴投票并接受它。
答案 0 :(得分:1)
默认情况下,工作流中定义的变量不是 对InlineScript脚本块中的命令可见。要做 InlineScript可见的工作流变量,使用$ Using范围 修改。 $ Using范围修饰符仅对每个都需要一次 InlineScript中的变量。
因此,您需要修改脚本,如下所示:
$cred = Get-AutomationPSCredential -Name "admin"
InlineScript
{
$vmSession = New-PSSession -ConnectionUri 'https://xxx.yyy.cloudapp.azure.com:5986' -Credential $Using:cred -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck)
}