【问题标题】:Accessing an azure vm through Powershell remote from Azure Automation从 Azure 自动化通过 Powershell 远程访问 azure vm
【发布时间】:2018-10-31 04:16:17
【问题描述】:

我正在尝试通过 azure 自动化的 powershell 远程访问 azure vm。订阅中的所有虚拟机都没有公共 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

【问题讨论】:

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


【解决方案1】:

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

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

如果您的 Runbook 首先在 Azure 中执行某些操作,那么我强烈建议您拆分您的 Runbook,以便一个在 Azure 中执行操作,然后调用另一个 Runbook,传递适当的参数,但在混合 Runbook Worker 上执行。您可以使用 PowerShell 在混合 Runbook Worker 上执行 Azure 自动化 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 时,您才能使用此方法。

【讨论】:

    猜你喜欢
    • 2021-03-01
    • 2016-11-21
    • 2018-12-27
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多