Partilhar via


Set-AzVMOSDisk

Define as propriedades de disco do sistema operativo para uma máquina virtual.

Sintaxe

Set-AzVMOSDisk
   [-VM] <PSVirtualMachine>
   [[-Name] <String>]
   [[-VhdUri] <String>]
   [[-Caching] <CachingTypes>]
   [[-SourceImageUri] <String>]
   [[-CreateOption] <String>]
   [-DiskSizeInGB <Int32>]
   [-ManagedDiskId <String>]
   [-StorageAccountType <String>]
   [-DiskEncryptionSetId <String>]
   [-WriteAccelerator]
   [-DiffDiskSetting <String>]
   [-DiffDiskPlacement <String>]
   [-DeleteOption <String>]
   [-SecurityEncryptionType <String>]
   [-SecureVMDiskEncryptionSet <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzVMOSDisk
   [-VM] <PSVirtualMachine>
   [[-Name] <String>]
   [[-VhdUri] <String>]
   [[-Caching] <CachingTypes>]
   [[-SourceImageUri] <String>]
   [[-CreateOption] <String>]
   [-Windows]
   [-DiskSizeInGB <Int32>]
   [-ManagedDiskId <String>]
   [-StorageAccountType <String>]
   [-DiskEncryptionSetId <String>]
   [-WriteAccelerator]
   [-DiffDiskSetting <String>]
   [-DiffDiskPlacement <String>]
   [-DeleteOption <String>]
   [-SecurityEncryptionType <String>]
   [-SecureVMDiskEncryptionSet <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzVMOSDisk
   [-VM] <PSVirtualMachine>
   [[-Name] <String>]
   [[-VhdUri] <String>]
   [[-Caching] <CachingTypes>]
   [[-SourceImageUri] <String>]
   [[-CreateOption] <String>]
   [-Windows]
   [-DiskEncryptionKeyUrl] <String>
   [-DiskEncryptionKeyVaultId] <String>
   [[-KeyEncryptionKeyUrl] <String>]
   [[-KeyEncryptionKeyVaultId] <String>]
   [-DiskSizeInGB <Int32>]
   [-ManagedDiskId <String>]
   [-StorageAccountType <String>]
   [-DiskEncryptionSetId <String>]
   [-WriteAccelerator]
   [-DiffDiskSetting <String>]
   [-DiffDiskPlacement <String>]
   [-DeleteOption <String>]
   [-SecurityEncryptionType <String>]
   [-SecureVMDiskEncryptionSet <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzVMOSDisk
   [-VM] <PSVirtualMachine>
   [[-Name] <String>]
   [[-VhdUri] <String>]
   [[-Caching] <CachingTypes>]
   [[-SourceImageUri] <String>]
   [[-CreateOption] <String>]
   [-Linux]
   [-DiskSizeInGB <Int32>]
   [-ManagedDiskId <String>]
   [-StorageAccountType <String>]
   [-DiskEncryptionSetId <String>]
   [-WriteAccelerator]
   [-DiffDiskSetting <String>]
   [-DiffDiskPlacement <String>]
   [-DeleteOption <String>]
   [-SecurityEncryptionType <String>]
   [-SecureVMDiskEncryptionSet <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzVMOSDisk
   [-VM] <PSVirtualMachine>
   [[-Name] <String>]
   [[-VhdUri] <String>]
   [[-Caching] <CachingTypes>]
   [[-SourceImageUri] <String>]
   [[-CreateOption] <String>]
   [-Linux]
   [-DiskEncryptionKeyUrl] <String>
   [-DiskEncryptionKeyVaultId] <String>
   [[-KeyEncryptionKeyUrl] <String>]
   [[-KeyEncryptionKeyVaultId] <String>]
   [-DiskSizeInGB <Int32>]
   [-ManagedDiskId <String>]
   [-StorageAccountType <String>]
   [-DiskEncryptionSetId <String>]
   [-WriteAccelerator]
   [-DiffDiskSetting <String>]
   [-DiffDiskPlacement <String>]
   [-DeleteOption <String>]
   [-SecurityEncryptionType <String>]
   [-SecureVMDiskEncryptionSet <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

Description

O cmdlet Set-AzVMOSDisk define as propriedades do disco do sistema operacional em uma máquina virtual.

Exemplos

Exemplo 1: Definir propriedades em uma máquina virtual a partir da imagem da plataforma

$AvailabilitySet = Get-AzAvailabilitySet -ResourceGroupName "ResourceGroup11" -Name "AvailabilitySet13" 
$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine17" -VMSize "Standard_A1" -AvailabilitySetID $AvailabilitySet.Id 
Set-AzVMOSDisk -VM $VirtualMachine -Name "OsDisk12" -VhdUri "os.vhd" -Caching ReadWrite
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName "MainComputer" -Credential (Get-Credential) 
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName "Canonical" -Offer "UbuntuServer" -Skus "15.10" -Version "latest"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name "osDisk.vhd" -VhdUri "https://mystorageaccount.blob.core.windows.net/disks/" -CreateOption FromImage
New-AzVM -VM $VirtualMachine -ResourceGroupName "ResourceGroup11"

O primeiro comando obtém o conjunto de disponibilidade chamado AvailabilitySet13 no grupo de recursos chamado ResourceGroup11 e, em seguida, armazena esse objeto na variável $AvailabilitySet. O segundo comando cria um objeto de máquina virtual e, em seguida, armazena-o na variável $VirtualMachine. O comando atribui um nome e um tamanho à máquina virtual. A máquina virtual pertence ao conjunto de disponibilidade armazenado no $AvailabilitySet. O comando final define as propriedades na máquina virtual em $VirtualMachine.

Exemplo 2: Define propriedades em uma máquina virtual a partir da imagem de usuário generalizada

$AvailabilitySet = Get-AzAvailabilitySet -ResourceGroupName "ResourceGroup11" -Name "AvailabilitySet13" 
$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine17" -VMSize "Standard_A1"
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName "MainComputer" -Credential (Get-Credential)
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name "osDisk.vhd" -SourceImageUri "https://mystorageaccount.blob.core.windows.net/vhds/myOSImage.vhd" -VhdUri "https://mystorageaccount.blob.core.windows.net/disks/" -CreateOption fromImage -Linux
New-AzVM -VM $VirtualMachine -ResourceGroupName "ResourceGroup11"

O primeiro comando obtém o conjunto de disponibilidade chamado AvailabilitySet13 no grupo de recursos chamado ResourceGroup11 e armazena esse objeto na variável $AvailabilitySet. O segundo comando cria um objeto de máquina virtual e o armazena na variável $VirtualMachine. O comando atribui um nome e um tamanho à máquina virtual. A máquina virtual pertence ao conjunto de disponibilidade armazenado no $AvailabilitySet. O comando final define as propriedades na máquina virtual em $VirtualMachine.

Exemplo 3: Define propriedades em uma máquina virtual a partir de uma imagem de usuário especializada

$AvailabilitySet = Get-AzAvailabilitySet -ResourceGroupName "ResourceGroup11" -Name "AvailabilitySet13" 
$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine17" -VMSize "Standard_A1"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name "osDisk.vhd" -VhdUri "https://mystorageaccount.blob.core.windows.net/disks/" -CreateOption Attach -Linux
New-AzVM -VM $VirtualMachine -ResourceGroupName "ResourceGroup11"

O primeiro comando obtém o conjunto de disponibilidade chamado AvailabilitySet13 no grupo de recursos chamado ResourceGroup11 e armazena esse objeto na variável $AvailabilitySet. O segundo comando cria um objeto de máquina virtual e o armazena na variável $VirtualMachine. O comando atribui um nome e um tamanho à máquina virtual. A máquina virtual pertence ao conjunto de disponibilidade armazenado no $AvailabilitySet. O comando final define as propriedades na máquina virtual em $VirtualMachine.

Exemplo 4: Definir as configurações de criptografia de disco em um disco do sistema operacional de máquina virtual

$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine17" -VMSize "Standard_A1"
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -Name "OsDisk12" -VhdUri "os.vhd" -Caching ReadWrite -Windows -CreateOption "Attach" -DiskEncryptionKeyUrl "https://mytestvault.vault.azure.net/secrets/Test1/514ceb769c984379a7e0230bddaaaaaa" -DiskEncryptionKeyVaultId "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mytestvault"
New-AzVM -VM $VirtualMachine -ResourceGroupName " ResourceGroup11"

Este exemplo define as configurações de criptografia de disco em um disco do sistema operacional da máquina virtual.

Exemplo 5: Criar uma máquina virtual ConfidentialVM com VM OS Criptografia de disco de DiskWithVMGuestState e Conjunto de criptografia de disco de ConfidentialVmEncryptedWithCustomerKey.

# Create Resource Group
$Location = 'northeurope';
New-AzResourceGroup -Name $ResourceGroupName -Location $Location;

$vmSize = "Standard_DC2as_v5";        
$identityType = "SystemAssigned";
$secureEncryptGuestState = "DiskWithVMGuestState";
$vmSecurityType = "ConfidentialVM";
$securePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force; 
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);

# Create Key Vault
New-AzKeyVault -Name $keyVaultName -Location $Location -ResourceGroupName $ResourceGroupName -Sku Premium -EnablePurgeProtection -EnabledForDiskEncryption;

$cvmAgent = Get-AzADServicePrincipal -ApplicationId '00001111-aaaa-2222-bbbb-3333cccc4444';
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ResourceGroupName $ResourceGroupName -ObjectId $cvmAgent.id -PermissionsToKeys get,release;

# Add Key vault Key
$KeyName = "keyname";
$KeySize = 3072;

Add-AzKeyVaultKey -VaultName $kvname -Name $KeyName -Size $KeySize -KeyOps wrapKey,unwrapKey -KeyType RSA -Destination HSM -Exportable -UseDefaultCVMPolicy;
        
# Capture Key Vault and Key details
$encryptionKeyVaultId = (Get-AzKeyVault -VaultName $keyVaultName -ResourceGroupName $ResourceGroupName).ResourceId;
$encryptionKeyURL = (Get-AzKeyVaultKey -VaultName $keyVaultName -KeyName $keyName).Key.Kid;

# Create new DES Config and Disk Encryption Set
$diskEncryptionType = "ConfidentialVmEncryptedWithCustomerKey";
$desConfig = New-AzDiskEncryptionSetConfig -Location $loc -SourceVaultId $encryptionKeyVaultId -KeyUrl $encryptionKeyURL -IdentityType SystemAssigned -EncryptionType $diskEncryptionType;
New-AzDiskEncryptionSet -ResourceGroupName $ResourceGroupName -Name $desName -DiskEncryptionSet $desConfig;
        
$diskencset = Get-AzDiskEncryptionSet -ResourceGroupName $rgname -Name $desName;
        
# Assign DES Access Policy to key vault
$desIdentity = (Get-AzDiskEncryptionSet -Name $desName -ResourceGroupName $ResourceGroupName).Identity.PrincipalId;
        
Set-AzKeyVaultAccessPolicy -VaultName $keyVaultName -ResourceGroupName $ResourceGroupName -ObjectId $desIdentity -PermissionsToKeys wrapKey,unwrapKey,get -BypassObjectIdValidation;
        
$VirtualMachine = New-AzVMConfig -VMName $VMName -VMSize $vmSize;
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $computerName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate;
$VirtualMachine = Set-AzVMSourceImage -VM $VirtualMachine -PublisherName 'MicrosoftWindowsServer' -Offer 'windowsserver' -Skus '2022-datacenter-smalldisk-g2' -Version "latest";
        
$subnet = New-AzVirtualNetworkSubnetConfig -Name ($subnetPrefix + $ResourceGroupName) -AddressPrefix "10.0.0.0/24";
$vnet = New-AzVirtualNetwork -Force -Name ($vnetPrefix + $ResourceGroupName) -ResourceGroupName $ResourceGroupName -Location $loc -AddressPrefix "10.0.0.0/16" -Subnet $subnet;
$vnet = Get-AzVirtualNetwork -Name ($vnetPrefix + $ResourceGroupName) -ResourceGroupName $ResourceGroupName;
$subnetId = $vnet.Subnets[0].Id;
$pubip = New-AzPublicIpAddress -Force -Name ($pubIpPrefix + $ResourceGroupName) -ResourceGroupName $ResourceGroupName -Location $loc -AllocationMethod Dynamic -DomainNameLabel $domainNameLabel2;
$pubip = Get-AzPublicIpAddress -Name ($pubIpPrefix + $ResourceGroupName) -ResourceGroupName $ResourceGroupName;
$pubipId = $pubip.Id;
$nic = New-AzNetworkInterface -Force -Name ($nicPrefix + $ResourceGroupName) -ResourceGroupName $ResourceGroupName -Location $loc -SubnetId $subnetId -PublicIpAddressId $pubip.Id;
$nic = Get-AzNetworkInterface -Name ($nicPrefix + $ResourceGroupName) -ResourceGroupName $ResourceGroupName;
$nicId = $nic.Id;

$VirtualMachine = Add-AzVMNetworkInterface -VM $VirtualMachine -Id $nicId;

# Set VM SecurityType and connect to DES
$VirtualMachine = Set-AzVMOSDisk -VM $VirtualMachine -StorageAccountType "StandardSSD_LRS" -CreateOption "FromImage" -SecurityEncryptionType $secureEncryptGuestState -SecureVMDiskEncryptionSet $diskencset.Id;
$VirtualMachine = Set-AzVmSecurityProfile -VM $VirtualMachine -SecurityType $vmSecurityType;
$VirtualMachine = Set-AzVmUefi -VM $VirtualMachine -EnableVtpm $true -EnableSecureBoot $true;

New-AzVM -ResourceGroupName $ResourceGroupName -Location $loc -Vm $VirtualMachine;
$vm = Get-AzVm -ResourceGroupName $ResourceGroupName -Name $vmname;

# Verify the SecurityEncryptionType value on the disk.
# $vm.StorageProfile.OsDisk.ManagedDisk.SecurityProfile.SecurityEncryptionType == 'DiskWithVMGuestState';

Parâmetros

-Caching

Especifica o modo de cache do disco do sistema operacional. Os valores válidos são:

  • ReadOnly
  • ReadWrite O valor padrão é ReadWrite. Alterar o valor de cache faz com que a máquina virtual seja reiniciada. Essa configuração afeta o desempenho do disco.
Tipo:Nullable<T>[CachingTypes]
Valores aceites:None, ReadOnly, ReadWrite
Position:3
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-CreateOption

Especifica se esse cmdlet cria um disco na máquina virtual a partir de uma plataforma ou imagem de usuário ou anexa um disco existente. Os valores válidos são:

  • Anexar. Especifique esta opção para criar uma máquina virtual a partir de um disco especializado. Ao especificar essa opção, não especifique o parâmetro SourceImageUri . Em vez disso, use o cmdlet Set-AzVMSourceImage. Você também deve usar os parâmetros Windows ou Linux para informar à plataforma azure o tipo do sistema operacional no VHD. O parâmetro VhdUri é suficiente para informar à plataforma azure o local do disco a ser anexado.
  • FromImage. Especifique essa opção para criar uma máquina virtual a partir de uma imagem de plataforma ou de uma imagem de usuário generalizada. No caso de uma imagem de usuário generalizada, você também precisa especificar o parâmetro SourceImageUri e os parâmetros Windows ou Linux para informar à plataforma Azure o local e o tipo de VHD do disco do sistema operacional em vez de usar o cmdlet Set-AzVMSourceImage. No caso de uma imagem de plataforma, o parâmetro VhdUri é suficiente.
  • Vazio.
Tipo:String
Position:5
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DefaultProfile

As credenciais, a conta, o locatário e a assinatura usados para comunicação com o azure.

Tipo:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DeleteOption

Especifica a opção de exclusão de disco do sistema operacional após a exclusão da VM. As opções são Desanexar, Excluir

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-DiffDiskPlacement

Especifica o posicionamento efêmero do disco do sistema operacional. Esta propriedade pode ser usada pelo usuário na solicitação para escolher o local, ou seja, disco de cache ou espaço em disco de recurso para provisionamento de disco do sistema operacional efêmero. Para obter mais informações sobre os requisitos de tamanho de disco do sistema operacional efêmero, consulte Requisitos de tamanho de disco do sistema operacional efêmero para Windows VM em https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements e Linux VM em https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. Este parâmetro só pode ser usado se o parâmetro DiffDiskSetting estiver definido como 'Local'.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-DiffDiskSetting

Especifica as configurações de disco de diferenciação para o disco do sistema operacional.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-DiskEncryptionKeyUrl

Especifica o local da chave de criptografia de disco.

Tipo:String
Position:7
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DiskEncryptionKeyVaultId

Especifica a ID do recurso do Cofre da Chave que contém a chave de criptografia de disco.

Tipo:String
Position:8
Default value:None
Necessário:True
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DiskEncryptionSetId

Especifica a ID do recurso do conjunto de criptografia de disco gerenciado pelo cliente. Isso só pode ser especificado para o disco gerenciado.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-DiskSizeInGB

Especifica o tamanho, em GB, do disco do sistema operacional.

Tipo:Nullable<T>[Int32]
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-KeyEncryptionKeyUrl

Especifica o local da chave de criptografia de chave.

Tipo:String
Position:9
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-KeyEncryptionKeyVaultId

Especifica a ID do recurso do Cofre da Chave que contém a chave de criptografia de chave.

Tipo:String
Position:10
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Linux

Indica que o sistema operacional na imagem do usuário é Linux. Especifique esse parâmetro para a implantação de máquina virtual baseada em imagem do usuário.

Tipo:SwitchParameter
Position:6
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-ManagedDiskId

Especifica a ID de um disco gerenciado.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-Name

Especifica o nome do disco do sistema operacional.

Tipo:String
Aliases:OSDiskName, DiskName
Position:1
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-SecureVMDiskEncryptionSet

ID de recurso ARM para o conjunto de criptografia de disco. Permite que o cliente forneça ID ARM para o conjunto de criptografia de disco criado com o tipo de criptografia ConfidentialVmEncryptedWithCustomerKey. Isso permitirá que o cliente use a criptografia de Chave Gerenciada do Cliente (CMK) com VM Confidencial. O valor SecurityEncryptionType do parâmetro deve ser DiskwithVMGuestState.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-SecurityEncryptionType

Define o valor SecurityEncryptionType no disco gerenciado da VM. os valores possíveis incluem: TrustedLaunch, ConfidentialVM_DiskEncryptedWithCustomerKey, ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey ConfidentialVM_DiskEncryptedWithPlatformKey

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-SourceImageUri

Especifica o URI do VHD para cenários de imagem do usuário.

Tipo:String
Aliases:SourceImage
Position:4
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-StorageAccountType

Especifica o tipo de conta de armazenamento do disco gerenciado.

Tipo:String
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-VhdUri

Especifica o URI (Uniform Resource Identifier) de um disco rígido virtual (VHD). Para uma máquina virtual baseada em imagem, esse parâmetro especifica o arquivo VHD a ser criado quando uma imagem de plataforma ou de usuário é especificada. Este é o local a partir do qual o BLOB (objeto binário grande) da imagem é copiado para iniciar a máquina virtual. Para um cenário de inicialização de máquina virtual baseada em disco, esse parâmetro especifica o arquivo VHD que a máquina virtual usa diretamente para inicialização.

Tipo:String
Aliases:OSDiskVhdUri, DiskVhdUri
Position:2
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-VM

Especifica o objeto de máquina virtual local no qual definir as propriedades do disco do sistema operacional. Para obter um objeto de máquina virtual, use o cmdlet Get-AzVM.

Tipo:PSVirtualMachine
Aliases:VMProfile
Position:0
Default value:None
Necessário:True
Aceitar entrada de pipeline:True
Aceitar carateres universais:False

-Windows

Indica que o sistema operacional na imagem do usuário é Windows.

Tipo:SwitchParameter
Position:6
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

-WriteAccelerator

Especifica se o WriteAccelerator deve ser habilitado ou desabilitado no disco do sistema operacional.

Tipo:SwitchParameter
Position:Named
Default value:None
Necessário:False
Aceitar entrada de pipeline:False
Aceitar carateres universais:False

Entradas

PSVirtualMachine

String

Saídas

PSVirtualMachine