AzureRM虚拟机的远程PowerShell

AzureRM虚拟机的远程PowerShell,powershell,azure,virtual-machine,Powershell,Azure,Virtual Machine,我已成功将许多Azure虚拟机部署到Azure资源组。也就是说,我使用新的部署模型从JSON模板部署虚拟机和相关资源 我的问题是如何从笔记本电脑对这些虚拟机执行远程PowerShell脚本编写。我已经浏览了很多文章,但它们都展示了如何在Azure中使用经典虚拟机。这一点我已经知道并成功地使用了 现在,在使用Azure资源管理器创建的Azure虚拟机上,是否默认启用了SSL远程PowerShell和证书?如何使用Enter-PSSession或Invoke命令进行连接?这适用于现有计算机:通过NI

我已成功将许多Azure虚拟机部署到Azure资源组。也就是说,我使用新的部署模型从JSON模板部署虚拟机和相关资源

我的问题是如何从笔记本电脑对这些虚拟机执行远程PowerShell脚本编写。我已经浏览了很多文章,但它们都展示了如何在Azure中使用经典虚拟机。这一点我已经知道并成功地使用了


现在,在使用Azure资源管理器创建的Azure虚拟机上,是否默认启用了SSL远程PowerShell和证书?如何使用Enter-PSSession或Invoke命令进行连接?

这适用于现有计算机:通过NIC设置确保您的VM具有公共IP。接下来,如果您要使用笔记本电脑,请确保防火墙对公共交通开放。这可以通过一个简单的netsh命令完成:

netsh advfirewall firewall add rule name="WinRM HTTP" dir=in action=allow protocol=TCP localport=5985 profile=public
打开公共IP和防火墙后,您可以通过以下方式进入WinRM会话:

$username = '<admin-user>'
$pass = ConvertTo-SecureString -string '<password>' -AsPlainText -Force
$cred = New-Object -typename System.Management.Automation.PSCredential -argumentlist $username, $pass
Enter-PSSession -ComputerName <public-IP> -Credential $cred -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck)
它应该向您的听众展示如下内容:

Listener [Source="GPO"]
    Address = *
    Transport = HTTP
    Port = 5985
    Hostname
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 1.1.1.1

您还可以使用位于此处的快速入门模板:。如果虚拟机已存在,则可以从同一位置手动复制某些文件和脚本。我在这里添加了说明:

这不是我实际使用过的东西-但这可能会为您指明正确的方向-谢谢,这看起来很有希望-我会尝试一下!完成-使用Azure Key Vault中的证书通过SSL配置WinRM很有效,看起来是正确的方法。现在,我可以对JSON模板中使用这些选项配置的VM执行远程powershell。这个PS命令现在可以从我的笔记本电脑客户端使用:Invoke命令-ComputerName.westeurope.cloudapp.azure.com-Credential$cred-usesssl-ScriptBlock$script-SessionOption(新的PSSessionOption-SkipCACheck-skipLocationCheck-skipncheck)谢谢-azure要求您使用HTTPS。我最终直接使用winrm和netsh通过HTTPS配置远程访问。效果很好。如果服务器已在安装的计算机名上安装了域证书,则可以轻松配置安全远程访问。只需使用以下命令:winrm quickconfig-transport:httpsKindly为我提供启用SSL证书的清晰步骤
Listener [Source="GPO"]
    Address = *
    Transport = HTTP
    Port = 5985
    Hostname
    Enabled = true
    URLPrefix = wsman
    CertificateThumbprint
    ListeningOn = 1.1.1.1