Azure 自动化帐户 PS 远程进入 Azure VM
Azure Automation Account PS Remote into Azure VM
我正在尝试检查 Azure VM 中的一些 Windows 服务,使用具有托管标识的自动化帐户,使用 Powershell 脚本。
基本上我正在尝试使用 New-PSsession -computerName VM1 命令
$VMS = @('VMINT01p', 'VMINT02p', 'VMINT03p', 'VMINT04p')
Foreach ($VM in $VMS)
{
$testSession = New-PSsession -ComputerName $VM -ErrorAction Stop
if(-not($testSession))
{
write-host "Failed to connect to $VM"
Throw "Unable to remote..."
}
else
{
write-host "Connected to $VM"
}
}
但我收到以下错误:
System.Management.Automation.Remoting.PSRemotingTransportException:
Connecting to remote server failed with the following error message :
The WinRM client cannot process the request. If the authentication
scheme is different from Kerberos, or if the client computer is not
joined to a domain, then HTTPS transport must be used or the
destination machine must be added to the TrustedHosts configuration
setting. Use winrm.cmd to configure TrustedHosts. Note that computers
in the TrustedHosts list might not be authenticated. You can get more
information about that by running the following command: winrm help
config. For more information, see the about_Remote_Troubleshooting
Help topic.
我已经为自动化帐户提供了托管身份 虚拟机管理员登录,但我想知道这是否是让它与自动化帐户一起使用的正确权限。
我可以 运行 我自己的凭据下的这个脚本,但我在 indows 中拥有管理员组权限 OS。
希望您使用 PowerShell 连接 Azure VM 的方式正确。
如果您遵循相同的步骤,请检查以下步骤一次:
先决条件
# Install AzureRM PowerShell module to connect to Azure VMs
Install-Module AzureRM
# Verify the WinRM service is running on your local machine
Start-Service WinRM
# Add the VM's public IP address to the trusted hosts of the local machine
Set-Item WSMan:\<localhost>\Client\TrustedHosts -Value <Public IP address of the VM>
打开网络安全组中的端口
打开您的 WinRM(Windows 远程管理)HTTP 和 HTTPS NSG 上的端口与 VM 关联。
检索 NSG 以添加规则的命令如下:
Get-AzureRmNetworkSecurityGroup -Name <NSGNAME> -ResourceGroupName <ResourceGroupName>
添加 NSG 配置规则以连接 VM
Add-AzureRmNetworkSecurityRuleConfig -Name AllowingWinRMHTTPS -Description "To Enable PowerShell Remote Access" -Access <Allow/Deny> -Protocol <Protocal_type = Tcp> -Direction <Inbound/Outbound> -Priority <102> -SourceAddressPrefix <SrcAddPrefix = Internet> -SourcePortRange <port range = *> -DestinationAddressPrefix <DestAddPrefix = *> DestinationPortRange <Port you want to use 5986>
在 NSG 中保存规则
Set-AzureRmNetworkSecurityGroup
使用 PowerShell 访问虚拟机
- 在 VM
上启用 WinRM
- 在 VM 上打开所需的 WinRM 防火墙端口(如果本地 Windows 防火墙已激活)。
在本地创建一个空的 PowerShell 脚本
New-Item -ItemType File -Path C:\<fileName>.ps1
Add/Store 文件中您要在 VM 中执行的任务。
$Content = "winrm qc /force
netsh advfirewall firewall add rule name= WinRMHTTP dir=in action=allow protocol=TCP localport=5985
netsh advfirewall firewall add rule name= WinRMHTTPS dir=in action=allow protocol=TCP localport=5986"
向 PowerShell 脚本添加任务
Add-Content C:\<fileName>.ps1 $Content
使用 VM运行Command. 的 VM 内的 运行 脚本
Invoke-AzureRmVMRunCommand -ResourceGroupName <ResourceGroupName> -Name <name> -CommandId 'RunPowerShellScript' -ScriptPath C:\<fileName>.ps1
删除脚本(因为我们不再需要它了)
Remove-Item C:\<fileName>.ps1
使用 PowerShell 连接到虚拟机
从这里您可以连接虚拟机。
Enter-PSSession -ComputerName <The public IP address of the VM>
参考here了解更多信息。
PowerShell 连接虚拟机 Azure PSRemoting
我正在尝试检查 Azure VM 中的一些 Windows 服务,使用具有托管标识的自动化帐户,使用 Powershell 脚本。
基本上我正在尝试使用 New-PSsession -computerName VM1 命令
$VMS = @('VMINT01p', 'VMINT02p', 'VMINT03p', 'VMINT04p')
Foreach ($VM in $VMS)
{
$testSession = New-PSsession -ComputerName $VM -ErrorAction Stop
if(-not($testSession))
{
write-host "Failed to connect to $VM"
Throw "Unable to remote..."
}
else
{
write-host "Connected to $VM"
}
}
但我收到以下错误:
System.Management.Automation.Remoting.PSRemotingTransportException: Connecting to remote server failed with the following error message : The WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts list might not be authenticated. You can get more information about that by running the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.
我已经为自动化帐户提供了托管身份 虚拟机管理员登录,但我想知道这是否是让它与自动化帐户一起使用的正确权限。
我可以 运行 我自己的凭据下的这个脚本,但我在 indows 中拥有管理员组权限 OS。
希望您使用 PowerShell 连接 Azure VM 的方式正确。
如果您遵循相同的步骤,请检查以下步骤一次:
先决条件
# Install AzureRM PowerShell module to connect to Azure VMs
Install-Module AzureRM
# Verify the WinRM service is running on your local machine
Start-Service WinRM
# Add the VM's public IP address to the trusted hosts of the local machine
Set-Item WSMan:\<localhost>\Client\TrustedHosts -Value <Public IP address of the VM>
打开网络安全组中的端口
打开您的 WinRM(Windows 远程管理)HTTP 和 HTTPS NSG 上的端口与 VM 关联。
检索 NSG 以添加规则的命令如下:
Get-AzureRmNetworkSecurityGroup -Name <NSGNAME> -ResourceGroupName <ResourceGroupName>
添加 NSG 配置规则以连接 VM
Add-AzureRmNetworkSecurityRuleConfig -Name AllowingWinRMHTTPS -Description "To Enable PowerShell Remote Access" -Access <Allow/Deny> -Protocol <Protocal_type = Tcp> -Direction <Inbound/Outbound> -Priority <102> -SourceAddressPrefix <SrcAddPrefix = Internet> -SourcePortRange <port range = *> -DestinationAddressPrefix <DestAddPrefix = *> DestinationPortRange <Port you want to use 5986>
在 NSG 中保存规则
Set-AzureRmNetworkSecurityGroup
使用 PowerShell 访问虚拟机
- 在 VM 上启用 WinRM
- 在 VM 上打开所需的 WinRM 防火墙端口(如果本地 Windows 防火墙已激活)。
在本地创建一个空的 PowerShell 脚本
New-Item -ItemType File -Path C:\<fileName>.ps1
Add/Store 文件中您要在 VM 中执行的任务。
$Content = "winrm qc /force
netsh advfirewall firewall add rule name= WinRMHTTP dir=in action=allow protocol=TCP localport=5985
netsh advfirewall firewall add rule name= WinRMHTTPS dir=in action=allow protocol=TCP localport=5986"
向 PowerShell 脚本添加任务
Add-Content C:\<fileName>.ps1 $Content
使用 VM运行Command. 的 VM 内的 运行 脚本
Invoke-AzureRmVMRunCommand -ResourceGroupName <ResourceGroupName> -Name <name> -CommandId 'RunPowerShellScript' -ScriptPath C:\<fileName>.ps1
删除脚本(因为我们不再需要它了)
Remove-Item C:\<fileName>.ps1
使用 PowerShell 连接到虚拟机
从这里您可以连接虚拟机。
Enter-PSSession -ComputerName <The public IP address of the VM>
参考here了解更多信息。
PowerShell 连接虚拟机 Azure PSRemoting