這是針對現有機器的:確保您的虛擬機具有通過NIC設置的公共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)
注:默認情況下,WinRM的通過HTTP和應該在你的機器上設置和監聽。 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
這不是我實際使用過的 - 但這可能會指向正確的方向 - https://github.com/Azure/azure-quickstart-templates/tree/master/ 201-winrm-windows-vm –
感謝這看起來非常有前途 - 將試用! –
完成 - 使用來自Azure Key Vault的證書配置SSL上的WinRM的工作方式看起來是正確的方式。我現在可以對JSON模板中的這些選項配置的虛擬機執行遠程PowerShell。此PS命令現在可以從我的筆記本電腦客戶端運行:Invoke-Command - 計算機名稱 .westeurope.cloudapp.azure.com -Credential $ cred -UseSSL -ScriptBlock $ script -SessionOption(New-PSSessionOption -SkipCACheck -SkipRevocationCheck -SkipCNCheck) –