通过 PowerShell 的方式增加经典虚拟机终结点
关于经典虚拟机终结点的概念请阅读:如何设置虚拟机的终结点。
注意
使用 Powershell 前有关 Azure PowerShell 的安装、配置和连接到订阅请阅读这篇文章。
相关 PowerShell 指令:
注意
本文使用的测试虚拟机名为:"classicvm",相关参数请根据您的实际情况进行替换。
查看当前虚拟机终结点
#servicename 为虚拟机对应的云服务的名称
#name 为虚拟机的名称
Get-AzureVM -Servicename 'classicvm8' -Name 'classicvm'| Get-AzureEndpoint
从上面信息可以看到目前虚拟机上拥有两个终结点:PowerShell 和 Remote Desktop。
下文讲述如何通过 PowerShell 增加终结点。
添加虚拟机终结点
Get-AzureVM -ServiceName "classicvm8" -Name "classicvm" | Add-AzureEndpoint -Name "HttpIn" -Protocol "tcp" -PublicPort 80 -LocalPort 8080 | Update-AzureVM
该指令在虚拟机上增加了一个终结点,名称 HttpIn,协议 tcp,公用端口 80,私有端口 8080。
可以通过 Get-AzureEndpoint
查看结果。
注意
增加终结点的操作不会引起虚拟机重启,也不需要虚拟机重启。
通过 PowerShell 脚本批量地增加终结点
首先在 Excel 输入需要一次性添加的终结点,然后以 csv 文件格式导出。
关于在 PowerShell 中导入 .csv 文件请阅读这篇文章。
$vm = Get-AzureVM -Servicename 'classicvm8' -Name 'classicvm'
$csvFile = 'D:\endpoint.csv'
$endpoints = Import-Csv $csvFile -header Name,Protocol,PublicPort,LocalPort | foreach {
New-Object PSObject -prop @{
Name = $_.Name;
Protocol = $_.Protocol;
PublicPort = [int32]$_.PublicPort;
LocalPort = [int32]$_.LocalPort;
}
}
Foreach ($endpoint in $endpoints)
{
Add-AzureEndpoint -VM $vm -Name $endpoint.Name -Protocol $endpoint.Protocol.ToLower() -PublicPort $endpoint.PublicPort -LocalPort $endpoint.LocalPort | Update-AzureVM
}
在 Azure 门户上可以看到最终结果: