25

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

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


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

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

11 ответов11

40

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

Когда на безопасном рабочем столе инструменты доступности все еще работают просто отлично, поэтому я использовал свою копию 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 на самом деле может работать, он просто не находится под контекст вашего пользователя - с учетом этого, если вы хотите использовать копию Paint вместо Fast Stone Capture, сделайте снимок экрана, а затем запустите Paint с помощью функции экранной клавиатуры, она может работать точно так же!

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

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

19

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

17

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

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

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

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

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

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.

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

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, Ctrl+Alt+Del и т.д.)

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

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

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

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

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

2

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

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
    
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/, чтобы загрузить его.

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

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

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. Нажмите ОК.

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

-1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .