Dela via


Använda fjärrverktyg för att felsöka problem med virtuella Azure-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 Remote Desktop Protocol (RDP).

Seriekonsol

Använd en seriekonsol för Azure Virtual Machines 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

Obs!

  • 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 kommandot

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.

Tillägg för anpassat skript

Du kan använda funktionen För 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 installeras och fungerar som förväntat på den virtuella datorn.

  • Tillägget har inte tidigare installerats 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 klassiska virtuella distributionsmodelldatorer

Viktigt

Klassiska virtuella datorer dras tillbaka den 1 september 2023

Om du använder IaaS-resurser från ASM slutför du migreringen senast den 1 september 2023. Vi rekommenderar att du gör bytet tidigare för att dra nytta av de många funktionsförbättringarna i Azure Resource Manager.

Mer information finns i Migrera dina IaaS-resurser till Azure Resource Manager senast den 1 september 2023.

#Set up the basic variables.
$subscriptionID = "<<SUBSCRIPTION ID>>" 
$storageAccount = "<<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>>" 
$vmCloudService = "<<CLOUD SERVICE>>" #Resource group or cloud service where the VM is hosted. For example, for "demo305.cloudapp.net" the cloud service is going to be demo305.

#Set up the Azure PowerShell module, and ensure the access to the subscription.
Import-Module Azure
Add-AzureAccount  #Ensure login with the account associated with the subscription ID.
Get-AzureSubscription -SubscriptionId $subscriptionID | Select-AzureSubscription

#Set up the access to the storage account, and upload the script.
$storageKey = (Get-AzureStorageKey -StorageAccountName $storageAccount).Primary
$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.
$vm = Get-AzureVM -ServiceName $vmCloudService -Name $vmName
Set-AzureVMCustomScriptExtension "CustomScriptExtension" -VM $vm -StorageAccountName $storageAccount -StorageAccountKey $storagekey -ContainerName $container -FileName $blobName -Run $blobName | Update-AzureVM

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

Fjärr-PowerShell

Obs!

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 fjärransluta till den virtuella datorn 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 anvisningar finns i Skapa ett fullständigt kvalificerat 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
    

Obs!

Om du anger 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ärrregister

Obs!

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 File>Connect Network Registry.

    Skärmbild av Connect Network Registry... på Arkiv-menyn i Registry Editor

  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 eventuella nödvändiga registerändringar.

Fjärrtjänstkonsol

Obs!

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 snabbmenyn i Tjänster (lokal).

  4. Ange den dynamiska IP-adressen för den virtuella måldatorn.

    Skärmbild av den dynamiska IP-indatarutan i alternativet 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.