如何为New-AzureRmVm配置OpenPorts选项以创建没有默认网络安全组RDP端口(3389,5985)的VM。

时间:2018-12-17 02:33:54

标签: azure powershell

我想创建Windows Server VM,它具有使用Powershell进行源过滤的RDP端口。

New-AzureRmVMAdd-AzureRmNetworkSecurityRuleConfig部分地为我工作。

New-AzureRmVM使用nsg规则为允许任何源的默认RDP端口创建VM。运行脚本后,我必须删除它们。

我尝试将-OpenPorts选项设置为$ null或无。

这可能吗?还是其他实现此目的的方法?

2 个答案:

答案 0 :(得分:1)

不幸的是,当您使用PowerShell命令New-AzureRmVM创建VM时,似乎无法通过将-OpenPorts设置为$ null或None来删除RDP NGS规则。

  

-OpenPorts

     

要在创建的VM的网络安全组(NSG)上打开的端口的列表。默认值取决于图像的类型   选择(即Windows:3389、5985和Linux:22)。

创建Windows VM时,将根据映像类型打开默认端口。但是您可以在创建时更改NSG规则以过滤流量。

# Create an inbound network security group rule for port 3389
$nsgRuleRDP = New-AzureRmNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleRDP  -Protocol Tcp `
  -Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
  -DestinationPortRange 3389 -Access Allow

# Create a network security group
$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
  -Name myNetworkSecurityGroup -SecurityRules $nsgRuleRDP

根据需要设置-SourceAddressPrefix-SourcePortRange-DestinationAddressPrefix-Access,以过滤流量。有关更多详细信息,请参见Create a fully configured virtual machine with PowerShell

答案 1 :(得分:0)

您可以更改Azure VM默认RDP端口。有关更多详细信息,请参阅blog

Write-host "What Port would you like to set for RDP: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value $RDPPort

New-NetFirewallRule -DisplayName "RDP HighPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow