Udostępnij za pośrednictwem


Set-AzVMOperatingSystem

Ustawia właściwości systemu operacyjnego podczas tworzenia nowej maszyny wirtualnej lub aktualizowania maszyny wirtualnej.

Składnia

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

Opis

Polecenie cmdlet Set-AzVMOperatingSystem ustawia właściwości systemu operacyjnego podczas tworzenia nowej maszyny wirtualnej. Można określić poświadczenia logowania, nazwę komputera i typ systemu operacyjnego.

Przykłady

Przykład 1. Ustawianie właściwości systemu operacyjnego dla nowej maszyny wirtualnej

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

Pierwsze polecenie konwertuje hasło na bezpieczny ciąg, a następnie zapisuje je w zmiennej $SecurePassword. Aby uzyskać więcej informacji, wpisz Get-Help ConvertTo-SecureString. Drugie polecenie tworzy poświadczenia dla użytkownika FullerP i hasło przechowywane w $SecurePassword, a następnie przechowuje poświadczenia w zmiennej $Credential. Aby uzyskać więcej informacji, wpisz Get-Help New-Object. Trzecie polecenie pobiera zestaw dostępności o nazwie AvailabilitySet03 w grupie zasobów o nazwie ResourceGroup11, a następnie przechowuje ten obiekt w zmiennej $AvailabilitySet. Czwarte polecenie tworzy obiekt maszyny wirtualnej, a następnie przechowuje go w zmiennej $VirtualMachine. Polecenie przypisuje nazwę i rozmiar do maszyny wirtualnej. Maszyna wirtualna należy do zestawu dostępności przechowywanego w $AvailabilitySet. Następne cztery polecenia przypisują wartości do zmiennych do użycia w poniższym poleceniu. Ponieważ te ciągi można określić bezpośrednio w poleceniu Set-AzVMOperatingSystem , to podejście jest używane tylko do czytelności. Można jednak użyć takiego podejścia w skryptach. Ostatnie polecenie ustawia właściwości systemu operacyjnego dla maszyny wirtualnej przechowywanej w $VirtualMachine. Polecenie używa poświadczeń przechowywanych w $Credential. Polecenie używa zmiennych przypisanych w poprzednich poleceniach dla niektórych parametrów.

Przykład 2. Ustawianie właściwości systemu operacyjnego dla nowej maszyny wirtualnej z włączonym stosowaniem poprawek na gorąco

$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

Pierwsze polecenie konwertuje hasło na bezpieczny ciąg, a następnie zapisuje je w zmiennej $SecurePassword. Aby uzyskać więcej informacji, wpisz Get-Help ConvertTo-SecureString. Drugie polecenie tworzy poświadczenia dla użytkownika FullerP i hasło przechowywane w $SecurePassword, a następnie przechowuje poświadczenia w zmiennej $Credential. Aby uzyskać więcej informacji, wpisz Get-Help New-Object. Trzecie polecenie pobiera zestaw dostępności o nazwie AvailabilitySet03 w grupie zasobów o nazwie ResourceGroup11, a następnie przechowuje ten obiekt w zmiennej $AvailabilitySet. Czwarte polecenie tworzy obiekt maszyny wirtualnej, a następnie przechowuje go w zmiennej $VirtualMachine. Polecenie przypisuje nazwę i rozmiar do maszyny wirtualnej. Maszyna wirtualna należy do zestawu dostępności przechowywanego w $AvailabilitySet. Następne cztery polecenia przypisują wartości do zmiennych do użycia w poniższym poleceniu. Ponieważ te ciągi można określić bezpośrednio w poleceniu Set-AzVMOperatingSystem , to podejście jest używane tylko do czytelności. Można jednak użyć takiego podejścia w skryptach. Ostatnie polecenie ustawia właściwości systemu operacyjnego dla maszyny wirtualnej przechowywanej w $VirtualMachine. Polecenie używa poświadczeń przechowywanych w $Credential. Polecenie używa zmiennych przypisanych w poprzednich poleceniach dla niektórych parametrów. Polecenie włącza funkcję Hotpatching na maszynie wirtualnej.

Przykład 3. Ustawianie właściwości systemu operacyjnego dla nowej maszyny wirtualnej z systemem 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"

Pierwsze polecenie konwertuje hasło na bezpieczny ciąg, a następnie zapisuje je w zmiennej $SecurePassword. Aby uzyskać więcej informacji, wpisz Get-Help ConvertTo-SecureString. Drugie polecenie tworzy poświadczenia dla użytkownika FullerP i hasło przechowywane w $SecurePassword, a następnie przechowuje poświadczenia w zmiennej $Credential. Aby uzyskać więcej informacji, wpisz Get-Help New-Object. Trzecie polecenie pobiera zestaw dostępności o nazwie AvailabilitySet03 w grupie zasobów o nazwie ResourceGroup11, a następnie przechowuje ten obiekt w zmiennej $AvailabilitySet. Czwarte polecenie tworzy obiekt maszyny wirtualnej, a następnie przechowuje go w zmiennej $VirtualMachine. Polecenie przypisuje nazwę i rozmiar do maszyny wirtualnej. Maszyna wirtualna należy do zestawu dostępności przechowywanego w $AvailabilitySet. Następne dwa polecenia przypisują wartości do zmiennych do użycia w poniższym poleceniu. Ostatnie polecenie ustawia właściwości systemu operacyjnego dla maszyny wirtualnej przechowywanej w $VirtualMachine. Polecenie używa poświadczeń przechowywanych w $Credential. Polecenie używa zmiennych przypisanych w poprzednich poleceniach dla niektórych parametrów. Polecenie ustawia wartość trybu poprawki na maszynie wirtualnej na wartość "AutomaticByPlatform".

