簡體   English   中英

使用 PowerShell 和現有 VNET 創建 Azure VM

[英]Create an Azure VM using PowerShell with an existing VNET

我正在嘗試使用 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

不幸的是, New-AzVM cmdlet 不允許您指定要將 VM 連接到的 vnet 的資源組。 它始終假定 vnet 與部署 VM 的資源組位於同一資源組中。

您可以通過逐步為您的 VM 創建配置來解決此問題:

# 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM