Azure-Runbook中的新PSSession:访问被拒绝(ARM)

时间:2017-05-03 09:58:02

标签: azure azure-powershell azure-automation

根据this answer中提供的建议,我能够在Azure VM(1)上设置winrm

现在,我可以通过

打开New-PSSession的PS会话
  • 任何Azure VM(2)到Azure VM(1)
  • 我的本地计算机到Azure VM(1)

但如果我在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得到了我最好的。因此,上面的代码中只有一个小的语法问题。如果有人分享了正确的答案,我很高兴投票并接受它。

1 个答案:

答案 0 :(得分:1)

根据official documents

  

默认情况下,工作流中定义的变量不是   对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)
}