Przykład 4. Ustaw właściwości systemu operacyjnego za pomocą parametru Credential, gdy maszyna wirtualna nie ma pliku 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;

Parametry

-AssessmentMode

Wartość trybu oceny automatycznej dla maszyny wirtualnej. Możliwe wartości to ImageDefault i AutomaticByPlatform.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-ComputerName

Określa nazwę komputera.

Typ:String
Position:2
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Credential

Określa nazwę użytkownika i hasło dla maszyny wirtualnej jako obiekt PSCredential . Aby uzyskać poświadczenia, użyj polecenia cmdlet Get-Credential. Aby uzyskać więcej informacji, wpisz Get-Help Get-Credential.

Typ:PSCredential
Position:3
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-CustomData

Określa ciąg, który ma zostać przekazany do maszyny wirtualnej. Aby uzyskać więcej informacji, zobacz Custom Data on Azure VMs (Dane niestandardowe na maszynach wirtualnych platformy Azure). Uwaga: nie zaleca się przechowywania poufnych informacji w danych niestandardowych.

Typ:String
Position:4
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-DefaultProfile

Poświadczenia, konto, dzierżawa i subskrypcja używane do komunikacji z platformą Azure.

Typ:IAzureContextContainer
Aliasy:AzContext, AzureRmContext, AzureCredential
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-DisablePasswordAuthentication

Wskazuje, że to polecenie cmdlet wyłącza uwierzytelnianie haseł.

Typ:SwitchParameter
Position:5
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-DisableVMAgent

Wyłącz aprowizację agenta maszyny wirtualnej.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-EnableAutoUpdate

Wskazuje, że to polecenie cmdlet włącza automatyczną aktualizację.

Typ:SwitchParameter
Position:6
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-EnableHotpatching

Umożliwia klientom stosowanie poprawek maszyn wirtualnych platformy Azure bez konieczności ponownego uruchamiania. W przypadku funkcji enableHotpatching parametr "provisionVMAgent" musi być ustawiony na wartość true, a parametr "patchMode" musi być ustawiony na wartość "AutomaticByPlatform".

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Linux

Wskazuje, że typ systemu operacyjnego to Linux.

Typ:SwitchParameter
Position:1
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-PatchMode

Określa tryb stosowania poprawek gościa do maszyny wirtualnej IaaS.

Dopuszczalne wartości:
AutomaticByPlatform — instalacja poprawek dla maszyny wirtualnej będzie zarządzana przez platformę Azure. Użyj z -Windows lub -Linux. Wymaga -ProvisionVMAgent. Wymaga -EnableAutoUpdate w przypadku użycia z -Windows.
AutomaticByOS — instalacja poprawek dla maszyny wirtualnej będzie zarządzana przez system operacyjny. Użyj z -Windows. Wymaga -ProvisionVMAgent i -EnableAutoUpdate.
Ręczne — kontrolujesz stosowanie poprawek do maszyny wirtualnej. Użyj z -Windows. Wymaga -ProvisionVMAgent.
ImageDefault — instalacja poprawek zarządzana przez ustawienia domyślne na obrazie systemu operacyjnego. Użyj z -Linux.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-ProvisionVMAgent

Wskazuje, że ustawienia wymagają zainstalowania agenta maszyny wirtualnej na maszynie wirtualnej.

Typ:SwitchParameter
Position:5
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-TimeZone

Określa strefę czasową maszyny wirtualnej. np. "Pacyfik (czas standardowy).
Możliwe wartości mogą być TimeZoneInfo.Id wartości ze stref czasowych zwracanych przez timeZoneInfo.GetSystemTimeZones.

Typ:String
Position:7
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-VM

Określa lokalny obiekt maszyny wirtualnej, na którym mają być ustawiane właściwości systemu operacyjnego. Aby uzyskać obiekt maszyny wirtualnej, użyj polecenia cmdlet Get-AzVM. Utwórz obiekt maszyny wirtualnej przy użyciu polecenia cmdlet New-AzVMConfig.

Typ:PSVirtualMachine
Aliasy:VMProfile
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Windows

Wskazuje, że typ systemu operacyjnego to Windows.

Typ:SwitchParameter
Position:1
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-WinRMCertificateUrl

Określa identyfikator URI certyfikatu usługi WinRM. Musi to być przechowywane w usłudze Key Vault.

Typ:Uri
Position:10
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-WinRMHttp

Wskazuje, że ten system operacyjny używa protokołu HTTP WinRM.

Typ:SwitchParameter
Position:8
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-WinRMHttps

Wskazuje, że ten system operacyjny korzysta z usługi WinRM HTTPS.

Typ:SwitchParameter
Position:9
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

PSVirtualMachine

SwitchParameter

String

PSCredential

Uri

Dane wyjściowe

PSVirtualMachine