powershell - 远程 PowerShell 到 AzureRM 虚拟机

标签 powershell azure virtual-machine

我已成功将多个 Azure 虚拟机部署到 Azure 资源组。也就是说,我正在使用新的 Azure Resource Manager部署模型,用于通过 JSON 模板部署虚拟机和相关资源。

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

现在,在使用 Azure 资源管理器创建的 Azure VM 上默认启用证书的 SSL 远程 PowerShell 是否已启用?如何与 Enter-PSSession 或 Invoke-Command 连接?

最佳答案

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

netsh advfirewall firewall add rule name="WinRM HTTP" dir=in action=allow protocol=TCP localport=5985 profile=public

打开公共(public) IP 和防火墙后,您可以使用以下命令进入 WinRM session :

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

注意:默认情况下,应在您的计算机上设置并监听基于 HTTP 的 WinRM 和监听器。由于不清楚从哪里获取证书,因此未启用 HTTPS。但是,WinRM 使用消息级加密,因此它不完全是明文形式。您可以通过以下方式验证:

winrm e winrm/config/listener

这应该向听众展示如下内容:

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

关于powershell - 远程 PowerShell 到 AzureRM 虚拟机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33898229/

相关文章:

loops - Powershell多个阵列(菜鸟)

powershell - 通过VPN远程管理Powershell

powershell - 如何在Powershell v1.0中正确终止 'here string'?

azure - 在 Azure Web 应用服务中使用 redis 作为容器

azure - 使用 terraform 在订阅下创建 azure 资源组

python - 虚拟机设置和同步项目依赖

Powershell比较两个对象属性

android - 如何处理Azure移动服务自定义Api返回的android中的多个对象

erlang - 运行多个 Erlang 应用程序。一台还是多台虚拟机?

linux - 如何压缩或写入 zero's/dev/zero 到交换文件?