我正在建立VM还原管道。看起来像这样:
我复制OS磁盘
$diskConfig = New-AzureRmDiskConfig -AccountType $storageType `
-Location $snapshot.Location -SourceResourceId $snapshot.Id -CreateOption Copy
$disk = New-AzureRmDisk -Disk $diskConfig -ResourceGroupName $resourceGroupName `
-DiskName $diskName
然后我将其附加到我的VM,就像这样:
$vmConfig = New-AzureRmVMConfig -VMName $virtualMachineName `
-VMSize $virtualMachineSize
$vmConfig = Set-AzureRmVMOSDisk -VM `
$vmConfig -ManagedDiskId $disk.Id -CreateOption Attach -Windows
但是,我还想通过在我遵循this guide by Microsoft时将证书绑定到VM来间接修改VM的OSProfile
属性。我这样做:
$vmConfig = Add-AzureRmVMSecret -VM $vmConfig -SourceVaultId $vaultId `
-CertificateStore $certificateStore -CertificateUrl $certificateUrl
现在,当我尝试通过以下方式完成创建工作
New-AzureRmVM -VM $vmConfig -ResourceGroupName $resourceGroupName -Location $location
我得到一个错误:
New-AzureRmVM : Parameter 'osProfile' is not allowed.
我知道它会修改OSProfile.Secrets
(即-将新记录添加到列表中),但是有一个限制,即我无法编辑它。我还尝试通过先创建VM,然后添加这些Secrets
来完成此操作,但这给了我几乎相同的错误
Update-AzureRmVM : Changing property 'osProfile' is not allowed.
顺便说一句,如果我使用FromImage
而不是Attach
,则会收到错误消息:
New-AzureRmVM : Cannot specify user image overrides for a disk already defined in the specified image reference.
我该如何解决?
答案 0 :(得分:1)
我最终创建了一个Powershell脚本,该脚本在VM上执行powershell命令(使用Invoke-AzureRmVMRunCommand
),
获取证书
Get-AzureKeyVaultSecret -VaultName $keyVaultName -name (Get-AzureKeyVaultSecret -VaultName $keyVaultName).name
创建ssl绑定并将其分配给https绑定
Get-ChildItem cert:\localmachine\My | New-Item -Path IIS:\SslBindings\!443
答案 1 :(得分:0)
非常确定此错误表示您正在尝试使用现有磁盘创建虚拟机。在这种情况下,您无法修改操作系统设置。仅当从新磁盘创建时。