Freigeben über


Verwenden von Remotetools zur Behandlung von Azure-VM-Problemen

Gilt für: ✔️ Windows-VMs

Bei der Behandlung von Problemen auf einem virtuellen Azure-Computer (VM) können Sie eine Verbindung mit dem virtuellen Computer mithilfe der in diesem Artikel erörterten Remotetools herstellen, statt das Remotedesktopprotokoll (RDP) zu verwenden.

Serielle Konsole

Verwenden Sie eine serielle Konsole für virtuelle Azure-Computer, um Befehle auf dem virtuellen Azure-Remotecomputer auszuführen.

Remote-CMD

Laden Sie PsExec herunter. Stellen Sie eine Verbindung mit der VM her, indem Sie folgenden Befehl ausführen:

psexec \\<computer>-u user -s cmd

Notiz

  • Der Befehl muss auf einem Computer ausgeführt werden, der sich im selben virtuellen Netzwerk befindet.
  • DIP oder HostName kann als Ersatz für <Computer> verwendet werden.
  • Durch den Parameter „-s“ wird sichergestellt, dass der Befehl mithilfe des Systemkontos (Administratorberechtigungen) aufgerufen wird.
  • PsExec verwendet die TCP-Ports 135 und 445. Somit müssen die zwei Ports in der Firewall geöffnet sein.

Führen Sie den Befehl aus

Weitere Informationen zum Verwenden der Funktion „Skriptausführung“ zum Ausführen von Skripts auf dem virtuellen Computer finden Sie unter Ausführen von PowerShell-Skripts in Ihrer Windows-VM mit „Befehl ausführen“.

Benutzerdefinierte Skripterweiterung

Sie können das Feature „Benutzerdefinierte Skripterweiterung“ verwenden, um auf der Ziel-VM ein benutzerdefiniertes Skript auszuführen. Zur Verwendung dieses Features müssen die folgenden Bedingungen erfüllt sein:

  • Die VM verfügt über Konnektivität.

  • Der Agent für virtuelle Azure-Computer ist auf dem virtuellen Computer installiert und funktioniert ordnungsgemäß.

  • Die Erweiterung war zuvor nicht auf dem virtuellen Computer installiert.

    Die Erweiterung fügt das Skript nur bei der erstmaligen Verwendung ein. Wenn Sie diese Funktion zu einem späteren Zeitpunkt verwenden, erkennt die Erweiterung, dass sie bereits verwendet wurde, und lädt das neue Skript nicht hoch.

Laden Sie das Skript in ein Speicherkonto hoch, und erstellen Sie dafür einen separaten Container. Führen Sie anschließend das folgende Skript in Azure PowerShell auf einem Computer aus, der Konnektivität mit der VM aufweist.

Für über Azure Resource Manager bereitgestellte virtuelle Computer

#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

Remote-PowerShell

Notiz

Der TCP-Port 5986 (HTTPS) muss geöffnet sein, damit Sie diese Option verwenden können.

Für über Azure Resource Manager bereitgestellte virtuelle Computer müssen Sie Port 5986 in der Netzwerksicherheitsgruppe (NSG) öffnen. Weitere Informationen finden Sie bei den Sicherheitsgruppen.

Für RDFE-VMs benötigen Sie einen Endpunkt mit einem privaten Port (5986) und einem öffentlichen Port. Anschließend müssen Sie auch den entsprechenden öffentlichen Port in der NSG öffnen.

Einrichten des Clientcomputers

Um PowerShell zum Herstellen von Remoteverbindungen mit der VM zu verwenden, müssen Sie zunächst den Clientcomputer so einrichten, dass der die Verbindung zulässt. Fügen Sie dazu die VM der PowerShell-Liste mit vertrauenswürdigen Hosts hinzu, indem Sie den folgenden Befehl ausführen.

So fügen Sie der Liste der vertrauenswürdigen Hosts einen virtuellen Computer hinzu

Set-Item wsman:\localhost\Client\TrustedHosts -value <ComputerName>

So fügen Sie der Liste der vertrauenswürdigen Hosts mehrere virtuelle Computer hinzu

Set-Item wsman:\localhost\Client\TrustedHosts -value <ComputerName1>,<ComputerName2>

So fügen Sie der Liste der vertrauenswürdigen Hosts alle Computer hinzu:

Set-Item wsman:\localhost\Client\TrustedHosts -value *

Aktivieren von RemotePS auf der VM

Verwenden Sie für mit dem klassischen Bereitstellungsmodell erstellte virtuelle Computer die benutzerdefinierte Skripterweiterung, um das folgende Skript auszuführen:

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

Verwenden Sie für über Azure Resource Manager bereitgestellte virtuelle Computer die Funktion „Befehl ausführen“ im Portal, um das Skript „EnableRemotePS“ auszuführen:

