Как сделать скриншот безопасного рабочего стола Windows?

25

По умолчанию приглашение UAC в Windows Vista / 7/8 отображается на защищенном рабочем столе. К сожалению, Print Screenключ не оказывает никакого влияния при просмотре защищенного рабочего стола. Я вижу причину этого - ни одно приложение пользовательского режима не должно иметь возможность захватывать содержимое безопасного рабочего стола.

Однако мой вопрос остается: есть ли способ получить скриншот этого рабочего стола?


Изменить: возможно, это поможет, если я объясню проблему.

В настоящее время у меня установлена ​​Windows 8, и у меня есть небольшой монитор на основе DisplayLink, который я хотел бы использовать. Этот драйвер был только что выпущен и отлично работает - за исключением того, что он ломается на безопасном рабочем столе. Я хочу опубликовать отчет об ошибках на форумах, и для этого мне нужен скриншот. Очевидно, что проблема не проявится на стандартном рабочем столе - и запуск Windows на виртуальной машине невозможен, поскольку Windows 8 требует аппаратной виртуализации (которой у меня нет), и заставить USB-мониторы работать с виртуальной машиной в любом случае сложно.

Натан Осман
источник
5
Вы можете запустить его на виртуальной машине.
Jdigital
1
@ user8368: Это не вариант, так как я пытаюсь получить скриншот, чтобы продемонстрировать конкретную аппаратную проблему, которая может не отображаться на виртуальной машине. Это также не вариант с точки зрения лицензирования. И, наконец, у меня нет аппаратной виртуализации, так что это сильно усложнит процесс.
Натан Осман
1
Вы можете настроить приглашение UAC не использовать безопасный рабочий стол через (локальную) групповую политику.
billc.cn
1
@ billc.cn: Я знаю, но тогда проблема, с которой я пытаюсь сделать скриншот, не проявится.
Натан Осман
1
@ GeorgeEdison: ты уверен? При отключении безопасного рабочего стола приглашение UAC будет по-прежнему срабатывать. Но поскольку его нет на безопасном рабочем столе, другие приложения могут снимать его.
surfasb

Ответы:

40

Я нашел довольно "черную шляпу" способ сделать это ...

введите описание изображения здесь

Находясь на безопасном рабочем столе, инструменты специальных возможностей по-прежнему работают просто отлично ... поэтому я использовал свою копию FastStone Capture Portable , перешел c:\windows\system32и переименовал osk.exeее osk.exe.oldи скопировал / переименовал fscapture.exeиз каталога Faststone в каталог osk.exesystem32.

Затем я пошел к приглашению UAC и нажал Win Key+ U, и нажал на «экранную клавиатуру» вариант.

И ... FastStone Capture запустилась, хотя это была всего лишь пробная версия ... использование ее в этом режиме не позволяет получить доступ к моей информации о лицензии ... Я смог сделать снимок и сохранить его ... хотя, когда я думал, что я сохраняю на свой рабочий стол, на самом деле он пошел c:\windows\syswow64\config\systemprofile\desktop... вы узнаете что-то новое каждый день!

Исходя из вышесказанного, я всегда думал, что защищенный рабочий стол UAC - это среда с повышенными правами, использующая ваши собственные учетные данные, но, я думаю, он действительно запускается под Systemпользователем - так что, на Print Screenсамом деле , может работать, он просто не находится в контексте вашего пользователь - с учетом этого, если бы вы использовали копию Paint вместо Fast Stone Capture, сделайте снимок экрана, а затем запустите Paint через взлом на экранной клавиатуре, он может работать точно так же!

редактировать --- обновить ---

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

Уильям Хилсум
источник
3
Это очень умное использование инструментов специальных возможностей :)
Натан Осман
2
Я подозреваю, что Paint не запрашивает UIAccessразрешения для приятной игры с UIPI, в то время как другие приложения для специальных возможностей делают это. См UIAccess для приложений автоматизации пользовательского интерфейса над здесь для требований.
ta.speot.is
@ todda.speot.is Интересно, и буду читать, поскольку мне интересно учиться, но, я думаю, что может быть и еще кое-что - я не могу представить, что Faststone Capture реализует это, должно быть, экран печати просто отключен по умолчанию и большинство утилит захвата экрана просто переопределяют поведение по умолчанию ... (я знаю, что у MS есть технология для отключения битов - например, корпоративный пакет MS DRM (забудьте реальное имя) отключает печать экрана и многие другие функции).
Уильям Хилсум
@WilliamHilsum (со ссылкой на ваш предыдущий комментарий): вы имеете в виду групповую политику ?
bwDraco
Интересно, будет ли Снайперский инструмент делать то же самое?
Дитя Божие
19

