Set-AzVMOSDisk

Imposta le proprietà del disco del sistema operativo sulla macchina virtuale.

Sintassi

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>]

Descrizione

Il cmdlet Set-AzVMOSDisk imposta le proprietà del disco del sistema operativo in una macchina virtuale.

Esempio

Esempio 1: Impostare le proprietà in una macchina virtuale dall'immagine della piattaforma

$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"

Il primo comando ottiene il set di disponibilità denominato AvailabilitySet13 nel gruppo di risorse denominato ResourceGroup11 e quindi archivia tale oggetto nella variabile $AvailabilitySet. Il secondo comando crea un oggetto macchina virtuale e quindi lo archivia nella variabile $VirtualMachine. Il comando assegna un nome e una dimensione alla macchina virtuale. La macchina virtuale appartiene al set di disponibilità archiviato in $AvailabilitySet. Il comando finale imposta le proprietà nella macchina virtuale in $VirtualMachine.

Esempio 2: Imposta le proprietà in una macchina virtuale da un'immagine utente generalizzata

$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"

Il primo comando ottiene il set di disponibilità denominato AvailabilitySet13 nel gruppo di risorse denominato ResourceGroup11 e archivia tale oggetto nella variabile $AvailabilitySet. Il secondo comando crea un oggetto macchina virtuale e lo archivia nella variabile $VirtualMachine. Il comando assegna un nome e una dimensione alla macchina virtuale. La macchina virtuale appartiene al set di disponibilità archiviato in $AvailabilitySet. Il comando finale imposta le proprietà nella macchina virtuale in $VirtualMachine.

Esempio 3: Imposta le proprietà in una macchina virtuale da un'immagine utente specializzata

$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"

Il primo comando ottiene il set di disponibilità denominato AvailabilitySet13 nel gruppo di risorse denominato ResourceGroup11 e archivia tale oggetto nella variabile $AvailabilitySet. Il secondo comando crea un oggetto macchina virtuale e lo archivia nella variabile $VirtualMachine. Il comando assegna un nome e una dimensione alla macchina virtuale. La macchina virtuale appartiene al set di disponibilità archiviato in $AvailabilitySet. Il comando finale imposta le proprietà nella macchina virtuale in $VirtualMachine.

Esempio 4: Impostare le impostazioni di crittografia del disco in un disco del sistema operativo della macchina virtuale

$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"

In questo esempio vengono impostate le impostazioni di crittografia del disco in un disco del sistema operativo della macchina virtuale.

Esempio 5: Creare una macchina virtuale ConfidentialVM con crittografia del disco del sistema operativo della macchina virtuale DiskWithVMGuestState e crittografia del set di crittografia dischi di ConfidentialVmEncryptedWithCustomerKey.

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

$vmSize = "Standard_DC2as_v5";        
$identityType = "SystemAssigned";
$secureEncryptGuestState = "DiskWithVMGuestState";
$vmSecurityType = "ConfidentialVM";
$securePassword = "Password" | ConvertTo-SecureString -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 'bf7b6499-ff71-4aa2-97a4-f372087be7f0';
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';

Parametri

-Caching

Specifica la modalità di memorizzazione nella cache del disco del sistema operativo. I valori validi sono:

  • ReadOnly
  • ReadWrite Il valore predefinito è ReadWrite. La modifica del valore di memorizzazione nella cache determina il riavvio della macchina virtuale. Questa impostazione influisce sulle prestazioni del disco.
Type:Nullable<T>[CachingTypes]
Accepted values:None, ReadOnly, ReadWrite
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CreateOption

Specifica se questo cmdlet crea un disco nella macchina virtuale da una piattaforma o un'immagine utente o collega un disco esistente. I valori validi sono:

  • Allegare. Specificare questa opzione per creare una macchina virtuale da un disco specializzato. Quando si specifica questa opzione, non specificare il parametro SourceImageUri . Usare invece il cmdlet Set-AzVMSourceImage. È anche necessario usare i parametri Windows o Linux per indicare alla piattaforma Azure il tipo di sistema operativo nel disco rigido virtuale. Il parametro VhdUri è sufficiente per indicare alla piattaforma Azure la posizione del disco da collegare.
  • FromImage. Specificare questa opzione per creare una macchina virtuale da un'immagine della piattaforma o da un'immagine utente generalizzata. Nel caso di un'immagine utente generalizzata, è anche necessario specificare il parametro SourceImageUri e i parametri Windows o Linux per indicare alla piattaforma Azure il percorso e il tipo di disco rigido virtuale del disco del sistema operativo anziché usare il cmdlet Set-AzVMSourceImage . Nel caso di un'immagine della piattaforma, il parametro VhdUri è sufficiente.
  • Vuoto.
