Автоматический захват экрана (не вывод текста) длинной команды powershell - PullRequest
0 голосов
/ 10 января 2019

Есть ли способ автоматически сделать один или несколько бросков, чтобы захватить весь вывод команды powershell? Было бы неплохо увидеть оригинальную команду и / или окно powershell.

Это необходимо для того, чтобы правительственная группа по соблюдению правил находила утешение в том, что изображение - это больше работы, чем изменение текста.

Эта функция New-Screenshot выглядит многообещающе, но использует экран печати для сохранения изображения в буфер обмена. Другой метод выглядит очень многообещающе, когда они захватывают ВСЕ текст в буфере $Host.UI.RawUI.GetBufferContents.

Шаги для автоматизации

  1. [Готово] Выполнить clear
  2. [Готово] Запустить команду
    • возможно, передайте команду на more, чтобы увидеть ее разбивкой на страницы
  3. [Готово] Нажмите на экран печати только для командного окна и сохраните в файл
  4. Прокрутите вниз до следующей страницы и повторяйте шаг 3, пока вывод не будет полностью захвачен
  5. Объедините все изображения в одно изображение.
  6. Повторите шаг 1 и выполните следующую команду до завершения.

Другой способ сделать это - сделать текст слишком маленьким, чтобы он поместился в одном окне. Я бы предпочел первое решение, но не могу найти способ прокрутить окно с помощью Powershell.

1 Ответ

0 голосов
/ 11 января 2019

Почему вы не используете встроенный инструмент Windows PSR?

Это то, что в Windows позволяет захватывать в реальном времени, когда вы нажимаете в любом месте экрана.

Регистратор проблем Windows (PSR): быстрое и простое документирование ваших шагов и процедур

Средство записи проблемных шагов - это инструмент, который доступен в Windows с Windows 7 (клиент) / Windows 2008 R2.

В этом сообщении Jump вы сможете найти более подробную информацию о PSR. (или регистратор шагов с ошибками).

Короче говоря:

• Это встроенный инструмент Windows, который
• позволяет делать снимки экрана по щелчку мыши
• и добавьте к ней комментарии

Хотя ссылка говорит о устаревшей ОС, она есть в каждой текущей версии ОС Windows. Это сохраняет в файл .htm, который можно просмотреть в любом браузере.

Или, если вы хотите сделать это с PowerShell, см. Этот сценарий.

Автоматизация снимков экрана с помощью PowerShell

<#
.SYNOPSIS

    Get-TimedScreenshot

    Author: Chris Campbell (@obscuresec)
    License: BSD 3-Clause

.DESCRIPTION

    A function that takes screenshots and saves them to a folder.

.PARAMETER $Path

    Specifies the folder path.

.PARAMETER $Interval

    Specifies the interval in seconds between taking screenshots.

.PARAMETER $EndTime

    Specifies when the script should stop running in the format HH-MM 

.EXAMPLE 

    PS C:\> Get-TimedScreenshot -Path c:\temp\ -Interval 30 -EndTime 14:00 

Тем не менее, даже с этим вам теперь нужно собрать это в слово doc и ссылку или просмотреть каждый вручную, чтобы получить желаемый снимок.

Обновление для OP

Что касается…

Может работать временный скриншот, но мне нужно найти способ автоматизировать прокрутка вниз до конца вывода.

... вы можете просто использовать Sendkeys pagedown (я знаю, я знаю, sendkeys - это взлом) или взглянуть на использование selenium-powershell для дополнительной автоматизации графического интерфейса любого экрана, на который вы нацеливаетесь. WASP все еще также и опция, хотя больше не работал.

...