New-AzVM:不允许使用参数“osProfile”

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

我使用 powershell 从快照(Windows 10)创建磁盘,然后创建虚拟机,并将该操作系统磁盘附加到其上。在创建虚拟机时,我发现不允许使用参数 osProfile。谢谢你的帮助。这一切都是最近在微软显然推出了一些更改后开始的,我在他们的网站上找不到任何可以帮助的内容。事实上,我发现另一个网站基本上说微软不会修复它,所以就处理它吧。

$snapshot = Get-AzSnapshot -ResourceGroupName RG -SnapshotName snap-mysnapshot
$diskConfig = New-AzDiskConfig -AccountType $storageType -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id -OsType Windows
New-AzDisk -Disk $diskConfig -ResourceGroupName RG -DiskName 123456789 -Verbose
$osDisk = Get-AzDisk -ResourceGroupName RG -DiskName 123456789

$azureLocation              = "EastUS"
$azureVmOsDiskName          = "123456789"
$azureVmSize                = "Standard_F4s_v2"
$azureNicName               = "123456789"
$azurePublicIpName          = "123456789"
$azureVnetName              = "25"
$azureVnetSubnetName        = "111"

$azureVnetSubnet = (Get-AzVirtualNetwork -Name $azureVnetName -ResourceGroupName RG).Subnets | Where-Object {$_.Name -eq $azureVnetSubnetName}

$azureNIC = New-AzNetworkInterface -Name 123456789 -ResourceGroupName RG -Location $azureLocation -SubnetId $azureVnetSubnet.Id -Force

$ComputerName = "ComputerName"
$VMLocalAdminUser = "admin"
$VMLocalAdminSecurePassword = ConvertTo-SecureString "Password" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser,     $VMLocalAdminSecurePassword);
  
$VirtualMachine = New-AzVMConfig -VMName 123456789 -VMSize $azureVmSize
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $azureNIC.Id -DeleteOption Delete
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -ManagedDiskId $osDisk.Id -StorageAccountType Premium_LRS -Name 123456789 -CreateOption Attach -Windows -DeleteOption Delete -Verbose
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Credential $Credential -ComputerName $ComputerName -Windows -Verbos -ProvisionVMAgent -EnableAutoUpdate

New-AzVM -ResourceGroupName RG -Location $azureLocation -VM $VirtualMachine -Verbose

现在需要在 New-AzVM 中使用 -ComputerName,这似乎也需要凭据。一旦添加这些新的必填字段,我们的脚本就会失败

azure powershell credentials
1个回答
0
投票

我尝试从快照创建磁盘,然后创建一个 VM,并将该 OS 磁盘附加到其上。在创建虚拟机时,我也遇到了同样的错误

enter image description here

这里是更新后的 PowerShell 脚本,用于从快照创建磁盘,然后创建一个 VM,附加该操作系统磁盘

   $storageType = "Premium_LRS"
$location = "East US"
$azureVnetName = "Demosubnet"
$azureVnetSubnetName = "samplesubnet"

$diskConfig = New-AzDiskConfig -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id -OsType Windows

# Step 1: Create OS Disk from Snapshot

$snapshot = Get-AzSnapshot -ResourceGroupName "Sri" -SnapshotName "samplesanp"

$diskConfig = New-AzDiskConfig -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id -OsType Windows

#$diskConfig = New-AzDiskConfig -AccountType $storageType -Location $location -CreateOption Copy -SourceResourceId $snapshot.Id -OsType Windows

New-AzDisk -Disk $diskConfig -ResourceGroupName "Sri" -DiskName "venkat" -Verbose

$osDisk = Get-AzDisk -ResourceGroupName "Sri" -DiskName "venkat" 

# Step 2: Create Network Interface and Virtual Network

$azureVnetSubnet = (Get-AzVirtualNetwork -Name $azureVnetName -ResourceGroupName Sri).Subnets | Where-Object {$_.Name -eq $azureVnetSubnetName}

$azureNIC = New-AzNetworkInterface -Name "venkat1" -ResourceGroupName "Sri" -Location $location -SubnetId $azureVnetSubnet.Id -Force

# Step 3: Set VM Credentials
$VMLocalAdminUser = "Venkat"
$VMLocalAdminSecurePassword = ConvertTo-SecureString "Welcome@123$" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ($VMLocalAdminUser, $VMLocalAdminSecurePassword)
$VMName ="venkat"   # Updated the VM name to match the disk name
$azureVmOsDiskName = "venkat"
$azureVmSize = "Standard_F4s_v2"

$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $azureVmSize -SecurityType TrustedLaunch
$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $azureNIC.Id

$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -ManagedDiskId $osDisk.Id -StorageAccountType "Premium_LRS" -Name $VMName -CreateOption Attach -Windows -DeleteOption Delete -Verbose
New-AzVM -ResourceGroupName "Sri" -Location "EastUS" -VM $VirtualMachine -Verbose

输出:

运行上述代码后

VM
已成功创建。

enter image description here

参考:使用另一个资源组中的现有子网创建新虚拟机

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