Screenshot der Schritte zum Ausführen des EnableRemotePS-Skripts über das Portal.

Herstellen der Verbindung zur VM

Führen Sie den folgenden Befehl basierend auf dem Standort des Clientcomputers aus:

  • Außerhalb des virtuellen Netzwerks oder der Bereitstellung

    • Führen Sie für mit dem klassischen Bereitstellungsmodell erstellte virtuelle Computer den folgenden Befehl aus:

      $Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
      Enter-PSSession -ComputerName  "<<CLOUDSERVICENAME.cloudapp.net>>" -port "<<PUBLIC PORT NUMBER>>" -Credential (Get-Credential) -useSSL -SessionOption $Skip
      
    • Fügen Sie für über Azure Resource Manager bereitgestellte virtuelle Computer der öffentlichen IP-Adresse zunächst einen DNS-Namen hinzu. Detaillierte Schritte dazu finden Sie unter Erstellen eines vollqualifizierten Domänennamens im Azure-Portal für eine Windows-VM. Führen Sie dann den folgenden Befehl aus:

      $Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
      Enter-PSSession -ComputerName "<<DNSname.DataCenter.cloudapp.azure.com>>" -port "5986" -Credential (Get-Credential) -useSSL -SessionOption $Skip
      
  • Führen Sie innerhalb des virtuellen Netzwerks oder der Bereitstellung den folgenden Befehl aus:

    $Skip = New-PSSessionOption -SkipCACheck -SkipCNCheck
    Enter-PSSession -ComputerName  "<<HOSTNAME>>" -port 5986 -Credential (Get-Credential) -useSSL -SessionOption $Skip
    

Notiz

Durch das Festlegen des Flags „SkipCaCheck“ wird beim Starten der Sitzung die Anforderung zum Importieren eines Zertifikats in die VM umgangen.

Sie können außerdem das Cmdlet „Invoke-Command“ verwenden, um ein Skript remote auf dem virtuellen Computer auszuführen.

Invoke-Command -ComputerName "<<COMPUTERNAME>" -ScriptBlock {"<<SCRIPT BLOCK>>"}

Remoteregistrierung

Notiz

Zur Nutzung dieser Option muss TCP-Port 135 oder 445 geöffnet sein.

Für über Azure Resource Manager bereitgestellte virtuelle Computer müssen Sie Port 5986 in der NSG öffnen. Weitere Informationen finden Sie bei den Sicherheitsgruppen.

Für RDFE-VMs benötigen Sie einen Endpunkt mit einem privaten Port 5986 und einem öffentlichen Port. Sie müssen auch den entsprechenden öffentlichen Port in der NSG öffnen.

  1. Öffnen Sie über einen anderen virtuellen Computer im selben virtuellen Netzwerk den Registrierungs-Editor („regedit.exe“).

  2. Wählen Sie Datei>Mit Netzwerkregistrierung verbinden aus.

    Screenshot der Option „Mit Netzwerkregistrierung verbinden...“ im Menü „Datei“ des Registrierungs-Editors

  3. Suchen Sie den virtuellen Zielcomputer anhand von Hostname oder dynamischer IP (vorzugsweise), indem Sie den entsprechenden Wert im Feld Namen des auszuwählenden Objekts eingeben eingeben.

    Screenshot des Felds „Geben Sie den auszuwählenden Objektnamen ein“ im Dialogfeld „Computer auswählen“.

  4. Geben Sie die Anmeldeinformationen für die Ziel-VM ein.

  5. Nehmen Sie alle erforderlichen Änderungen an der Registrierung vor.

Remotedienste-Konsole

Notiz

Zur Nutzung dieser Option muss TCP-Port 135 oder 445 geöffnet sein.

Für über Azure Resource Manager bereitgestellte virtuelle Computer müssen Sie Port 5986 in der NSG öffnen. Weitere Informationen finden Sie bei den Sicherheitsgruppen.

Für RDFE-VMs benötigen Sie einen Endpunkt mit einem privaten Port 5986 und einem öffentlichen Port. Sie müssen auch den entsprechenden öffentlichen Port in der NSG öffnen.

  1. Öffnen Sie über einen anderen virtuellen Computer im selben virtuellen Netzwerk eine Instanz von Services.msc.

  2. Klicken Sie mit der rechten Maustaste auf Dienste (lokal).

  3. Wählen Sie Verbindung mit einem anderen Computer herstellen aus.

    Screenshot der Option „Mit einem anderen Computer verbinden“ im Kontextmenü von „Dienste (Lokal)“.

  4. Geben Sie die dynamische IP-Adresse des virtuellen Zielcomputers ein.

    Screenshot des dynamischen IP-Eingabefelds in der Option „Anderer Computer“ im Dialogfeld „Computer auswählen“.

  5. Nehmen Sie alle notwendigen Änderungen an den Diensten vor.

Nächste Schritte

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.