Set-AzVMOSDisk
Nastaví vlastnosti disku s operačním systémem na virtuálním počítači.
Syntax
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
Rutina Set-AzVMOSDisk nastaví vlastnosti disku operačního systému na virtuálním počítači.
Příklady
Příklad 1: Nastavení vlastností virtuálního počítače z image platformy
$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"
První příkaz získá skupinu dostupnosti s názvem AvailabilitySet13 ve skupině prostředků s názvem ResourceGroup11 a pak tento objekt uloží do proměnné $AvailabilitySet. Druhý příkaz vytvoří objekt virtuálního počítače a pak ho uloží do proměnné $VirtualMachine. Příkaz přiřadí virtuálnímu počítači název a velikost. Virtuální počítač patří do skupiny dostupnosti uložené v $AvailabilitySet. Poslední příkaz nastaví vlastnosti virtuálního počítače v $VirtualMachine.
Příklad 2: Nastaví vlastnosti virtuálního počítače z generalizované uživatelské image.
$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"
První příkaz získá skupinu dostupnosti s názvem AvailabilitySet13 ve skupině prostředků s názvem ResourceGroup11 a uloží tento objekt do proměnné $AvailabilitySet. Druhý příkaz vytvoří objekt virtuálního počítače a uloží ho do proměnné $VirtualMachine. Příkaz přiřadí virtuálnímu počítači název a velikost. Virtuální počítač patří do skupiny dostupnosti uložené v $AvailabilitySet. Poslední příkaz nastaví vlastnosti virtuálního počítače v $VirtualMachine.
Příklad 3: Nastaví vlastnosti na virtuálním počítači ze specializované image uživatele.
$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"
První příkaz získá skupinu dostupnosti s názvem AvailabilitySet13 ve skupině prostředků s názvem ResourceGroup11 a uloží tento objekt do proměnné $AvailabilitySet. Druhý příkaz vytvoří objekt virtuálního počítače a uloží ho do proměnné $VirtualMachine. Příkaz přiřadí virtuálnímu počítači název a velikost. Virtuální počítač patří do skupiny dostupnosti uložené v $AvailabilitySet. Poslední příkaz nastaví vlastnosti virtuálního počítače v $VirtualMachine.
Příklad 4: Nastavení šifrování disku na disku s operačním systémem virtuálního počítače
$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"
Tento příklad nastaví nastavení šifrování disku na disku operačního systému virtuálního počítače.
Příklad 5: Vytvoření virtuálního počítače důvěrného virtuálního počítače s šifrováním disku s operačním systémem virtuálního počítače diskem DiskWithVMGuestState a šifrování sady šifrování disku 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';
Parametry
-Caching
Určuje režim ukládání do mezipaměti disku operačního systému. Platné hodnoty jsou:
- Jen pro čtení
- ReadWrite Výchozí hodnota je ReadWrite. Změna hodnoty ukládání do mezipaměti způsobí restartování virtuálního počítače. Toto nastavení má vliv na výkon disku.
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
Určuje, jestli tato rutina vytvoří na virtuálním počítači disk z image platformy nebo uživatele nebo připojí existující disk. Platné hodnoty jsou:
- Připojit. Tuto možnost zadejte, pokud chcete vytvořit virtuální počítač ze specializovaného disku. Při zadání této možnosti nezadávejte parametr SourceImageUri . Místo toho použijte rutinu Set-AzVMSourceImage. Musíte také použít parametry Windows nebo Linux k tomu, abyste platformě Azure řekli typ operačního systému na virtuálním pevného disku. Parametr VhdUri stačí k tomu, aby platformě Azure řekl umístění disku, který se má připojit.
- ZImage. Tuto možnost zadejte, pokud chcete vytvořit virtuální počítač z image platformy nebo generalizované uživatelské image. V případě zobecněné image uživatele musíte také zadat parametr SourceImageUri a parametry Windows nebo Linuxu , které platformě Azure sdělí umístění a typ virtuálního pevného disku operačního systému místo rutiny Set-AzVMSourceImage . V případě image platformy stačí parametr VhdUri .
- Prázdné.
Type: | String |
Position: | 5 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DefaultProfile
Přihlašovací údaje, účet, tenant a předplatné používané ke komunikaci s Azure.
Type: | IAzureContextContainer |
Aliases: | AzContext, AzureRmContext, AzureCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DeleteOption
Určuje možnost odstranění disku s operačním systémem po odstranění virtuálního počítače. Možnosti jsou Odpojení, Odstranění
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DiffDiskPlacement
Určuje dočasné umístění disku pro disk operačního systému. Tuto vlastnost může uživatel v požadavku použít k výběru umístění, tj. místa na disku mezipaměti nebo místa na disku prostředku pro dočasné zřizování disku s operačním systémem. Další informace o požadavcích na dočasné velikosti disku s operačním systémem najdete v dočasných požadavcích na velikost disku s operačním systémem pro virtuální https://learn.microsoft.com/azure/virtual-machines/windows/ephemeral-os-disks#size-requirements počítač s Windows a virtuální počítač s Linuxem na adrese https://learn.microsoft.com/azure/virtual-machines/linux/ephemeral-os-disks#size-requirements. Tento parametr lze použít pouze v případě, že parametr DiffDiskSetting je nastaven na Local.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DiffDiskSetting
Určuje rozdílové nastavení disku pro disk operačního systému.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-DiskEncryptionKeyUrl
Určuje umístění šifrovacího klíče disku.
Type: | String |
Position: | 7 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DiskEncryptionKeyVaultId
Určuje ID prostředku služby Key Vault obsahující šifrovací klíč disku.
Type: | String |
Position: | 8 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DiskEncryptionSetId
Určuje ID prostředku sady šifrování disků spravované zákazníkem. Dá se zadat jenom pro spravovaný disk.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DiskSizeInGB
Určuje velikost disku operačního systému v GB.
Type: | Nullable<T>[Int32] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-KeyEncryptionKeyUrl
Určuje umístění šifrovacího klíče klíče.
Type: | String |
Position: | 9 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-KeyEncryptionKeyVaultId
Určuje ID prostředku služby Key Vault obsahující šifrovací klíč klíče.
Type: | String |
Position: | 10 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Linux
Označuje, že operační systém na uživatelské imagi je Linux. Zadejte tento parametr pro nasazení virtuálního počítače založeného na imagi uživatele.
Type: | SwitchParameter |
Position: | 6 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ManagedDiskId
Určuje ID spravovaného disku.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Určuje název disku operačního systému.
Type: | String |
Aliases: | OSDiskName, DiskName |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SecureVMDiskEncryptionSet
ID prostředku ARM pro sadu šifrování disků Umožňuje zákazníkovi poskytnout ID ARM pro sadu šifrování disků vytvořenou s typem šifrování ConfidentialVmEncryptedWithCustomerKey. To zákazníkovi umožní používat šifrování klíče spravovaného zákazníkem (CMK) s důvěrným virtuálním počítačem. Hodnota SecurityEncryptionType parametru by měla být DiskwithVMGuestState.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SecurityEncryptionType
Nastaví hodnotu SecurityEncryptionType na spravovaném disku virtuálního počítače. možné hodnoty: 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
Určuje identifikátor URI virtuálního pevného disku pro scénáře image uživatele.
Type: | String |
Aliases: | SourceImage |
Position: | 4 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-StorageAccountType
Určuje typ účtu úložiště spravovaného disku.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VhdUri
Určuje identifikátor URI (Uniform Resource Identifier) virtuálního pevného disku (VHD). U virtuálního počítače založeného na imagi určuje tento parametr soubor VHD, který se má vytvořit při zadání image platformy nebo uživatelské image. Toto je umístění, ze kterého se zkopíruje binární velký objekt image (BLOB) pro spuštění virtuálního počítače. Pro scénář spuštění virtuálního počítače založeného na disku určuje tento parametr soubor VHD, který virtuální počítač používá přímo ke spuštění.
Type: | String |
Aliases: | OSDiskVhdUri, DiskVhdUri |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VM
Určuje objekt místního virtuálního počítače, na kterém se mají nastavit vlastnosti disku operačního systému. K získání objektu virtuálního počítače použijte rutinu Get-AzVM.
Type: | PSVirtualMachine |
Aliases: | VMProfile |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Windows
Označuje, že operační systém na uživatelské imagi je Windows.
Type: | SwitchParameter |
Position: | 6 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WriteAccelerator
Určuje, jestli má být na disku s operačním systémem povolený nebo zakázaný WriteAccelerator.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |