Comment utiliser PowerShell pour prendre une capture d'écran d'un ordinateur distant
Vous pouvez apprendre à utiliser PowerShell pour prendre une capture d'écran d'un ordinateur distant via des lignes de commande. Cet aperçu couvre les meilleures techniques pour capturer des images sur un ordinateur distant Windows.
Comment utiliser PowerShell pour capturer l'écran d'un ordinateur distant
PowerShell est largement utilisé par les administrateurs informatiques pour l'automatisation à distance et la gestion des systèmes, c'est donc souvent le premier outil envisagé lorsqu'il est nécessaire de capturer l'écran d'un ordinateur distant. En théorie, PowerShell peut interagir avec les composants graphiques de Windows via les bibliothèques .NET, rendant la capture d'écran possible. En pratique, cependant, l'exécution à distance introduit des limitations majeures liées aux sessions utilisateur et aux autorisations. Cela fonctionne en utilisant la communication à distance PowerShell pour exécuter le code de capture d'écran à distance. L'image est enregistrée sur l'ordinateur distant, et non sur l'ordinateur local.
Étape 1. Exécutez le script PowerShell sur l'ordinateur cible, manuellement, via une tâche planifiée, ou dans le cadre d'un script automatisé. La capture d'écran sera effectuée sur cette machine au moment où le script s'exécute.
Étape 2. Chargez les assemblys .NET requis en utilisant Add-Type. L'assembly System.Drawing est utilisée pour créer et gérer les données d'image, tandis que System.Windows.Forms est nécessaire pour détecter les informations d'écran telles que la résolution.
Étape 3. Définissez un chemin de sortie où la capture d'écran sera enregistrée. Ce chemin doit exister et être accessible en écriture, par exemple un dossier comme C:\Temp, pour garantir que le fichier image puisse être créé avec succès.
Étape 4. Détectez la résolution de l'écran en lisant les limites de l'écran principal depuis System.Windows.Forms.Screen. Cette étape garantit que la capture d'écran correspond à la taille complète de l'écran visible.
Étape 5. Créez un objet bitmap en mémoire en utilisant la largeur et la hauteur d'écran détectées. Ce bitmap agit comme une image vierge qui contiendra le contenu de l'écran capturé.
Étape 6. Générez un objet graphique à partir du bitmap. Cet objet graphique est responsable du dessin et de la copie des données visuelles dans le bitmap.
Étape 7. Utilisez la méthode CopyFromScreen pour copier tous les pixels visibles de l'écran dans le bitmap. C'est à cette étape que la capture d'écran réelle est effectuée.
Étape 8. Enregistrez le bitmap en tant que fichier image et libérez les ressources système en supprimant les objets graphiques et bitmap. La capture d'écran peut ensuite être consultée ultérieurement pour le dépannage ou la documentation.
Vous pouvez suivre cet exemple pour utiliser PowerShell afin de capturer l'écran d'un ordinateur distant :
# Définir le nom de l'ordinateur distant
$RemoteComputer = "REMOTE-PC-NAME"
# Définir le chemin d'enregistrement de la capture d'écran sur l'ordinateur distant
$OutputPath = "C:\Temp\PowerShellScreenCapture.jpg"
Invoke-Command -ComputerName $RemoteComputer -ScriptBlock {
Add-Type -AssemblyName System.Drawing Add-Type -AssemblyName System.Windows.Forms
# Obtenir la résolution de l'écran principal $ScreenBounds = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds
# Créer un bitmap correspondant à la résolution de l'écran $Bitmap = New-Object System.Drawing.Bitmap ` $ScreenBounds.Width, $ScreenBounds.Height
# Créer un objet graphique $Graphics = [System.Drawing.Graphics]::FromImage($Bitmap)
# Copier le contenu de l'écran dans le bitmap $Graphics.CopyFromScreen( $ScreenBounds.Location, [System.Drawing.Point]::Empty, $ScreenBounds.Size )
# Enregistrer la capture d'écran $Bitmap.Save($using:OutputPath, [System.Drawing.Imaging.ImageFormat]::Jpeg)
# Nettoyer $Graphics.Dispose() $Bitmap.Dispose() }
🔥La méthode la plus simple pour prendre des captures d'écran à distance : AnyViewer
Pour le personnel informatique et les travailleurs à distance qui souhaitent des résultats rapides sans scripts complexes, AnyViewer est un choix pratique. Il offre un moyen simple de capturer des écrans distants tout en évitant les problèmes de configuration et d'autorisations souvent liés aux outils en ligne de commande. Cela le rend idéal pour les tâches de support quotidiennes et la surveillance de routine.
Une fois connecté à un appareil distant, prendre une capture d'écran est simple. Il suffit de cliquer sur le bouton Capture d'écran, et l'image est enregistrée directement sur votre ordinateur local. Il n'est pas nécessaire d'ajuster les pilotes d'affichage ou de coller manuellement les images dans d'autres programmes. Parce qu'AnyViewer prend en charge l'accès sans surveillance, vous pouvez capturer des écrans même lorsque personne n'est connecté, ce qui est utile pour vérifier les serveurs ou les tâches en arrière-plan.
AnyViewer supprime également les barrières techniques courantes. Vous n'avez pas besoin de configurer de pare-feu, d'ouvrir des ports ou de modifier les politiques système. Il affiche de manière fiable l'écran réel sans problèmes d'affichage noir, et toutes les données d'image sont protégées par un chiffrement robuste pendant le transfert. En combinant vitesse, simplicité et sécurité, AnyViewer rend la capture de captures d'écran à distance beaucoup plus facile et plus efficace.
Étape 1. Installez et lancez AnyViewer sur les deux ordinateurs. Allez dans Connexion > S'inscrire pour créer un compte AnyViewer. (Si vous avez déjà créé un compte sur son site officiel, vous pouvez vous connecter directement.)
Étape 2. Ensuite, vous pouvez constater que vous êtes connecté avec succès à AnyViewer. Votre appareil sera automatiquement assigné au compte avec lequel vous vous êtes connecté.
Étape 3. Connectez-vous avec le même compte AnyViewer sur les deux appareils ; Sur votre appareil local, allez dans Appareil, puis vous pouvez établir une connexion directe en cliquant sur Contrôle en un clic.
Vous pouvez ensuite capturer l'écran distant de la même manière que sur un ordinateur local.
Comparaison : PowerShell vs. AnyViewer
| Fonctionnalité | PowerShell / Scripts | AnyViewer |
|---|---|---|
| Difficulté d'installation | Élevée (Nécessite du codage & config. WinRM) | Faible (Installez & Utilisez) |
| Gestion de session | Capture souvent un Écran Noir (Session 0) | Capture le Bureau Visible (Gestion automatique) |
| Sécurité | Nécessite d'abaisser les politiques d'exécution | Utilise un Chiffrement ECC de bout en bout |
| Cas d'utilisation idéal | Déploiement de masse (100 PC à la fois) | Dépannage de machines spécifiques |
Conclusion
Bien que PowerShell et CMD offrent de puissantes capacités d'automatisation, ils sont souvent mal adaptés aux tâches graphiques comme la capture d'écran en raison de l'isolation de la Session 0 et des complexités de permissions.
Pour les administrateurs qui ont besoin de journaux visuels fiables et haute fidélité sans risquer un écran noir ou des failles de sécurité, un outil dédié comme AnyViewer est le choix professionnel. Il vous permet de vous concentrer sur ce qui est à l'écran, plutôt que de vous soucier de comment le capturer.
FAQ
1. PowerShell peut-il vraiment capturer l'écran d'un ordinateur distant ?
Oui, PowerShell peut capturer un écran en exécutant un script sur l'ordinateur distant à l'aide de la communication à distance PowerShell. La capture dépend de la session utilisateur active et des autorisations.
2. Où est enregistrée la capture d'écran lors de l'utilisation de la communication à distance PowerShell ?
La capture d'écran est enregistrée sur l'ordinateur distant, et non sur la machine locale. Vous devez spécifier un chemin accessible en écriture sur l'appareil cible, tel que C:\Temp.
3. Pourquoi les captures d'écran PowerShell affichent-elles parfois un écran noir ?
Cela se produit généralement parce que le script s'exécute dans une session non interactive, comme la Session 0, qui ne peut pas accéder au bureau visible.
4. Quels composants .NET sont nécessaires pour la capture d'écran PowerShell ?
Le script nécessite System.Drawing pour créer et enregistrer les images, et System.Windows.Forms pour détecter la résolution d'écran et les informations d'affichage.
5. Pourquoi AnyViewer est-il plus simple que PowerShell pour les captures d'écran à distance ?
AnyViewer capture directement le bureau visible et enregistre les images sur l'ordinateur local. Il évite le scriptage, les problèmes de session et les problèmes d'autorisations, le rendant plus rapide pour un usage quotidien.