Set-AzVMOperatingSystem

Legt die Eigenschaften des Betriebssystems während der Erstellung eines neuen virtuellen Computers fest oder aktualisiert einen virtuellen Computer.

Syntax

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

Beschreibung

Das Cmdlet Set-AzVMOperatingSystem legt die Betriebssystemeigenschaften während der Erstellung eines neuen virtuellen Computers fest. Sie können Anmeldeinformationen, Computername und Betriebssystemtyp angeben.

Beispiele

Beispiel 1: Festlegen von Betriebssystemeigenschaften für einen neuen virtuellen Computer

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

Der erste Befehl konvertiert ein Kennwort in eine sichere Zeichenfolge und speichert es dann in der variablen $SecurePassword. Geben Sie Folgendes ein, um weitere Informationen zu erhalten: Get-Help ConvertTo-SecureString. Der zweite Befehl erstellt eine Anmeldeinformation für den Benutzer FullerP und das kennwort, das in $SecurePassword gespeichert ist, und speichert dann die Anmeldeinformationen in der variablen $Credential. Geben Sie Folgendes ein, um weitere Informationen zu erhalten: Get-Help New-Object. Der dritte Befehl ruft den Verfügbarkeitssatz "AvailabilitySet03" in der Ressourcengruppe "ResourceGroup11" ab und speichert dieses Objekt dann in der $AvailabilitySet Variablen. Der vierte Befehl erstellt ein Objekt eines virtuellen Computers und speichert es dann in der $VirtualMachine Variablen. Der Befehl weist dem virtuellen Computer einen Namen und eine Größe zu. Der virtuelle Computer gehört zu dem in $AvailabilitySet gespeicherten Verfügbarkeitssatz. Die nächsten vier Befehle weisen Variablen Werte zu, die im folgenden Befehl verwendet werden sollen. Da Sie diese Zeichenfolgen direkt im Befehl "Set-AzVMOperatingSystem " angeben können, wird dieser Ansatz nur zur Lesbarkeit verwendet. Sie können jedoch einen Ansatz wie diese in Skripts verwenden. Der letzte Befehl legt betriebssystemeigenschaften für den virtuellen Computer fest, der in $VirtualMachine gespeichert ist. Der Befehl verwendet die in $Credential gespeicherten Anmeldeinformationen. Der Befehl verwendet Variablen, die in früheren Befehlen für einige Parameter zugewiesen wurden.

Beispiel 2: Festlegen von Betriebssystemeigenschaften für einen neuen virtuellen Computer mit aktiviertem Hot Patching

$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

Der erste Befehl konvertiert ein Kennwort in eine sichere Zeichenfolge und speichert es dann in der variablen $SecurePassword. Geben Sie Folgendes ein, um weitere Informationen zu erhalten: Get-Help ConvertTo-SecureString. Der zweite Befehl erstellt eine Anmeldeinformation für den Benutzer FullerP und das kennwort, das in $SecurePassword gespeichert ist, und speichert dann die Anmeldeinformationen in der variablen $Credential. Geben Sie Folgendes ein, um weitere Informationen zu erhalten: Get-Help New-Object. Der dritte Befehl ruft den Verfügbarkeitssatz "AvailabilitySet03" in der Ressourcengruppe "ResourceGroup11" ab und speichert dieses Objekt dann in der $AvailabilitySet Variablen. Der vierte Befehl erstellt ein Objekt eines virtuellen Computers und speichert es dann in der $VirtualMachine Variablen. Der Befehl weist dem virtuellen Computer einen Namen und eine Größe zu. Der virtuelle Computer gehört zu dem in $AvailabilitySet gespeicherten Verfügbarkeitssatz. Die nächsten vier Befehle weisen Variablen Werte zu, die im folgenden Befehl verwendet werden sollen. Da Sie diese Zeichenfolgen direkt im Befehl "Set-AzVMOperatingSystem " angeben können, wird dieser Ansatz nur zur Lesbarkeit verwendet. Sie können jedoch einen Ansatz wie diese in Skripts verwenden. Der letzte Befehl legt betriebssystemeigenschaften für den virtuellen Computer fest, der in $VirtualMachine gespeichert ist. Der Befehl verwendet die in $Credential gespeicherten Anmeldeinformationen. Der Befehl verwendet Variablen, die in früheren Befehlen für einige Parameter zugewiesen wurden. Der Befehl aktiviert Hotpatching auf dem virtuellen Computer.

Beispiel 3: Festlegen von Betriebssystemeigenschaften für einen neuen virtuellen Linux-Computer

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

Der erste Befehl konvertiert ein Kennwort in eine sichere Zeichenfolge und speichert es dann in der variablen $SecurePassword. Geben Sie Folgendes ein, um weitere Informationen zu erhalten: Get-Help ConvertTo-SecureString. Der zweite Befehl erstellt eine Anmeldeinformation für den Benutzer FullerP und das kennwort, das in $SecurePassword gespeichert ist, und speichert dann die Anmeldeinformationen in der variablen $Credential. Geben Sie Folgendes ein, um weitere Informationen zu erhalten: Get-Help New-Object. Der dritte Befehl ruft den Verfügbarkeitssatz "AvailabilitySet03" in der Ressourcengruppe "ResourceGroup11" ab und speichert dieses Objekt dann in der $AvailabilitySet Variablen. Der vierte Befehl erstellt ein Objekt eines virtuellen Computers und speichert es dann in der $VirtualMachine Variablen. Der Befehl weist dem virtuellen Computer einen Namen und eine Größe zu. Der virtuelle Computer gehört zu dem in $AvailabilitySet gespeicherten Verfügbarkeitssatz. Die nächsten beiden Befehle weisen Variablen Werte zu, die im folgenden Befehl verwendet werden sollen. Der letzte Befehl legt betriebssystemeigenschaften für den virtuellen Computer fest, der in $VirtualMachine gespeichert ist. Der Befehl verwendet die in $Credential gespeicherten Anmeldeinformationen. Der Befehl verwendet Variablen, die in früheren Befehlen für einige Parameter zugewiesen wurden. Der Befehl legt den Patchmoduswert auf dem virtuellen Computer auf "AutomaticByPlatform" fest.

