Как использовать PowerShell для создания снимка экрана удаленного компьютера
Вы можете узнать, как использовать PowerShell для создания снимка экрана удаленного компьютера с помощью командной строки. Этот обзор охватывает лучшие методы для захвата изображений на удаленном компьютере с Windows.
Как использовать PowerShell для создания снимка экрана удаленного компьютера
PowerShell широко используется ИТ-администраторами для удаленной автоматизации и управления системами, поэтому он часто является первым инструментом, который приходит на ум, когда требуется сделать снимок экрана удаленного компьютера. Теоретически, PowerShell может взаимодействовать с графическими компонентами Windows через библиотеки .NET, что делает захват экрана возможным. Однако на практике удаленное выполнение вводит серьезные ограничения, связанные с пользовательскими сессиями и разрешениями. Это работает путем использования удаленного взаимодействия PowerShell для запуска кода создания снимка экрана удаленно. Изображение сохраняется на удаленном компьютере, а не на локальном.
Шаг 1. Запустите сценарий PowerShell на целевом компьютере вручную, через запланированное задание или как часть автоматизированного скрипта. Снимок экрана будет сделан на этой машине в момент выполнения скрипта.
Шаг 2. Загрузите необходимые сборки .NET с помощью Add-Type. Сборка System.Drawing используется для создания и управления данными изображения, а System.Windows.Forms требуется для получения информации об экране, такой как разрешение.
Шаг 3. Определите путь для сохранения снимка экрана. Этот путь должен существовать и быть доступным для записи, например, папка вроде C:\Temp, чтобы гарантировать успешное создание файла изображения.
Шаг 4. Определите разрешение экрана, прочитав границы основного экрана из System.Windows.Forms.Screen. Этот шаг гарантирует, что снимок экрана соответствует полному видимому размеру экрана.
Шаг 5. Создайте в памяти объект растрового изображения (bitmap), используя определенные ширину и высоту экрана. Этот растровый объект служит пустым изображением, которое будет содержать захваченное содержимое экрана.
Шаг 6. Создайте графический объект из растрового изображения. Этот графический объект отвечает за отрисовку и копирование визуальных данных в растровое изображение.
Шаг 7. Используйте метод CopyFromScreen для копирования всех видимых пикселей экрана в растровое изображение. Это шаг, на котором фактически захватывается снимок экрана.
Шаг 8. Сохраните растровое изображение как файл изображения и освободите системные ресурсы, удалив графический и растровый объекты. Снимок экрана затем можно будет просмотреть позже для устранения неполадок или документирования.
Вы можете следовать этому примеру, чтобы использовать PowerShell для создания снимка экрана удаленного компьютера:
# Определите имя удаленного компьютера
$RemoteComputer = "REMOTE-PC-NAME"
# Определите путь для сохранения снимка экрана на удаленном компьютере
$OutputPath = "C:\Temp\PowerShellScreenCapture.jpg"
Invoke-Command -ComputerName $RemoteComputer -ScriptBlock {
Add-Type -AssemblyName System.Drawing Add-Type -AssemblyName System.Windows.Forms
# Получить разрешение основного экрана $ScreenBounds = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds
# Создать растровое изображение, соответствующее разрешению экрана $Bitmap = New-Object System.Drawing.Bitmap ` $ScreenBounds.Width, $ScreenBounds.Height
# Создать объект графики $Graphics = [System.Drawing.Graphics]::FromImage($Bitmap)
# Скопировать содержимое экрана в растровое изображение $Graphics.CopyFromScreen( $ScreenBounds.Location, [System.Drawing.Point]::Empty, $ScreenBounds.Size )
# Сохранить снимок экрана $Bitmap.Save($using:OutputPath, [System.Drawing.Imaging.ImageFormat]::Jpeg)
# Очистка $Graphics.Dispose() $Bitmap.Dispose() }
🔥Самый простой способ делать удалённые скриншоты: AnyViewer
Для ИТ-специалистов и удалённых сотрудников, которые хотят быстрых результатов без сложных скриптов, AnyViewer — практичный выбор. Он предоставляет простой способ захвата удалённых экранов, избегая проблем с настройкой и разрешениями, которые часто возникают при использовании инструментов на основе команд. Это делает его идеальным для ежедневных задач поддержки и рутинного мониторинга.
После подключения к удалённому устройству сделать снимок экрана просто. Вам достаточно нажать кнопку «Скриншот», и изображение будет сохранено прямо на ваш локальный компьютер. Нет необходимости настраивать драйверы дисплея или вручную вставлять изображения в другие программы. Поскольку AnyViewer поддерживает доступ без участия пользователя, вы можете захватывать экраны, даже когда никто не вошёл в систему, что полезно для проверки серверов или фоновых задач.
AnyViewer также устраняет распространённые технические барьеры. Вам не нужно настраивать брандмауэры, открывать порты или изменять системные политики. Он надёжно отображает реальный экран без проблем с чёрным экраном, и все данные изображения защищены надёжным шифрованием во время передачи. Сочетая скорость, простоту и безопасность, AnyViewer делает захват удалённых скриншотов гораздо проще и эффективнее.
Шаг 1. Установите и запустите AnyViewer на обоих компьютерах. Перейдите в Log in > Sign up, чтобы создать учётную запись AnyViewer. (Если вы уже зарегистрировались на официальном сайте, вы можете войти напрямую.)
Шаг 2. Затем вы увидите, что успешно вошли в AnyViewer. Ваше устройство будет автоматически привязано к учетной записи, в которую вы вошли.
Шаг 3. Войдите в ту же учетную запись AnyViewer на двух устройствах; На вашем локальном устройстве перейдите в Устройства, и затем вы сможете установить прямое подключение, нажав Управление в один клик.
Затем вы сможете захватывать удаленный экран так же, как на локальном компьютере.
Сравнение: PowerShell и AnyViewer
| Функция | PowerShell / Скрипты | AnyViewer |
|---|---|---|
| Сложность настройки | Высокая (Требуется программирование и настройка WinRM) | Низкая (Установил и работай) |
| Управление сеансами | Часто захватывает Черный экран (Сессия 0) | Захватывает Видимый рабочий стол (Автоматическая обработка) |
| Безопасность | Требует ослабления политик выполнения | Использует сквозное ECC-шифрование |
| Лучший сценарий использования | Массовое развертывание (100 ПК одновременно) | Устранение неполадок на конкретных машинах |
Заключение
Хотя PowerShell и CMD предлагают мощные возможности автоматизации, они часто плохо подходят для графических задач, таких как захват экрана, из-за изоляции Сессии 0 и сложностей с разрешениями.
Для администраторов, которым нужны надежные, высококачественные визуальные логи без риска черных экранов или уязвимостей безопасности, специализированный инструмент, такой как AnyViewer, является профессиональным выбором. Он позволяет сосредоточиться на том, что находится на экране, а не беспокоиться о том, как это захватить.
Часто задаваемые вопросы
1. Может ли PowerShell действительно сделать снимок экрана удаленного компьютера?
Да, PowerShell может сделать снимок экрана, запустив скрипт на удаленном компьютере с использованием удаленного взаимодействия PowerShell. Захват зависит от активного пользовательского сеанса и разрешений.
2. Где сохраняется снимок экрана при использовании удаленного взаимодействия PowerShell?
Снимок экрана сохраняется на удаленном компьютере, а не на локальной машине. Вы должны указать доступный для записи путь на целевом устройстве, например, C:\Temp.
3. Почему снимки экрана PowerShell иногда показывают черный экран?
Обычно это происходит потому, что скрипт выполняется в неинтерактивном сеансе, например, в Сеансе 0, который не имеет доступа к видимому рабочему столу.
4. Какие компоненты .NET необходимы для захвата экрана в PowerShell?
Скрипту требуется System.Drawing для создания и сохранения изображений, а также System.Windows.Forms для определения разрешения экрана и информации о дисплее.
5. Почему AnyViewer проще, чем PowerShell, для удаленных снимков экрана?
AnyViewer захватывает видимый рабочий стол напрямую и сохраняет изображения на локальный компьютер. Он позволяет избежать написания скриптов, проблем с сеансами и разрешениями, что делает его быстрее для повседневного использования.