2015-11-24 103 views
2

我已成功將一些Azure虛擬機部署到Azure資源組。也就是說,我正在使用新的Azure Resource Manager部署模型從JSON模板部署虛擬機和相關資源。遠程PowerShell到AzureRM虛擬機

我的問題是如何從我的筆記本電腦對這些虛擬機執行遠程PowerShell腳本。我已經梳理了許多文章 - 但他們都展示瞭如何使用Azure中的經典虛擬機進行操作。這我已經知道併成功地使用。

現在,基於SSL的遠程PowerShell是否具有默認情況下在使用Azure資源管理器創建的Azure虛擬機上啓用的證書?我如何連接到Enter-PSSession或Invoke-Command?

+2

這不是我實際使用過的 - 但這可能會指向正確的方向 - https://github.com/Azure/azure-quickstart-templates/tree/master/ 201-winrm-windows-vm –

+0

感謝這看起來非常有前途 - 將試用! –

+0

完成 - 使用來自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) –

回答

4

這是針對現有機器的:確保您的虛擬機具有通過NIC設置的公共IP。接下來,如果您要使用筆記本電腦,請確保您的防火牆對公共交通開放。這可以用一個簡單的netsh命令來完成:

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

一旦你有一個公網IP和防火牆上打開你可以輸入一個Wi​​nRM的會話:

$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 
+0

Thanks - Azure要求您使用HTTPS。我最終通過使用winrm和netsh直接配置了通過HTTPS的遠程訪問。很棒。如果服務器已經安裝了計算機名稱上的域名證書,則可以輕鬆配置安全的遠程訪問。只需使用以下命令:winrm quickconfig -transport:https –

+0

請給我一個明確的步驟,說明你正在做什麼來啓用SSL證書 – HaTiMSuM