Beispiel 4: Festlegen von Betriebssystemeigenschaften mit einem Anmeldeinformationsparameter, wenn der virtuelle Computer nicht über ein OSProfile verfügt.

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

Parameter

-AssessmentMode

Wert des automatischen Bewertungsmodus für den virtuellen Computer. Mögliche Werte sind ImageDefault und AutomaticByPlatform.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-ComputerName

Gibt den Namen des Computers an.

Typ:String
Position:2
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Credential

Gibt den Benutzernamen und das Kennwort für den virtuellen Computer als PSCredential-Objekt an. Verwenden Sie zum Abrufen von Anmeldeinformationen das Cmdlet "Get-Credential". Geben Sie Folgendes ein, um weitere Informationen zu erhalten: Get-Help Get-Credential.

Typ:PSCredential
Position:3
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-CustomData

Gibt eine Zeichenfolge an, die an den virtuellen Computer übergeben werden soll. Weitere Informationen finden Sie unter Custom Data on Azure VMs. Hinweis: Es wird nicht empfohlen, vertrauliche Informationen in benutzerdefinierten Daten zu speichern.

Typ:String
Position:4
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-DefaultProfile

Die Anmeldeinformationen, Konten, Mandanten und Abonnements, die für die Kommunikation mit Azure verwendet werden.

Typ:IAzureContextContainer
Aliase:AzContext, AzureRmContext, AzureCredential
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-DisablePasswordAuthentication

Gibt an, dass dieses Cmdlet die Kennwortauthentifizierung deaktiviert.

Typ:SwitchParameter
Position:5
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-DisableVMAgent

Deaktivieren Sie den VM-Agent für die Bereitstellung.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-EnableAutoUpdate

Gibt an, dass dieses Cmdlet die automatische Aktualisierung aktiviert.

Typ:SwitchParameter
Position:6
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-EnableHotpatching

Ermöglicht Es Kunden, ihre Azure-VMs zu patchen, ohne dass ein Neustart erforderlich ist. Für enableHotpatching muss "provisionVMAgent" auf "true" festgelegt werden, und "patchMode" muss auf "AutomaticByPlatform" festgelegt werden.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Linux

Gibt an, dass der Typ des Betriebssystems Linux ist.

Typ:SwitchParameter
Position:1
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-PatchMode

Gibt den Modus des In-Guest-Patchings auf den virtuellen IaaS-Computer an.

Dabei sind folgende Werte möglich:
AutomaticByPlatform – Patchinstallation für den virtuellen Computer wird von Azure verwaltet. Verwendung mit -Windows oder -Linux. Erfordert -ProvisionVMAgent. Erfordert "-EnableAutoUpdate" bei Verwendung mit -Windows.
AutomaticByOS – Patchinstallation für den virtuellen Computer wird vom Betriebssystem verwaltet. Wird mit -Windows verwendet. Erfordert -ProvisionVMAgent und -EnableAutoUpdate.
Manuell – Sie steuern die Anwendung von Patches auf einen virtuellen Computer. Wird mit -Windows verwendet. Erfordert -ProvisionVMAgent.
ImageDefault – Patchinstallation, die von den Standardeinstellungen im Betriebssystemimage verwaltet wird. Verwendung mit -Linux.

Typ:String
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-ProvisionVMAgent

Gibt an, dass die Einstellungen erfordern, dass der Agent des virtuellen Computers auf dem virtuellen Computer installiert ist.

Typ:SwitchParameter
Position:5
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-TimeZone

Gibt die Zeitzone des virtuellen Computers an. z.B. "Pacific Standard Time".
Mögliche Werte können TimeZoneInfo.Id Wert aus Zeitzonen sein, die von TimeZoneInfo.GetSystemTimeZones zurückgegeben werden.

Typ:String
Position:7
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-VM

Gibt das objekt des lokalen virtuellen Computers an, für das Betriebssystemeigenschaften festgelegt werden sollen. Verwenden Sie das Cmdlet "Get-AzVM", um ein Objekt eines virtuellen Computers abzurufen. Erstellen Sie ein Objekt eines virtuellen Computers mithilfe des Cmdlets New-AzVMConfig.

Typ:PSVirtualMachine
Aliase:VMProfile
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Windows

Gibt an, dass der Typ des Betriebssystems Windows ist.

Typ:SwitchParameter
Position:1
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-WinRMCertificateUrl

Gibt den URI eines WinRM-Zertifikats an. Dies muss in einem Key Vault gespeichert werden.

Typ:Uri
Position:10
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-WinRMHttp

Gibt an, dass dieses Betriebssystem HTTP WinRM verwendet.

Typ:SwitchParameter
Position:8
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-WinRMHttps

Gibt an, dass dieses Betriebssystem HTTPS WinRM verwendet.

Typ:SwitchParameter
Position:9
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

Eingaben

PSVirtualMachine

SwitchParameter

String

PSCredential

Uri

Ausgaben

PSVirtualMachine