在没有公共IP的情况下使用Powershell在Azure中创建VM

时间:2018-08-27 04:01:41

标签: azure powershell azure-virtual-machine azure-public-ip

我正在使用Powershell从映像在Azure上创建VM。

这是我正在使用的脚本。

$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不存在,任何人都可以帮助我实现这一目标。谢谢!

4 个答案:

答案 0 :(得分:0)

当前,此问题在官方azure-powershell github上仍处于 Open 状态。您可以引用它here。如果您仍然希望绕过此操作,则可以尝试使用New-AzureReservedIP或在部署命令后尝试自行删除公共IP Remove-AzureRmPublicIpAddress

注意:我尚未对其进行测试。只是一个主意。

引用:Docs

答案 1 :(得分:0)

要设置没有公共IP地址,只需将其定义为“”,在powershell中,您将需要再次引用该地址,以使其成为“””。

答案 2 :(得分:0)

如果使用的是PowerShell,则需要通过将“”更改为“”“”来将所有空参数正确地传递到命令中来转义所有空参数。否则,PowerShell将不会传递空字符串,并且您将从命令中收到一条错误消息,表明它缺少参数。

答案 3 :(得分:-1)

$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