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 |