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 |