通过Azure自动化的Powershell远程访问azure vm

时间:2018-05-21 13:27:38

标签: powershell azure azure-virtual-machine azure-automation

我试图通过来自azure自动化的powershell远程访问来访问azure vm。订阅中的所有vms都没有公共IP(只有私有IP)。我试图通过New-Pssession访问(如下所示),但没有运气。

请您告诉我其他方法是什么?

$connectionName = "AzureRunAsConnection"
$SPC = Get-AutomationConnection -Name $connectionName
Write-Output $SPC
Add-AzureRmAccount -ServicePrincipal -TenantId $SPC.TenantId -ApplicationId $SPC.ApplicationId -CertificateThumbprint $SPC.CertificateThumbprint
Get-AzureRmSubScription
Select-AzureRMSubscription -SubscriptionId 'XXXXXXXXXXXXXXX'
Get-AzureRMAutomationAccount | fl *
$username = 'XXXXXXX'
$password = 'XXXXXXXX'
$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ($username, $secpasswd)
$S = New-PsSession -ComputerName XXXXXXXX -Credential $mycreds
Enter-PSSession -Session $S

1 个答案:

答案 0 :(得分:0)

如果要使用Azure自动化Runbook访问虚拟机,则需要使用Hybrid Runbook Workers。这是安装在您的某个服务器上并使用Azure自动化帐户注册的代理。然后,您可以在此处在Hybrid Runbook Worker上执行Runbook。

然后,您可以设置要在Hybrid Runbook Worker上执行的runbook,这将有效地执行Runbook,就像它在您的服务器上一样。

如果您的Runbook首先在Azure中执行某些操作,那么我强烈建议您拆分Runbook,以便在Azure中执行操作然后调用另一个Runbook传递相应的参数,但在Hybrid Runbook Worker上执行。您可以使用PowerShell在Hybrid Runbook Worker上执行Azure Automation Runbook,如以下示例所示:

Start-AzureRmAutomationRunbook –AutomationAccountName "MyAutomationAccount" –Name "Test-Runbook" -RunOn "MyHybridGroup"

如果您在虚拟机上没有公共IP地址,则可以使用此选项。

另一种选择是使用WinRM,证书和Azure Key Vault的组合,以便能够使用Enter-PSSession进行连接。有关设置的更多信息,请参阅Setting up WinRM access for Virtual Machines in Azure Resource Manager的文档。但请注意,只有在虚拟机具有公共IP时才能使用此方法。