Возьмите цифровую камеру и сделайте снимок экрана.

LawrenceC
источник
Это также пришло мне в голову. Не так элегантно, но гораздо меньше головной боли.
Paperlantern
17

Однако мой вопрос остается: есть ли способ получить скриншот этого рабочего стола?

Процесс, выполняющийся как SYSTEMи установленный в соответствующем месте, может обойти UIPI и перейти на защищенный рабочий стол.

Используйте существующие программы, которые делают это - RealVNC (не бесплатная версия, к сожалению) и UltraVNC, например.

Запустите сервер на своем ПК и подключите к нему клиент с другого компьютера. Сделайте скриншот окна клиента.

Хотя, наверное, так же легко сделать снимок экрана.

ta.speot.is
источник
1
О, это верно ... У меня есть другая машина, к которой я могу подключиться к VNC и посмотреть на защищенный рабочий стол - я совершенно забыл об этом.
Натан Осман
11

Есть еще лучший способ. С помощью двух бесплатных инструментов с открытым исходным кодом, Greenshot и Process Hacker , вы сможете создать скриншот защищенного рабочего стола со следующими преимуществами :

  • Не нужно тратить время, вносить изменения в системный файл или реестр
  • Вам не нужно ничего вводить в командной строке (для пользователей мыши это полезно)
  • Проще выполнить и, кроме первой настройки, намного меньше времени. Давайте начнем!

    1. Загрузите Greenshot и настройте параметры, чтобы он автоматически сохранял изображение всего экрана в папке, если вы нажимаете клавишу Print Screen.

    2. Скачать Process Hacker. Если вы видите главное окно Process Hacker, убедитесь, что Greenshot закрыт, и нажмите «Hacker» и «Run as ...»

    3. Выберите исполняемый файл Greenshot в «Программе». В «Имя пользователя» щелкните список и выберите «NT AUTHORITY \ SYSTEM». «Тип» должен быть Service, Session ID 1 и в «Desktop» выбрать «WinSta0 \ Winlogon». Это важно!

    4. Теперь вы уже готовы к работе, нажмите «ОК», когда Greenshot закончит загрузку (должно быть коротким), откройте окно UAC и нажмите клавишу «Печать». Теперь вы должны увидеть изображение защищенного рабочего стола в указанной папке в Greenshot! Если вам больше не нужно создавать скриншоты UAC, просто убейте процесс Greenshot.

Повеселись! Я подтвердил и протестировал это сам после нескольких тестов, потому что мне пока не нравились решения здесь.

Testerhood
источник
5

Я предложу другой вариант, чем использование виртуальной машины, VNC или изменение реестра или системных файлов, которые могут быть неприятными или невозможными в некоторых случаях.

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

Во-вторых, вам понадобится PsExec из пакета PsTools , этот инструмент позволит поместить 7capture в Windows Secure Desktop, не меняя системных файлов, просто создав и удалив службу, которая автоматически выполняется PsExec.

Затем с установленным 7capture и извлеченным PsTools в какую-либо папку сделайте следующее:

1) Откройте CMD как администратор.

2) Установите текущую папку в папку, в которую был извлечен PSTools: cd path_to\PSTools

3) Запустите 7capture на рабочем столе Windows Secure с помощью следующей команды: PsExec /h /x /d /s "path_to\7capture.exe"

Где:

-h: если целевая система Vista или выше, запускается ли процесс с повышенным токеном учетной записи, если он доступен.

-x: отобразить пользовательский интерфейс на защищенном рабочем столе Winlogon (только для локальной системы).

-d: не ждать завершения процесса (неинтерактивно).

-s: запустить удаленный процесс в системной учетной записи.

4) Откройте Windows Secure Desktop, который вы хотите сделать снимок. (UAC Prompt, Ctrl + Alt + Del и т. Д.)

5) Используйте Ctrl + PrintScreen, чтобы сделать снимок всего одного окна, или PrintScreen, чтобы сделать снимок всего экрана.

6) Используйте Alt + Tab, чтобы переключиться на 7capture.

7) Просто сохраните файл, где вы хотите. (Если у вас есть проблемы с полноэкранным изображением, просто сохраните его как BMP)

И здесь вы можете увидеть результаты на моем Windows 7 (бразильский португальский язык):

Окно подсказки UAC UAC Подскажите полный экран

Антонио Диас
источник
Этот метод не работает, если ни один пользователь не вошел в систему.
and31415
2

