So machen Sie mit PowerShell einen Screenshot eines Remote-Computers
Sie können lernen, wie Sie mit PowerShell über Befehlszeilen einen Screenshot eines Remote-Computers machen. Dieser Überblick behandelt die besten Techniken zum Erfassen von Bildern auf einem Windows-Remote-Computer.
Wie man PowerShell verwendet, um einen Screenshot eines Remote-Computers aufzunehmen
PowerShell wird von IT-Administratoren häufig für Remote-Automatisierung und Systemverwaltung eingesetzt, daher ist es oft das erste Tool, an das man denkt, wenn ein Screenshot eines Remote-Computers benötigt wird. Theoretisch kann PowerShell über .NET-Bibliotheken mit Windows-Grafikkomponenten interagieren, was Bildschirmaufnahmen ermöglicht. In der Praxis bringt die Remote-Ausführung jedoch erhebliche Einschränkungen in Bezug auf Benutzersitzungen und Berechtigungen mit sich. Dies funktioniert, indem PowerShell-Remoting verwendet wird, um den Screenshot-Code remote auszuführen. Das Bild wird auf dem Remote-Computer gespeichert, nicht auf dem lokalen.
Schritt 1. Führen Sie das PowerShell-Skript auf dem Zielcomputer aus, entweder manuell, über eine geplante Aufgabe oder als Teil eines automatisierten Skripts. Der Screenshot wird auf diesem Rechner zum Zeitpunkt der Skriptausführung aufgenommen.
Schritt 2. Laden Sie die erforderlichen .NET-Assemblys mit Add-Type. Die System.Drawing-Assembly wird zum Erstellen und Verwalten von Bilddaten verwendet, während System.Windows.Forms benötigt wird, um Bildschirminformationen wie die Auflösung zu erfassen.
Schritt 3. Definieren Sie einen Ausgabepfad, unter dem der Screenshot gespeichert werden soll. Dieser Pfad muss existieren und beschreibbar sein, zum Beispiel ein Ordner wie C:\Temp, um sicherzustellen, dass die Bilddatei erfolgreich erstellt werden kann.
Schritt 4. Erfassen Sie die Bildschirmauflösung, indem Sie die Grenzen des primären Bildschirms von System.Windows.Forms.Screen auslesen. Dieser Schritt stellt sicher, dass der Screenshot der gesamten sichtbaren Bildschirmgröße entspricht.
Schritt 5. Erstellen Sie ein Bitmap-Objekt im Arbeitsspeicher mit der erfassten Bildschirmbreite und -höhe. Diese Bitmap fungiert als leeres Bild, das den erfassten Bildschirminhalt aufnehmen wird.
Schritt 6. Erzeugen Sie ein Graphics-Objekt aus der Bitmap. Dieses Graphics-Objekt ist für das Zeichnen und Kopieren visueller Daten in die Bitmap verantwortlich.
Schritt 7. Verwenden Sie die Methode CopyFromScreen, um alle sichtbaren Bildschirmpixel in die Bitmap zu kopieren. Dies ist der Schritt, in dem der eigentliche Screenshot aufgenommen wird.
Schritt 8. Speichern Sie die Bitmap als Bilddatei und geben Sie Systemressourcen frei, indem Sie die Graphics- und Bitmap-Objekte verwerfen. Der Screenshot kann später zur Fehlerbehebung oder Dokumentation überprüft werden.
Sie können diesem Beispiel folgen, um PowerShell zu verwenden, um einen Screenshot eines Remote-Computers aufzunehmen:
# Remote-Computernamen definieren
$RemoteComputer = "REMOTE-PC-NAME"
# Screenshot-Speicherpfad auf dem Remote-Computer definieren
$OutputPath = "C:\Temp\PowerShellScreenCapture.jpg"
Invoke-Command -ComputerName $RemoteComputer -ScriptBlock {
Add-Type -AssemblyName System.Drawing Add-Type -AssemblyName System.Windows.Forms
# Primäre Bildschirmauflösung abrufen $ScreenBounds = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds
# Bitmap in Bildschirmauflösung erstellen $Bitmap = New-Object System.Drawing.Bitmap ` $ScreenBounds.Width, $ScreenBounds.Height
# Grafikobjekt erstellen $Graphics = [System.Drawing.Graphics]::FromImage($Bitmap)
# Bildschirminhalt in Bitmap kopieren $Graphics.CopyFromScreen( $ScreenBounds.Location, [System.Drawing.Point]::Empty, $ScreenBounds.Size )
# Screenshot speichern $Bitmap.Save($using:OutputPath, [System.Drawing.Imaging.ImageFormat]::Jpeg)
# Aufräumen $Graphics.Dispose() $Bitmap.Dispose() }
🔥Der einfachste Weg für Remote-Screenshots: AnyViewer
Für IT-Mitarbeiter und Remote-Mitarbeiter, die schnelle Ergebnisse ohne komplexe Skripte wünschen, ist AnyViewer eine praktische Wahl. Es bietet eine einfache Möglichkeit, Remote-Bildschirme zu erfassen und vermeidet dabei die Einrichtungs- und Berechtigungsprobleme, die oft mit befehlsbasierten Tools einhergehen. Das macht es ideal für tägliche Supportaufgaben und Routineüberwachung.
Sobald Sie mit einem Remote-Gerät verbunden sind, ist das Aufnehmen eines Screenshots unkompliziert. Sie klicken einfach auf die Screenshot-Schaltfläche und das Bild wird direkt auf Ihrem lokalen Computer gespeichert. Es ist nicht nötig, Anzeigetreiber anzupassen oder Bilder manuell in andere Programme einzufügen. Da AnyViewer unbeaufsichtigten Zugriff unterstützt, können Sie Bildschirme auch dann erfassen, wenn niemand angemeldet ist, was für die Überprüfung von Servern oder Hintergrundaufgaben nützlich ist.
AnyViewer beseitigt auch häufige technische Hindernisse. Sie müssen keine Firewalls konfigurieren, Ports öffnen oder Systemrichtlinien ändern. Es zeigt zuverlässig den echten Bildschirm ohne Probleme mit schwarzen Anzeigen an, und alle Bilddaten werden während der Übertragung mit starker Verschlüsselung geschützt. Indem es Geschwindigkeit, Einfachheit und Sicherheit kombiniert, macht AnyViewer die Erfassung von Remote-Screenshots viel einfacher und effizienter.
Schritt 1. Installieren und starten Sie AnyViewer auf beiden Computern. Gehen Sie zu Log in > Sign up, um ein AnyViewer-Konto zu erstellen. (Wenn Sie bereits auf der offiziellen Website registriert sind, können Sie sich direkt anmelden.)
Schritt 2. Dann können Sie sehen, dass Sie sich erfolgreich bei AnyViewer angemeldet haben. Ihr Gerät wird automatisch dem Konto zugewiesen, bei dem Sie angemeldet sind.
Schritt 3. Melden Sie sich auf den beiden Geräten mit demselben AnyViewer-Konto an; Gehen Sie auf Ihrem lokalen Gerät zu Gerät, und dann können Sie eine direkte Verbindung durch Klicken auf Ein-Klick-Steuerung herstellen.
Dann können Sie den entfernten Bildschirm auf die gleiche Weise erfassen wie auf einem lokalen Computer.
Vergleich: PowerShell vs. AnyViewer
| Funktion | PowerShell / Skripte | AnyViewer |
|---|---|---|
| Einrichtungsaufwand | Hoch (Erfordert Programmierung & WinRM-Konfiguration) | Niedrig (Installieren & Loslegen) |
| Sitzungsverwaltung | Erfasst oft einen Schwarzen Bildschirm (Sitzung 0) | Erfasst den Sichtbaren Desktop (Automatische Handhabung) |
| Sicherheit | Erfordert das Lockern von Ausführungsrichtlinien | Verwendet ECC-Ende-zu-Ende-Verschlüsselung |
| Bester Anwendungsfall | Massenbereitstellung (100 PCs gleichzeitig) | Fehlerbehebung an bestimmten Maschinen |
Fazit
Während PowerShell und CMD leistungsstarke Automatisierungsmöglichkeiten bieten, sind sie aufgrund der Sitzung-0-Isolation und komplexer Berechtigungen oft ungeeignet für grafische Aufgaben wie Bildschirmaufnahmen.
Für Administratoren, die zuverlässige, hochwertige visuelle Protokolle ohne das Risiko von schwarzen Bildschirmen oder Sicherheitslücken benötigen, ist ein dediziertes Tool wie AnyViewer die professionelle Wahl. Es ermöglicht Ihnen, sich darauf zu konzentrieren, was auf dem Bildschirm ist, anstatt sich darum zu sorgen, wie man es aufnimmt.
FAQs
1. Kann PowerShell wirklich einen Screenshot von einem Remote-Computer machen?
Ja, PowerShell kann einen Screenshot erstellen, indem ein Skript auf dem Remote-Computer über PowerShell-Remoting ausgeführt wird. Die Aufnahme hängt von der aktiven Benutzersitzung und den Berechtigungen ab.
2. Wo wird der Screenshot bei Verwendung von PowerShell-Remoting gespeichert?
Der Screenshot wird auf dem Remote-Computer gespeichert, nicht auf dem lokalen Rechner. Sie müssen einen beschreibbaren Pfad auf dem Zielgerät angeben, wie z.B. C:\Temp.
3. Warum zeigen PowerShell-Screenshots manchmal einen schwarzen Bildschirm?
Dies geschieht normalerweise, weil das Skript in einer nicht interaktiven Sitzung läuft, wie z.B. Session 0, die nicht auf den sichtbaren Desktop zugreifen kann.
4. Welche .NET-Komponenten sind für die PowerShell-Bildschirmaufnahme erforderlich?
Das Skript benötigt System.Drawing zum Erstellen und Speichern von Bildern und System.Windows.Forms zum Erkennen der Bildschirmauflösung und Anzeigeinformationen.
5. Warum ist AnyViewer einfacher als PowerShell für Remote-Screenshots?
AnyViewer erfasst den sichtbaren Desktop direkt und speichert die Bilder auf dem lokalen Computer. Es vermeidet Skripterstellung, Sitzungsprobleme und Berechtigungsprobleme, was es für den täglichen Gebrauch schneller macht.