Dela via


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:

Skärmbild av stegen för att köra EnableRemotePS-skriptet från portalen.

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.

  1. Öppna registereditorn (regedit.exe) från en annan virtuell dator i samma virtuella nätverk.

  2. Välj Filanslutningsnätverksregister>.

    Skärmbild av Connect Network Registry... i Arkiv-menyn i Registereditorn

  3. 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.

    Skärmbild av rutan Ange det objektnamn som ska väljas i dialogrutan Välj dator.

  4. Ange autentiseringsuppgifterna för den virtuella måldatorn.

  5. 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.

  1. Öppna en instans av Services.msc från en annan virtuell dator i samma virtuella nätverk.

  2. Högerklicka på Tjänster (lokal).

  3. Välj Anslut till en annan dator.

    Skärmbild av alternativet Anslut till en annan dator i menyn Med högerklick i Tjänster (lokal).

  4. Ange den virtuella måldatorns dynamiska IP-adress.

    Skärmbild av den dynamiska IP-indatarutan i alternativet En annan dator i dialogrutan Välj dator.

  5. Gör nödvändiga ändringar i tjänsterna.

Nästa steg

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.