Если вы установили TeamViewer на свой компьютер и перезагрузили компьютер, teamviewer сможет получить доступ к приглашению UAC. С другого компьютера, использующего teamviewer, вы можете сделать снимок экрана всего своего рабочего стола, пока teamviewer виден, но не имеет фокуса, и у вас будет скриншот приглашения UAC.

LPChip
источник
2

Другой вариант - использовать autoitscript (с autoitscript.com).

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

С помощью функции send () вы можете имитировать нажатие клавиши на экране. Взято из примеров на сайте https://www.autoitscript.com/autoit3/docs/functions/Send.htm :

Example()

     Func Example()
          Send("{PRINTSCREEN}")
     EndFunc

Зайдите сюда http://www.autoitscript.com/site/autoit/downloads/, чтобы загрузить его.

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

Попробуйте. Надеюсь, я помог.

PanGalactic
источник
2

Делайте скриншоты где угодно

Безопасный рабочий стол активен всякий раз, когда происходит одно из следующих действий: пользователь блокирует свой рабочий стол (Windows + L), активирует экранную заставку (когда пользователь не вошел в систему) или по умолчанию, когда Контроль учетных записей представляет запрос.

Источник: XPDM против WDDM

Идея заимствована из ответа Уильяма Хилсума, но есть разница: вам не нужно заменять какой-либо системный файл, и легче отменить изменения. Выполнив следующие действия, нажимайте Win+ Uвсякий раз, когда вам нужно сделать снимок экрана безопасного рабочего стола.

Переопределить утилиту Ease of Access

  1. Откройте командную строку от имени администратора.
  2. Введите или вставьте следующую команду и замените X:\Path\to\file.exeее фактическим путем к исполняемому файлу средства захвата экрана по вашему выбору. Затем нажмите Enter.

    reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Utilman.exe" /v "Debugger" /t REG_SZ /d "X:\Path\to\file.exe" /f
    

    Примечание Paint и встроенный инструмент Snipping Tool использовать нельзя: вам нужно полагаться на сторонние программы. Рабочие инструменты , например Lightshot , Greenshot и ShareX .

Отменить изменения

  1. Откройте командную строку от имени администратора.
  2. Введите или вставьте следующую команду и нажмите Enter:

    reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Utilman.exe" /f
    
and31415
источник
1

Я не знаю много о безопасном рабочем столе, но теоретически вы могли бы открыть Snipping Tool и использовать его для создания снимка экрана таким образом. Нет редактирования реестра, нет переименования файлов, нет. Это очень простой и простой метод. Либо найдите «Snipping Tool», либо откройте «Run» (сочетание клавиш: Win + R) и введите «snippingtool» или «snippingtool.exe».

В любом случае, откройте его и используйте режим «Полный экран». В Windows 10 нажмите стрелку рядом с кнопкой «Режим» и выберите «Полноэкранное отображение». В старых версиях Windows нажмите стрелку рядом с кнопкой «Создать» и выберите «Полноэкранный фрагмент». Это автоматически копируется в окно Snipping Tool, где вы можете добавить заметки, сохранить фрагмент или отправить его по электронной почте из окна Snipping Tool. Смотрите страницу помощи Microsoft для получения дополнительной информации.

Дитя божье
источник
0

Отключите безопасный рабочий стол для UAC, выполнив следующие действия:

  1. Используйте сочетание клавиш Windows + R, чтобы открыть команду «Выполнить».
  2. Введите gpedit.msc и нажмите кнопку ОК, чтобы открыть редактор локальной групповой политики.
  3. Найдите следующий путь:

Конфигурация компьютера> Настройки Windows> Настройки безопасности> Параметры безопасности

  1. Справа дважды щелкните «Контроль учетных записей пользователей»: переключитесь на безопасный рабочий стол при запросе политики повышения прав.

Редактор локальной групповой политики

Выберите опцию Отключено.

введите описание изображения здесь

  1. Нажмите Применить.
  2. Нажмите ОК.

После этого вы можете использовать обычную экранную клавишу печати на любом возвышенном приложении.

TarmoPikaro
источник
-1

Я использую Windows Vista SP2. Я не встречал такого рода ограничений выше. Мой экран печати работает как шарм. Вы не можете избавиться от этого , если отключить UAC ( U сер ccount C ontroller). Для этого используйте . Посмотрите "отключить настройки UAC" такая вещь там. Чем установить зеленый выстрел; это полезная программа, я думаю. Я использовал этот метод без хлопот.msconfig.exe

Reayality
источник
ОП хочет сделать скриншот безопасного рабочего стола. Отключение контроля учетных записей отключает безопасный рабочий стол, верно?
Гроностай