如何使用 PowerShell 从现有托管磁盘创建 Azure VM?

问题描述 投票:0回答:1

我一开始尝试过的:

# fetch existing disk and network interface
$disk = Get-AzDisk -DiskName "MyDiskName" -ResourceGroupName "MyRgName"
$ni = Get-AzNetworkInterface -Name "MiNiName" -ResourceGroupName "MyRgName"

# create vm configuration
$vmConfig = New-AzVMConfig -VMName "MyVmName" -VMSize "Standard_D2_v5" -SecurityType "TrustedLaunch" | `
Set-AzVMBootDiagnostic -Enable -ResourceGroupName "MyRgName" | `
Set-AzVMOSDisk -CreateOption "Attach" -ManagedDiskId $disk.Id | `
Add-AzVMNetworkInterface -Id $ni.Id.

# create vm
New-AzVM -VM $vmConfig -ResourceGroupName "MyRgName" -Location "Australia East"

但是,New-AzVM 命令失败,并显示以下信息:

缺少必需参数“osDisk.osType”(空)。
错误代码:无效参数
ErrorMessage:必需的参数“osDisk.osType”是 缺失(空)。
错误目标:osDisk.osType
状态代码:400 原因短语:
操作ID:d5e4e899-6c4e-42e8-94fd-47f0350ab7a5

然后,如果我尝试将操作系统标志添加到 Set-AzVMOSDisk,如下所示...

Set-AzVMOSDisk -Windows -CreateOption "Attach" -ManagedDiskId $disk.Id

我收到以下错误:

设置-AzVMOSDisk:
3号线
Set-AzVMOSDisk -Windows -CreateOption "Attach" -ManagedDiskId $disk.I …
无法使用指定的命名参数解析参数集。发出的一个或多个参数不能一起使用或 提供的参数数量不足。

该标志似乎确实没有必要,因为我并没有尝试在空磁盘上创建虚拟机,并且现有磁盘中已经包含该信息:

"name": "MyDiskName",
"type": "Microsoft.Compute/disks",
"location": "australiaeast",
"sku": {
   "name": "StandardSSD_LRS",
   "tier": "Standard"
},
"properties": {
   "osType": "Windows",
   "hyperVGeneration": "V2",
   "supportedCapabilities": {
      "diskControllerTypes": "SCSI",
      "acceleratedNetwork": true,
      "architecture": "x64"
   }
azure powershell azure-powershell azure-virtual-machine azure-managed-disk
1个回答
0
投票

如何使用 PowerShell 从现有托管磁盘创建 Azure VM?

这里是更新的

PowerShell
脚本,用于从现有的 托管磁盘创建 Azure VM

$VMName ="venkatdemo"
$azureVmSize = "Standard_D2_v5"
$Rgname = "rg-name"
    
$disk = Get-AzDisk -DiskName "venkat-vm-os-disk" -ResourceGroupName $Rgname
$ni = Get-AzNetworkInterface -Name "VM_Nic" -ResourceGroupName $Rgname
$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $azureVmSize -SecurityType "Standard"
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $ni.Id 
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -ManagedDiskId $disk.Id -StorageAccountType "Standard_LRS" -Name $disk.Name -CreateOption Attach -Windows -DeleteOption Delete -Verbose
New-AzVM -ResourceGroupName $Rgname  -Location "westus2" -VM $VirtualMachine -Verbose

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.