我正在尝试使用 PowerShell 创建 Azure VM。我能够成功创建一个,但我遇到的问题是我试图让新 VM 使用不同资源组中的现有 VNET 和子网。当我运行我的代码时,它会尝试创建一个全新的 VNET 和子网。我不知道如何链接它以使用位于不同资源组中的现有 VNET。
# Define Local Variables
$RG = "TestLab"
$Location = "eastus"
$UserName = "azadmin"
$Password = (ConvertTo-SecureString "Passw0rd123!" -Force -AsPlainText)
$VMName = "TestBox-VM-PS"
$VMSize = "Standard_D2as_V4"
$VirtualNetwork = "azTestBox01_vnet" #existing Vnet on different resource group
$Subnet = "TestBOX-Sub-10.0.0.0" #existing subnet on different resource group
$Friendly_Image_Name = "MicrosoftWindowsServer:WindowsServer:2019-Datacenter:Latest"
# Set credentials
$Credential = New-Object System.Management.Automation.PSCredential ($UserName, $Password)
New-AzVm `
-Name $VMName `
-ResourceGroupName $RG `
-Location $Location `
-VirtualNetworkName $VirtualNetwork `
-SubnetName $Subnet `
-Image $Friendly_Image_Name `
-Size $VMSize `
-Credential $Credential
答案 0 :(得分:0)
遗憾的是,New-AzVM
cmdlet 不允许您指定要将 VM 连接到的 vnet 的资源组。它将始终假设 vnet 与部署 VM 的资源组位于同一资源组中。
您可以通过 creating the configuration for your VM step by step 解决此问题:
# Define Local Variables
$RG = "TestLab"
$Location = "westeurope"
$UserName = "azadmin"
$Password = (ConvertTo-SecureString "Passw0rd123!" -Force -AsPlainText)
$VMName = "TestBox-VM-PS"
$Credential = New-Object System.Management.Automation.PSCredential ($UserName, $Password)
$publisherName = "MicrosoftWindowsServer"
$offer = "WindowsServer"
$sku = "2019-Datacenter"
$version = "Latest"
$vNicName = "NetworkInterface1"
$VirtualNetwork = "azTestBox01_vnet" #existing Vnet on different resource group
$Subnet = "TestBOX-Sub-10.0.0.0" #existing subnet on different resource group
$vnetResourceGroupName = "TestLabVnet" #resource group of the existing subnet
New-AzResourceGroup -Name $RG -Location $Location
$vNet = Get-AzVirtualNetwork -Name $VirtualNetwork -ResourceGroupName $vnetResourceGroupName
$subnetId = $vNet.Subnets | Where-Object Name -eq $Subnet | Select-Object -ExpandProperty Id
$vNic = New-AzNetworkInterface -Name $vNicName -ResourceGroupName $RG -Location $Location -SubnetId $subnetId
$vm = New-AzVMConfig -VMName $VMName -VMSize $VMSize
$vm = Set-AzVMOperatingSystem -VM $vm -Windows -ComputerName $VMName -Credential $Credential -ProvisionVMAgent -EnableAutoUpdate
$vm = Add-AzVMNetworkInterface -VM $vm -Id $vNic.Id
$vm = Set-AzVMSourceImage -VM $vm -PublisherName $publisherName -Offer $offer -Skus $sku -Version $version
New-AzVM -ResourceGroupName $RG -Location $Location -VM $vm -Verbose