Как сделать скриншот безопасного рабочего стола Windows?
По умолчанию приглашение UAC в Windows Vista/7/8 отображается на защищенном рабочем столе. К сожалению, клавиша Print Screen, кажется, не имеет никакого эффекта при просмотре защищенного рабочего стола. Я вижу причину этого - ни одно приложение пользовательского режима не должно иметь возможность захватывать содержимое безопасного рабочего стола.
Однако мой вопрос остается: есть ли способ получить скриншот этого рабочего стола?
Изменить: возможно, это поможет, если я объясню проблему.
В настоящее время у меня установлена Windows 8, и у меня есть небольшой монитор на основе DisplayLink, который я хотел бы использовать. Этот драйвер был только что выпущен и отлично работает - за исключением того, что он ломается на безопасном рабочем столе. Я хочу опубликовать отчет об ошибках на форумах, и для этого мне нужен скриншот. Очевидно, что проблема не проявится на стандартном рабочем столе - и запуск Windows на виртуальной машине невозможен, поскольку Windows 8 требует аппаратной виртуализации (которой у меня нет), и заставить USB-мониторы работать с виртуальной машиной в любом случае сложно.
11 ответов
Я нашел довольно "черную шляпу" способ сделать это...
Когда на безопасном рабочем столе инструменты доступности все еще работают просто отлично, поэтому я использовал свою копию FastStone Capture Portable и пошел к c:\windows\system32
и переименован osk.exe
в osk.exe.old
и скопировал / переименовал fscapture.exe
из каталога Faststone в osk.exe
внутри каталога system32.
Затем я подошел к приглашению UAC, нажал Win Key+U и нажал на "экранную клавиатуру".
И... FastStone Capture запустилась, хотя это была всего лишь пробная версия... использование ее в этом режиме не позволяет получить доступ к моим лицензионным данным... Я смог сделать снимок и сохранить его... хотя, когда я думал, что я сохраняю на рабочий стол, на самом деле он пошел c:\windows\syswow64\config\systemprofile\desktop
... Ты узнаешь что-то новое каждый день!
Исходя из вышесказанного, я всегда думал, что защищенный рабочий стол UAC - это среда с повышенными правами, использующая ваши собственные учетные данные, но, я думаю, он фактически запускается под System
пользователь - так, Print Screen может на самом деле работать, это просто не в контексте вашего пользователя - с учетом этого, если бы вы использовали копию краски вместо Fast Stone Capture, сделайте скриншот, затем запустите Paint через На экране клавиатура взломать, он может просто работать так же!
редактировать --- обновить ---
Краска в окне! Просто проверил мою теорию, и она не сработала, я не уверен в точной причине, но, думаю, если вы используете какой-либо инструмент для захвата экрана и мой метод выше, он должен работать.
Однако мой вопрос остается: есть ли способ получить скриншот этого рабочего стола?
Процесс работает как SYSTEM
и установленный в соответствующем месте может обойти UIPI и перейти на защищенный рабочий стол.
Используйте существующие программы, которые делают это - RealVNC (не бесплатная версия, к сожалению) и UltraVNC, например.
Запустите сервер на своем ПК и подключите к нему клиент с другого компьютера. Сделайте скриншот окна клиента.
Хотя, наверное, так же легко сделать снимок экрана.
Есть еще лучший способ. С помощью двух бесплатных инструментов с открытым исходным кодом, Greenshot и Process Hacker, вы сможете создать скриншот защищенного рабочего стола со следующими преимуществами:
- Не нужно тратить время, вносить изменения в системный файл или реестр
- Вам не нужно ничего вводить в командной строке (для пользователей мыши это полезно)
Проще выполнить и, кроме первой настройки, намного меньше времени. Давайте начнем!
Загрузите Greenshot и настройте параметры, чтобы он автоматически сохранял изображение всего экрана в папке, если вы нажимаете клавишу Print Screen.
Скачать Process Hacker. Если вы видите главное окно Process Hacker, убедитесь, что Greenshot закрыт, и нажмите "Hacker" и "Run as..."
Выберите исполняемый файл Greenshot в "Программе". В "Имя пользователя" щелкните список и выберите "NT AUTHORITY\SYSTEM". "Тип" должен быть Service, Session ID 1 и в "Desktop" выбрать "WinSta0\Winlogon". Это важно!
Теперь вы уже готовы к работе, нажмите "ОК", когда Greenshot закончит загрузку (должно быть коротким), откройте окно UAC и нажмите клавишу "Печать". Теперь вы должны увидеть изображение защищенного рабочего стола в указанной папке в Greenshot! Если вам больше не нужно создавать скриншоты UAC, просто убейте процесс Greenshot.
Повеселись! Я подтвердил и протестировал это сам после нескольких тестов, потому что мне пока не нравились решения здесь.
Я предложу другой вариант, чем использование виртуальной машины, 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 (бразильский португальский язык):
Делайте скриншоты где угодно
Безопасный рабочий стол активен всякий раз, когда происходит одно из следующих действий: пользователь блокирует свой рабочий стол (Windows+L), активируется заставка (когда пользователь не вошел в систему) или по умолчанию, когда контроль учетных записей представляет запрос.
Источник: XPDM против WDDM
Идея заимствована из ответа Уильяма Хилсума, но есть разница: вам не нужно заменять какой-либо системный файл, и легче отменить изменения. Выполнив следующие действия, нажмите Win+U всякий раз, когда вам нужно сделать снимок экрана безопасного рабочего стола.
Переопределить утилиту Ease of Access
- Откройте командную строку от имени администратора.
Введите или вставьте следующую команду и замените
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.
Отменить изменения
- Откройте командную строку от имени администратора.
Введите или вставьте следующую команду и нажмите Enter:
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Utilman.exe" /f
Другой вариант - использовать 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/ чтобы загрузить его.
Я сам не пробовал это решение, но кажется довольно приличным, учитывая, что вам нужно взломать, чтобы решить вашу проблему.
Попробуйте. Надеюсь, я помог.
Если вы установили TeamViewer на свой компьютер и перезагрузили компьютер, teamviewer сможет получить доступ к приглашению UAC. С другого компьютера, использующего teamviewer, вы можете сделать снимок экрана всего своего рабочего стола, пока teamviewer виден, но не имеет фокуса, и у вас будет скриншот приглашения UAC.
Я не знаю много о безопасном рабочем столе, но теоретически вы могли бы открыть Snipping Tool и использовать его для создания снимка экрана таким образом. Нет редактирования реестра, нет переименования файлов, нет. Это очень простой и простой метод. Либо найдите "Snipping Tool", либо откройте "Run" (сочетание клавиш: Win+R) и введите "snippingtool" или "snippingtool.exe".
В любом случае, откройте его и используйте режим "Полный экран". В Windows 10 нажмите стрелку рядом с кнопкой "Режим" и выберите "Полноэкранное отображение". В старых версиях Windows нажмите стрелку рядом с кнопкой "Создать" и выберите "Полноэкранный фрагмент". Это автоматически копируется в окно Snipping Tool, где вы можете добавить заметки, сохранить фрагмент или отправить его по электронной почте из окна Snipping Tool. См. Справочную страницу Microsoft для получения дополнительной информации.
Отключите безопасный рабочий стол для UAC, выполнив следующие действия:
- Используйте сочетание клавиш Windows + R, чтобы открыть команду "Выполнить".
- Введите gpedit.msc и нажмите кнопку ОК, чтобы открыть редактор локальной групповой политики.
- Найдите следующий путь:
Конфигурация компьютера> Настройки Windows> Настройки безопасности> Параметры безопасности
- Справа дважды щелкните "Контроль учетных записей пользователей": переключитесь на безопасный рабочий стол при запросе политики повышения прав.
Выберите опцию Отключено.
- Нажмите Применить.
- Нажмите ОК.
После этого вы можете использовать обычную экранную клавишу печати в любом приложении с повышенными правами.
Я использую Windows Vista SP2. Я не встречал такого рода ограничений выше. Мой экран печати работает как шарм. Вы не можете избавиться от этого, если не отключите UAC (UcController). Для этого используйте msconfig.exe
, Посмотрите "отключить настройки UAC" такая вещь там. Чем установить зеленый выстрел; это полезная программа, я думаю. Я использовал этот метод без хлопот.