Создание виртуальной машины в Azure с powershell без публичного IP

Я создаю виртуальную машину в Azure из образа с использованием powershell.

Это сценарий, который я использую.

$UserName = "username"
$Password = ConvertTo-SecureString "password@123" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($UserName, $Password)    
New-AzureRmVm `
    -ResourceGroupName "RSG" `
    -Name "VMName" `
    -ImageName "ImageName" `
    -Location "West US" `
    -VirtualNetworkName "VNName" `
    -SubnetName "default" `
    -Credential $psCred
    -PublicIpAddressName "None" `
    -OpenPorts 3389

Но когда я зашел на портал Azure и увидел, какой-то Public Ip назначается по умолчанию. Я также пытался без предоставления PublicIpAddressName Предполагая, что свойство не будет назначать какой-либо IP, но все же это назначение.

Я хочу, чтобы публичный IP не был. Может кто-нибудь помочь мне достичь этого. Спасибо!

1 ответ

Решение

В настоящее время это вопрос, который все еще находится в открытом состоянии на официальном azure-powershell GitHub. Вы можете сослаться на это здесь. Incase, если вы все еще хотите обойти это, вы можете попробовать использовать New-AzureReservedIP или после команды развертывания попробуйте самостоятельно удалить публичный ip Remove-AzureRmPublicIpAddress,

Примечание: я еще не проверял это. Просто идея.

См.: Документы

Чтобы не устанавливать публичный IP-адрес, который у вас есть, вы можете просто определить его как "", в powershell вам нужно будет снова указать его, чтобы он был """" .

Если вы используете PowerShell, вам нужно будет экранировать все пустые параметры, изменив "" на '""', чтобы правильно передать пустую строку в команду. Без этого PowerShell не будет передавать пустую строку, и вы получите ошибку от команды, указывающую, что отсутствует параметр.

$winVmCred = Get-Credential `
  -Message "Enter username and password for the Windows management virtual machine."

# Create a NIC for the VM.
$winVmNic = New-AzNetworkInterface -Name "winVMNIC01" `
  -ResourceGroupName $resourceGroup.ResourceGroupName `
  -Location $location `
  -SubnetId $targetVMSubnet.Id `
  -PrivateIpAddress "10.10.12.10"

# Configure the Windows management VM.
$winVmConfig = New-AzVMConfig -VMName $winVmName -VMSize $winVmSize | `
Set-AzVMOperatingSystem -Windows -ComputerName $winVmName -Credential $winVmCred | `
Set-AzVMSourceImage -PublisherName $winVmPublisher `
  -Offer $winVmOffer `
  -Skus $winVmSku `
  -Version $winVmVersion | `
  Add-AzVMNetworkInterface -Id $winVmNic.Id

# Create the VM.
$winVM = New-AzVM -ResourceGroupName $resourceGroup.ResourceGroupName `
  -Location $location `
  -VM $winVmConfig `
  -ErrorAction Stop
Другие вопросы по тегам