对于经典门户(ASM)中的Azure VM,我能够获得
Get-AutomationPSCredential
和-ConnectionURI
与Connect-AzureVM.ps1
。通过这两个参数,我能够在Azure-Runbook中成功执行New-PSSession
。
问我应该怎样做才能在Azure-Runbook中打开一个到Azure-VM(ARM)的PS-Session?
更新
Runbook(ARM)中的命令
$vmSession = New-PSSession -ConnectionUri 'https://xxx.yyy.cloudapp.azure.com:5985' -Credential $creds -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck)
错误消息
New-PSSession:[xxx.yyy.cloudapp.azure.com]正在连接 远程服务器xxx.yyy.cloudapp.azure.com 失败,出现以下错误消息:WinRM无法完成 操作。验证指定的计算机名称是否有效,即 计算机可通过网络访问,并且是防火墙 启用WinRM服务的异常并允许从此进行访问 电脑。默认情况下,WinRM防火墙例外公开 配置文件限制对同一本地内远程计算机的访问 子网。有关更多信息,请参阅about_Remote_Troubleshooting 帮助主题。
答案 0 :(得分:2)
根据您的错误,似乎端口5985被某些防火墙阻止。您可以使用telnet
来测试连接性。
telnet xxx.yyy.cloudapp.azure.com 5985
如果失败,您应该另外检查:
在Windows防火墙(入站规则)上打开端口5985。
在Azure NSG上打开端口5985(入站规则)。注意NSG可能与NIC或子网相关联,你最好全部检查它们。
在服务器VM上,执行cmdlet。
winrm quickconfig
确保您可以访问端口5985,然后在本地PC上进行测试,然后在Azure Runbook上进行测试。
我使用以下cmdlet,它适用于我。
New-PSSession -ConnectionUri 'http://IP:5985' -Credential $creds -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck)
注意:如果您未在服务器上配置证书,则无法使用https
,而应使用http
。
PS C:\Users\v-shshui> New-PSSession -ConnectionUri 'http://*.*.*.*:5985' -Credential $creds -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck)
Id Name ComputerName ComputerType State ConfigurationName Availability
-- ---- ------------ ------------ ----- ----------------- ------------
7 Session7 *.*.*.* RemoteMachine Opened Microsoft.PowerShell Available
此外,如果您要使用https
,则需要按照此link中所示配置证书。
<强>更新强>
如果要在Azure Runbook中winrm
到VM,则应使用https
。这意味着您应该在Azure NSG和Windows防火墙上打开端口5986(默认情况下)。此外,您需要在Azure VM上添加新证书。