Type:String
Position:5
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DefaultProfile

Credenziali, account, tenant e sottoscrizione usati per la comunicazione con Azure.

Type:IAzureContextContainer
Aliases:AzContext, AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DeleteOption

Specifica l'opzione di eliminazione del disco del sistema operativo dopo l'eliminazione della macchina virtuale. Le opzioni sono Detach, Delete

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DiffDiskPlacement

Specifica il posizionamento temporaneo del disco per il disco del sistema operativo. Questa proprietà può essere usata dall'utente nella richiesta per scegliere il percorso, ad esempio il disco della cache o lo spazio su disco della risorsa per il provisioning di dischi temporanei del sistema operativo. Per altre informazioni sui requisiti delle dimensioni del disco del sistema operativo temporaneo, vedere Requisiti delle dimensioni del disco del sistema operativo temporaneo per la macchina virtuale Windows in e vm Linux all'indirizzo https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirementshttps://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. Questo parametro può essere usato solo se il parametro DiffDiskSetting è impostato su 'Local'.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DiffDiskSetting

Specifica le diverse impostazioni del disco per il disco del sistema operativo.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-DiskEncryptionKeyUrl

Specifica il percorso della chiave di crittografia del disco.

Type:String
Position:7
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DiskEncryptionKeyVaultId

Specifica l'ID risorsa dell'insieme di credenziali delle chiavi contenente la chiave di crittografia del disco.

Type:String
Position:8
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DiskEncryptionSetId

Specifica l'ID risorsa del set di crittografia del disco gestito dal cliente. Questa opzione può essere specificata solo per il disco gestito.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DiskSizeInGB

Specifica le dimensioni, in GB, del disco del sistema operativo.

Type:Nullable<T>[Int32]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-KeyEncryptionKeyUrl

Specifica il percorso della chiave di crittografia della chiave.

Type:String
Position:9
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-KeyEncryptionKeyVaultId

Specifica l'ID risorsa dell'insieme di credenziali delle chiavi contenente la chiave di crittografia della chiave.

Type:String
Position:10
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Linux

Indica che il sistema operativo nell'immagine utente è Linux. Specificare questo parametro per la distribuzione di macchine virtuali basate su immagini utente.

Type:SwitchParameter
Position:6
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ManagedDiskId

Specifica l'ID di un disco gestito.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Specifica il nome del disco del sistema operativo.

Type:String
Aliases:OSDiskName, DiskName
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SecureVMDiskEncryptionSet

ID risorsa ARM per il set di crittografia dischi. Consente al cliente di fornire l'ID ARM per il set di crittografia dischi creato con il tipo di crittografia ConfidentialVmEncryptedWithCustomerKey. Ciò consentirà al cliente di usare la crittografia della chiave gestita dal cliente con una macchina virtuale riservata. Il valore del parametro SecurityEncryptionType deve essere DiskwithVMGuestState.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SecurityEncryptionType

Imposta il valore SecurityEncryptionType nel disco gestito della macchina virtuale. i valori possibili includono: TrustedLaunch, ConfidentialVM_DiskEncryptedWithCustomerKey, ConfidentialVM_VMGuestStateOnlyEncryptedWithPlatformKey, ConfidentialVM_DiskEncryptedWithPlatformKey

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-SourceImageUri

Specifica l'URI del disco rigido virtuale per gli scenari di immagine utente.

Type:String
Aliases:SourceImage
Position:4
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StorageAccountType

Specifica il tipo di account di archiviazione del disco gestito.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VhdUri

Specifica l'URI (Uniform Resource Identifier) di un disco rigido virtuale. Per una macchina virtuale basata su immagini, questo parametro specifica il file VHD da creare quando viene specificata un'immagine della piattaforma o un'immagine utente. Si tratta del percorso da cui viene copiato l'oggetto BLOB (Binary Large Object) dell'immagine per avviare la macchina virtuale. Per uno scenario di avvio della macchina virtuale basata su disco, questo parametro specifica il file VHD usato dalla macchina virtuale direttamente per l'avvio.

Type:String
Aliases:OSDiskVhdUri, DiskVhdUri
Position:2
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VM

Specifica l'oggetto macchina virtuale locale in cui impostare le proprietà del disco del sistema operativo. Per ottenere un oggetto macchina virtuale, usare il cmdlet Get-AzVM.

Type:PSVirtualMachine
Aliases:VMProfile
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Windows

Indica che il sistema operativo nell'immagine utente è Windows.

Type:SwitchParameter
Position:6
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WriteAccelerator

Specifica se WriteAccelerator deve essere abilitato o disabilitato nel disco del sistema operativo.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

PSVirtualMachine

String

Output

PSVirtualMachine