Partager via


Set-AzVMOperatingSystem

Définit les propriétés du système d’exploitation pendant la création d’une machine virtuelle ou la mise à jour d’une machine virtuelle.

Syntaxe

Set-AzVMOperatingSystem
   [-VM] <PSVirtualMachine>
   [-Windows]
   [[-ComputerName] <String>]
   [[-Credential] <PSCredential>]
   [[-CustomData] <String>]
   [-ProvisionVMAgent]
   [-EnableAutoUpdate]
   [[-TimeZone] <String>]
   [-WinRMHttp]
   [-PatchMode <String>]
   [-EnableHotpatching]
   [-AssessmentMode <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzVMOperatingSystem
   [-VM] <PSVirtualMachine>
   [-Windows]
   [[-ComputerName] <String>]
   [[-Credential] <PSCredential>]
   [[-CustomData] <String>]
   [-ProvisionVMAgent]
   [-EnableAutoUpdate]
   [[-TimeZone] <String>]
   [-WinRMHttp]
   [-WinRMHttps]
   [-WinRMCertificateUrl] <Uri>
   [-PatchMode <String>]
   [-EnableHotpatching]
   [-AssessmentMode <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzVMOperatingSystem
   [-VM] <PSVirtualMachine>
   [-Windows]
   [[-ComputerName] <String>]
   [[-Credential] <PSCredential>]
   [[-CustomData] <String>]
   [-DisableVMAgent]
   [-EnableAutoUpdate]
   [[-TimeZone] <String>]
   [-WinRMHttp]
   [-PatchMode <String>]
   [-EnableHotpatching]
   [-AssessmentMode <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzVMOperatingSystem
   [-VM] <PSVirtualMachine>
   [-Windows]
   [[-ComputerName] <String>]
   [[-Credential] <PSCredential>]
   [[-CustomData] <String>]
   [-DisableVMAgent]
   [-EnableAutoUpdate]
   [[-TimeZone] <String>]
   [-WinRMHttp]
   [-WinRMHttps]
   [-WinRMCertificateUrl] <Uri>
   [-PatchMode <String>]
   [-EnableHotpatching]
   [-AssessmentMode <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzVMOperatingSystem
   [-VM] <PSVirtualMachine>
   [-Linux]
   [[-ComputerName] <String>]
   [[-Credential] <PSCredential>]
   [[-CustomData] <String>]
   [-PatchMode <String>]
   [-DisablePasswordAuthentication]
   [-AssessmentMode <String>]
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

Description

L’applet de commande Set-AzVMOperatingSystem définit les propriétés du système d’exploitation lors de la création d’une nouvelle machine virtuelle. Vous pouvez spécifier les informations d’identification d’ouverture de session, le nom de l’ordinateur et le type de système d’exploitation.

Exemples

Exemple 1 : Définir les propriétés du système d’exploitation pour une nouvelle machine virtuelle

$SecurePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ("FullerP", $SecurePassword); 
$AvailabilitySet = Get-AzAvailabilitySet -ResourceGroupName "ResourceGroup11" -Name "AvailabilitySet03" 
$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine07" -VMSize "Standard_A1" -AvailabilitySetID $AvailabilitySet.Id
$ComputerName = "ContosoVM122"
$WinRMCertUrl = "http://keyVaultName.vault.azure.net/secrets/secretName/secretVersion"
$TimeZone = "Pacific Standard Time"
$CustomData = "echo 'Hello World'"
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -CustomData $CustomData -WinRMHttp -WinRMHttps -WinRMCertificateUrl $WinRMCertUrl -ProvisionVMAgent -EnableAutoUpdate -TimeZone $TimeZone -PatchMode "AutomaticByPlatform"

La première commande convertit un mot de passe en chaîne sécurisée, puis la stocke dans la variable $SecurePassword. Pour plus d'informations, voir Get-Help ConvertTo-SecureString. La deuxième commande crée des informations d’identification pour l’utilisateur FullerP et le mot de passe stockés dans $SecurePassword, puis stocke les informations d’identification dans la variable $Credential. Pour plus d'informations, voir Get-Help New-Object. La troisième commande obtient le groupe à haute disponibilité nommé AvailabilitySet03 dans le groupe de ressources nommé ResourceGroup11, puis stocke cet objet dans la variable $AvailabilitySet. La quatrième commande crée un objet de machine virtuelle, puis la stocke dans la variable $VirtualMachine. La commande attribue un nom et une taille à la machine virtuelle. La machine virtuelle appartient au groupe à haute disponibilité stocké dans $AvailabilitySet. Les quatre commandes suivantes attribuent des valeurs aux variables à utiliser dans la commande suivante. Étant donné que vous pouvez spécifier ces chaînes directement dans la commande Set-AzVMOperatingSystem , cette approche est utilisée uniquement pour la lisibilité. Toutefois, vous pouvez utiliser une approche telle que celle-ci dans les scripts. La commande finale définit les propriétés du système d’exploitation de la machine virtuelle stockée dans $VirtualMachine. La commande utilise les informations d’identification stockées dans $Credential. La commande utilise des variables affectées dans les commandes précédentes pour certains paramètres.

Exemple 2 : Définir les propriétés du système d’exploitation pour une nouvelle machine virtuelle avec mise à jour corrective à chaud activée

$SecurePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ("FullerP", $SecurePassword); 
$AvailabilitySet = Get-AzAvailabilitySet -ResourceGroupName "ResourceGroup11" -Name "AvailabilitySet03" 
$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine07" -VMSize "Standard_A1" -AvailabilitySetID $AvailabilitySet.Id
$ComputerName = "ContosoVM122"
$WinRMCertUrl = "http://keyVaultName.vault.azure.net/secrets/secretName/secretVersion"
$TimeZone = "Pacific Standard Time"
$CustomData = "echo 'Hello World'"
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Windows -ComputerName $ComputerName -Credential $Credential -CustomData $CustomData -WinRMHttp -WinRMHttps -WinRMCertificateUrl $WinRMCertUrl -ProvisionVMAgent -EnableAutoUpdate -TimeZone $TimeZone -PatchMode "AutomaticByPlatform" -EnableHotPatching

La première commande convertit un mot de passe en chaîne sécurisée, puis la stocke dans la variable $SecurePassword. Pour plus d'informations, voir Get-Help ConvertTo-SecureString. La deuxième commande crée des informations d’identification pour l’utilisateur FullerP et le mot de passe stockés dans $SecurePassword, puis stocke les informations d’identification dans la variable $Credential. Pour plus d'informations, voir Get-Help New-Object. La troisième commande obtient le groupe à haute disponibilité nommé AvailabilitySet03 dans le groupe de ressources nommé ResourceGroup11, puis stocke cet objet dans la variable $AvailabilitySet. La quatrième commande crée un objet de machine virtuelle, puis la stocke dans la variable $VirtualMachine. La commande attribue un nom et une taille à la machine virtuelle. La machine virtuelle appartient au groupe à haute disponibilité stocké dans $AvailabilitySet. Les quatre commandes suivantes attribuent des valeurs aux variables à utiliser dans la commande suivante. Étant donné que vous pouvez spécifier ces chaînes directement dans la commande Set-AzVMOperatingSystem , cette approche est utilisée uniquement pour la lisibilité. Toutefois, vous pouvez utiliser une approche telle que celle-ci dans les scripts. La commande finale définit les propriétés du système d’exploitation de la machine virtuelle stockée dans $VirtualMachine. La commande utilise les informations d’identification stockées dans $Credential. La commande utilise des variables affectées dans les commandes précédentes pour certains paramètres. La commande active hotpatching sur la machine virtuelle.

Exemple 3 : Définir les propriétés du système d’exploitation pour une nouvelle machine virtuelle Linux

$SecurePassword = ConvertTo-SecureString -String "****" -AsPlainText -Force
$Credential = New-Object System.Management.Automation.PSCredential ("FullerP", $SecurePassword); 
$AvailabilitySet = Get-AzAvailabilitySet -ResourceGroupName "ResourceGroup11" -Name "AvailabilitySet03" 
$VirtualMachine = New-AzVMConfig -VMName "VirtualMachine07" -VMSize "Standard_A1" -AvailabilitySetID $AvailabilitySet.Id
$ComputerName = "ContosoVM122"
$CustomData = "echo 'Hello World'"
$VirtualMachine = Set-AzVMOperatingSystem -VM $VirtualMachine -Linux -ComputerName $ComputerName -Credential $Credential -CustomData $CustomData -PatchMode "AutomaticByPlatform"

La première commande convertit un mot de passe en chaîne sécurisée, puis la stocke dans la variable $SecurePassword. Pour plus d'informations, voir Get-Help ConvertTo-SecureString. La deuxième commande crée des informations d’identification pour l’utilisateur FullerP et le mot de passe stockés dans $SecurePassword, puis stocke les informations d’identification dans la variable $Credential. Pour plus d'informations, voir Get-Help New-Object. La troisième commande obtient le groupe à haute disponibilité nommé AvailabilitySet03 dans le groupe de ressources nommé ResourceGroup11, puis stocke cet objet dans la variable $AvailabilitySet. La quatrième commande crée un objet de machine virtuelle, puis la stocke dans la variable $VirtualMachine. La commande attribue un nom et une taille à la machine virtuelle. La machine virtuelle appartient au groupe à haute disponibilité stocké dans $AvailabilitySet. Les deux commandes suivantes attribuent des valeurs aux variables à utiliser dans la commande suivante. La commande finale définit les propriétés du système d’exploitation de la machine virtuelle stockée dans $VirtualMachine. La commande utilise les informations d’identification stockées dans $Credential. La commande utilise des variables affectées dans les commandes précédentes pour certains paramètres. La commande définit la valeur du mode correctif sur la machine virtuelle sur « AutomaticByPlatform ».

Exemple 4 : Définissez les propriétés du système d’exploitation avec un paramètre Credential lorsque la machine virtuelle n’a pas de fichier OSProfile.

$rgname = <Resource Group Name>;
$loc = <Azure Region>;
New-AzResourceGroup -Name $rgname -Location $loc -Force;
# create credential
$password = <Password>;
$securePassword = $password | ConvertTo-SecureString -AsPlainText -Force;
$user = <Username>;
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);

# Setup parameters
$domainNameLabel = "d2" + $rgname;
$vmsize = 'Standard_D4s_v3';
$vmname = 'v' + $rgname;
$vnetname = "vn" + $rgname;
$vnetAddress = "10.0.0.0/16";
$subnetname = "slb" + $rgname;
$subnetAddress = "10.0.2.0/24";
$OSDiskName = $vmname + "d";
$NICName = $vmname+ "n";
$NSGName = $vmname + "nsg";

# Creating a VM using Default parameterset
$frontendSubnet = New-AzVirtualNetworkSubnetConfig -Name $subnetname -AddressPrefix $subnetAddress;

$vnet = New-AzVirtualNetwork -Name $vnetname -ResourceGroupName $rgname -Location $loc -AddressPrefix $vnetAddress -Subnet $frontendSubnet;

$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name RDP  -Protocol Tcp  -Direction Inbound -Priority 1001 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * -DestinationPortRange 3389 -Access Allow;
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $rgname -Location $loc -Name $NSGName  -SecurityRules $nsgRuleRDP;
$nic = New-AzNetworkInterface -Name $NICName -ResourceGroupName $rgname -Location $loc -SubnetId $vnet.Subnets[0].Id -NetworkSecurityGroupId $nsg.Id -EnableAcceleratedNetworking;

$vmConfig = New-AzVMConfig -VMName $vmname -VMSize $vmsize;
$vmConfig = Set-AzVMOperatingSystem -VM $vmConfig -Windows -ComputerName $vmname -Credential $cred;
$vmConfig = Add-AzVMNetworkInterface -VM $vmConfig -Id $nic.Id;

# Verify a VM is created. 
New-AzVM -ResourceGroupName $rgname -Location $loc -VM $vmConfig;
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname;

Paramètres

-AssessmentMode

Valeur du mode d’évaluation automatique pour la machine virtuelle. Les valeurs possibles sont ImageDefault et AutomaticByPlatform.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-ComputerName

Spécifie le nom de l'ordinateur.

Type:String
Position:2
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Credential

Spécifie le nom d’utilisateur et le mot de passe de la machine virtuelle en tant qu’objet PSCredential . Pour obtenir des informations d’identification, utilisez l’applet de commande Get-Credential. Pour plus d'informations, voir Get-Help Get-Credential.

Type:PSCredential
Position:3
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-CustomData

Spécifie une chaîne à passer à la machine virtuelle. Pour plus d’informations, consultez Données personnalisées sur des machines virtuelles Azure. Remarque : il n’est pas recommandé de stocker des informations sensibles dans des données personnalisées.

Type:String
Position:4
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-DefaultProfile

Informations d’identification, compte, locataire et abonnement utilisés pour la communication avec Azure.

Type:IAzureContextContainer
Alias:AzContext, AzureRmContext, AzureCredential
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-DisablePasswordAuthentication

Indique que cette applet de commande désactive l’authentification par mot de passe.

Type:SwitchParameter
Position:5
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-DisableVMAgent

Désactivez l’agent de machine virtuelle de provisionnement.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-EnableAutoUpdate

Indique que cette applet de commande active la mise à jour automatique.

Type:SwitchParameter
Position:6
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-EnableHotpatching

Permet aux clients de corriger leurs machines virtuelles Azure sans nécessiter de redémarrage. Pour enableHotpatching, le paramètre « provisionVMAgent » doit être défini sur true et « patchMode » doit être défini sur « AutomaticByPlatform ».

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Linux

Indique que le type de système d’exploitation est Linux.

Type:SwitchParameter
Position:1
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-PatchMode

Spécifie le mode de mise à jour corrective dans l’invité sur une machine virtuelle IaaS.

Les valeurs possibles sont les suivantes :
AutomaticByPlatform - L’installation de correctifs pour la machine virtuelle sera gérée par Azure. Utilisez -Windows ou -Linux. Nécessite -ProvisionVMAgent. Nécessite -EnableAutoUpdate lorsqu’il est utilisé avec -Windows.
AutomaticByOS - L’installation des correctifs pour la machine virtuelle sera gérée par le système d’exploitation. Utiliser avec -Windows. Nécessite -ProvisionVMAgent et -EnableAutoUpdate.
Manuel : vous contrôlez l’application de correctifs sur une machine virtuelle. Utiliser avec -Windows. Nécessite -ProvisionVMAgent.
ImageDefault : installation corrective gérée par les paramètres par défaut sur l’image du système d’exploitation. Utiliser avec -Linux.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-ProvisionVMAgent

Indique que les paramètres nécessitent l’installation de l’agent de machine virtuelle sur la machine virtuelle.

Type:SwitchParameter
Position:5
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-TimeZone

Spécifie le fuseau horaire de la machine virtuelle. par exemple « Heure standard du Pacifique ».
Les valeurs possibles peuvent être TimeZoneInfo.Id valeur des fuseaux horaires retournés par TimeZoneInfo.GetSystemTimeZones.

Type:String
Position:7
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-VM

Spécifie l’objet de machine virtuelle locale sur lequel définir les propriétés du système d’exploitation. Pour obtenir un objet de machine virtuelle, utilisez l’applet de commande Get-AzVM. Créez un objet de machine virtuelle à l’aide de l’applet de commande New-AzVMConfig.

Type:PSVirtualMachine
Alias:VMProfile
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Windows

Indique que le type de système d’exploitation est Windows.

Type:SwitchParameter
Position:1
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-WinRMCertificateUrl

Spécifie l’URI d’un certificat WinRM. Cela doit être stocké dans un coffre de clés.

Type:Uri
Position:10
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-WinRMHttp

Indique que ce système d’exploitation utilise HTTP WinRM.

Type:SwitchParameter
Position:8
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-WinRMHttps

Indique que ce système d’exploitation utilise HTTPS WinRM.

Type:SwitchParameter
Position:9
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

Entrées

PSVirtualMachine

SwitchParameter

String

PSCredential

Uri

Sorties

PSVirtualMachine