Använda fjärrverktyg för att felsöka problem med virtuella Azure-datorer
Gäller för: ✔️ Virtuella Windows-datorer
När du felsöker problem på en virtuell Azure-dator kan du ansluta till den virtuella datorn med hjälp av de fjärrverktyg som beskrivs i den här artikeln i stället för att använda RDP (Remote Desktop Protocol).
Seriekonsol
Använd en seriekonsol för Virtuella Azure-datorer för att köra kommandon på den fjärranslutna virtuella Azure-datorn.
Fjärr-CMD
Ladda ned PsExec. Anslut till den virtuella datorn genom att köra följande kommando:
psexec \\<computer>-u user -s cmd
Kommentar
- Kommandot måste köras på en dator som finns i samma virtuella nätverk.
- DIP eller HostName kan användas för att ersätta <datorn>.
- Parametern -s ser till att kommandot anropas med hjälp av systemkontot (administratörsbehörighet).
- PsExec använder TCP-portarna 135 och 445. Därför måste de två portarna vara öppna i brandväggen.
Kör kommando
Mer information om hur du använder körningskommandofunktionen för att köra skript på den virtuella datorn finns i Köra PowerShell-skript på den virtuella Windows-datorn med körningskommandot.
Anpassat skripttillägg
Du kan använda funktionen Anpassat skripttillägg för att köra ett anpassat skript på den virtuella måldatorn. Om du vill använda den här funktionen måste följande villkor vara uppfyllda:
Den virtuella datorn har anslutning.
Azure Virtual Machine Agent är installerat och fungerar som förväntat på den virtuella datorn.
Tillägget installerades inte tidigare på den virtuella datorn.
Tillägget matar bara in skriptet första gången det används. Om du använder den här funktionen senare identifierar tillägget att det redan har använts och inte laddar upp det nya skriptet.
Ladda upp skriptet till ett lagringskonto och generera en egen container. Kör sedan följande skript i Azure PowerShell på en dator som har anslutning till den virtuella datorn.
För virtuella Azure Resource Manager-datorer
#Set up the basic variables.
$subscriptionID = "<<SUBSCRIPTION ID>>"
$storageAccount = "<<STORAGE ACCOUNT>>"
$storageRG = "<<RESOURCE GROUP OF THE STORAGE ACCOUNT>>"
$localScript = "<<FULL PATH OF THE PS1 FILE TO EXECUTE ON THE VM>>"
$blobName = "file.ps1" #Name you want for the blob in the storage.
$vmName = "<<VM NAME>>"
$vmResourceGroup = "<<RESOURCE GROUP>>"
$vmLocation = "<<DATACENTER>>"
#Set up the Azure PowerShell module, and ensure the access to the subscription.
Login-AzAccount #Ensure login with the account associated with the subscription ID.
Get-AzSubscription -SubscriptionId $subscriptionID | Select-AzSubscription
#Set up the access to the storage account, and upload the script.
$storageKey = (Get-AzStorageAccountKey -ResourceGroupName $storageRG -Name $storageAccount).Value[0]
$context = New-AzureStorageContext -StorageAccountName $storageAccount -StorageAccountKey $storageKey
$container = "cse" + (Get-Date -Format yyyyMMddhhmmss)
New-AzureStorageContainer -Name $container -Permission Off -Context $context
Set-AzureStorageBlobContent -File $localScript -Container $container -Blob $blobName -Context $context
#Push the script into the VM.
Set-AzVMCustomScriptExtension -Name "CustomScriptExtension" -ResourceGroupName $vmResourceGroup -VMName $vmName -Location $vmLocation -StorageAccountName $storageAccount -StorageAccountKey $storagekey -ContainerName $container -FileName $blobName -Run $blobName
PowerShell via fjärranslutning
Kommentar
TCP-port 5986 (HTTPS) måste vara öppen så att du kan använda det här alternativet.
För virtuella Azure Resource Manager-datorer måste du öppna port 5986 i nätverkssäkerhetsgruppen (NSG). Mer information finns i Säkerhetsgrupper.
För virtuella RDFE-datorer måste du ha en slutpunkt som har en privat port (5986) och en offentlig port. Sedan måste du också öppna den offentliga porten på NSG:n.
Konfigurera klientdatorn
Om du vill använda PowerShell för att ansluta till den virtuella datorn via en fjärranslutning måste du först konfigurera klientdatorn för att tillåta anslutningen. Det gör du genom att lägga till den virtuella datorn i listan över betrodda PowerShell-värdar genom att köra följande kommando efter behov.
Så här lägger du till en virtuell dator i listan över betrodda värdar:
Set-Item wsman:\localhost\Client\TrustedHosts -value <ComputerName>
Så här lägger du till flera virtuella datorer i listan över betrodda värdar:
Set-Item wsman:\localhost\Client\TrustedHosts -value <ComputerName1>,<ComputerName2>
Så här lägger du till alla datorer i listan över betrodda värdar:
Set-Item wsman:\localhost\Client\TrustedHosts -value *
Aktivera RemotePS på den virtuella datorn
För virtuella datorer som skapats med den klassiska distributionsmodellen använder du tillägget för anpassat skript för att köra följande skript:
Enable-PSRemoting -Force
New-NetFirewallRule -Name "Allow WinRM HTTPS" -DisplayName "WinRM HTTPS" -Enabled True -Profile Any -Action Allow -Direction Inbound -LocalPort 5986 -Protocol TCP
$thumbprint = (New-SelfSignedCertificate -DnsName $env:COMPUTERNAME -CertStoreLocation Cert:\LocalMachine\My).Thumbprint
$command = "winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname=""$env:computername""; CertificateThumbprint=""$thumbprint""}"
cmd.exe /C $command
För virtuella Azure Resource Manager-datorer använder du körningskommandon från portalen för att köra EnableRemotePS-skriptet:
Ansluta till den virtuella datorn
Kör följande kommando baserat på klientdatorns plats:
Utanför det virtuella nätverket eller distributionen
Kör följande kommando för en virtuell dator som skapats med den klassiska distributionsmodellen:
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck Enter-PSSession -ComputerName "<<CLOUDSERVICENAME.cloudapp.net>>" -port "<<PUBLIC PORT NUMBER>>" -Credential (Get-Credential) -useSSL -SessionOption $Skip
För en virtuell Azure Resource Manager-dator lägger du först till ett DNS-namn i den offentliga IP-adressen. Detaljerade steg finns i Skapa ett fullständigt domännamn i Azure Portal för en virtuell Windows-dator. Kör sedan följande kommando:
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck Enter-PSSession -ComputerName "<<DNSname.DataCenter.cloudapp.azure.com>>" -port "5986" -Credential (Get-Credential) -useSSL -SessionOption $Skip
Kör följande kommando i det virtuella nätverket eller distributionen:
$Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck Enter-PSSession -ComputerName "<<HOSTNAME>>" -port 5986 -Credential (Get-Credential) -useSSL -SessionOption $Skip
Kommentar
Om du ställer in SkipCaCheck-flaggan kringgås kravet på att importera ett certifikat till den virtuella datorn när du startar sessionen.
Du kan också använda cmdleten Invoke-Command för att fjärrköra ett skript på den virtuella datorn.
Invoke-Command -ComputerName "<<COMPUTERNAME>" -ScriptBlock {"<<SCRIPT BLOCK>>"}
Fjärregister
Kommentar
TCP-port 135 eller 445 måste vara öppen för att kunna använda det här alternativet.
För virtuella Azure Resource Manager-datorer måste du öppna port 5986 på nätverkssäkerhetsgruppen. Mer information finns i Säkerhetsgrupper.
För virtuella RDFE-datorer måste du ha en slutpunkt som har en privat port 5986 och en offentlig port. Du måste också öppna den offentliga porten på NSG:n.
Öppna registereditorn (regedit.exe) från en annan virtuell dator i samma virtuella nätverk.
Välj Filanslutningsnätverksregister>.
Leta upp den virtuella måldatorn efter värdnamn eller dynamisk IP-adress (helst) genom att ange den i rutan Ange det objektnamn som ska väljas.
Ange autentiseringsuppgifterna för den virtuella måldatorn.
Gör alla nödvändiga registerändringar.
Fjärrtjänstkonsol
Kommentar
TCP-portarna 135 eller 445 måste vara öppna för att kunna använda det här alternativet.
För virtuella Azure Resource Manager-datorer måste du öppna port 5986 på nätverkssäkerhetsgruppen. Mer information finns i Säkerhetsgrupper.
För virtuella RDFE-datorer måste du ha en slutpunkt som har en privat port 5986 och en offentlig port. Du måste också öppna den offentliga porten på NSG:n.
Öppna en instans av Services.msc från en annan virtuell dator i samma virtuella nätverk.
Högerklicka på Tjänster (lokal).
Välj Anslut till en annan dator.
Ange den virtuella måldatorns dynamiska IP-adress.
Gör nödvändiga ändringar i tjänsterna.
Nästa steg
- Mer information om cmdleten Enter-PSSession finns i Enter-PSSession.
- Mer information om tillägget för anpassat skript för Windows med den klassiska distributionsmodellen finns i Tillägget för anpassat skript för Windows.
- PsExec är en del av PSTools Suite.
- Mer information om PSTools Suite finns i PSTools.
Kontakta oss för att få hjälp
Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.