如何拍摄Window安全桌面的屏幕截图?


25

默认情况下,Windows Vista / 7/8的UAC提示符显示在安全桌面上。不幸的是,该Print Screen密钥在查看安全桌面时似乎没有任何作用。我可以看到其背后的原因-任何用户模式应用程序都不能捕获安全桌面的内容。

但是,我的问题仍然是:有什么方法可以获取此桌面的屏幕截图?


编辑:如果我解释这个问题,也许会有所帮助。

我当前正在运行Windows 8,并且有一个要使用的基于DisplayLink的小型监视器。该驱动程序刚刚发布,并且运行良好-除了会在安全桌面上损坏之外。我想在那里的论坛上发布一个错误报告,为此,我需要一个屏幕截图。显然,问题不会在标准台式机上显现出来,并且在VM中运行Windows是不可能的,因为Windows 8需要硬件虚拟化(我没有),而使USB显示器与VM配合使用在任何情况下都很难。


5
您可以在虚拟机中运行它。
jdigital 2012年

1
@ user8368:这不是一个选择,因为我试图获取屏幕快照以演示可能无法在VM中显示的特定硬件问题。从许可的角度来看,这也不是一个选择。最后,我没有硬件虚拟化,因此这会使整个过程变得非常困难。
内森·奥斯曼

1
您可以通过(本地)组策略将UAC提示设置为不使用安全桌面。
billc.cn 2012年

1
@ billc.cn:我知道,但是我试图获取屏幕快照的问题不会显现出来。
内森·奥斯曼

1
@GeorgeEdison:确定吗?通过关闭安全桌面,UAC提示仍会触发。但是,由于它不在安全桌面上,因此其他应用程序可以对其进行屏幕截图。
surfasb 2012年

Answers:


40

我发现这样做的方式相当“黑帽子”。

在此处输入图片说明

在安全的桌面上时,可访问性工具仍然可以正常工作...因此,我使用了FastStone Capture Portable的副本,然后转到并重c:\windows\system32命名为它osk.exeosk.exe.oldfscapture.exe从Faststone目录复制/重命名到osk.exesystem32目录中。

然后,我进入UAC提示符并按Win Key+ U,然后单击“屏幕键盘”选项。

而且... FastStone Capture已启动,尽管它只是一个试用...在此模式下使用它无法访问我的许可证详细信息...。以为我要保存到我的桌面上,实际上去了c:\windows\syswow64\config\systemprofile\desktop……您每天都在学习新知识!

基于以上所述,我一直认为UAC安全桌面是使用您自己的凭据的提升环境,但是,我猜它实际上是在System用户下启动的-因此,Print Screen实际上可能会起作用,但它不在您的上下文中用户-考虑到这一点,如果您要使用油漆副本而不是Fast Stone Capture,请截取屏幕截图,然后通过“屏幕键盘” hack启动“油漆”,它可能同样起作用!

编辑-更新-

油漆不在窗外!刚刚测试了我的理论,但它不起作用,我不确定确切的原因,但是,我猜测如果您使用了几乎任何屏幕捕获工具和我上面的方法,它都应该起作用。


3
这是对可访问性工具的非常巧妙的使用:)
Nathan Osman 2012年

2
我怀疑Paint不会要求UIAccess权限与UIPI配合使用,而其他可访问性应用程序却要求。见UIAccess的UI自动化应用这里的要求。
ta.speot。是2012年

@ todda.speot.is很有趣,我会很感兴趣地阅读,但是,我认为可能还有更多内容-我无法想象Faststone Capture会实现这一点,这一定是因为打印屏幕被禁用默认情况下,大多数屏幕捕获实用程序仅覆盖默认行为...(我知道MS具有禁用位的技术-例如,MS DRM企业套件(忘记真实姓名)会禁用打印屏幕和许多其他功能)。
William Hilsum 2012年

@WilliamHilsum(参考您之前的评论):您是在指组策略吗?
bwDraco

我想知道Snipping Tool是否会这样做?
上帝的孩子


17

但是,我的问题仍然是:有什么方法可以获取此桌面的屏幕截图?

SYSTEM以适当的位置运行并安装在适当位置的进程可以绕过UIPI并进入安全桌面。

利用现有的程序来执行此操作,例如RealVNC(不幸的是不是免费版)和UltraVNC。

在PC上运行服务器,然后从另一台计算机将客户端连接到该服务器。拍摄客户端窗口的屏幕截图。

尽管拍摄屏幕照片可能同样容易。


1
哦,是的。。。我有另一台可以通过VNC访问的计算机,可以看到安全的桌面-我完全忘记了这一点。
内森·奥斯曼

11

有更好的方法。借助两个免费的开源工具GreenshotProcess Hacker,您将能够创建具有以下优点的安全桌面的屏幕截图:

  • 无需摆弄,无需更改系统文件或注册表
  • 您无需在命令提示符下键入任何内容(对于鼠标用户这是一个好处)
  • 它更易于执行,并且除了第一个设置之外,还节省了很多时间。开始吧!

    1. 下载Greenshot并配置设置,以便在按“打印屏幕”键时将整个屏幕的图片自动保存到文件夹。

    2. 下载Process Hacker。如果您看到Process Hacker的主窗口,请确保Greenshot已关闭,然后单击“ Hacker”和“ Run as ...”

    3. 在“程序”中选择Greenshot的可执行文件。在“用户名”上,单击列表,然后选择“ NT AUTHORITY \ SYSTEM”。“类型”应为Service,会话ID为1,在“桌面”中选择“ WinSta0 \ Winlogon”。这个很重要!

    4. 现在您应该已经可以使用了,单击“确定”,在Greenshot完成加载(应该简短)后,打开一个UAC窗口,然后按Print键。现在,您应该在Greenshot的指定文件夹中看到安全桌面的图片!如果您不再需要创建UAC屏幕截图,只需取消Greenshot进程即可。

玩得开心!经过数次测试后,我已经确认并测试了这一点,因为到目前为止,我还不喜欢这些解决方案。


5

除了使用虚拟机,vnc或更改注册表或系统文件(在某些情况下可能令人讨厌或不可能)之外,我将提供另一种选择。

首先,您将需要一个截图软件,为此,我将使用7capture,它是免费的,但我相信可以使用其他软件来完成。

其次,您将需要PsTools套件中的 PsExec ,该工具将使7capture可以放入Windows Secure Desktop中,而无需更改任何系统文件,只需创建和删除由PsExec自动完成的服务即可。

然后,在安装7capture并将PsTools提取到某个文件夹的情况下,执行以下操作:

1)以管理员身份打开CMD。

2)将当前文件夹设置为提取PSTools的文件夹: cd path_to\PSTools

3)使用以下命令在Windows安全桌面中启动7capture: PsExec /h /x /d /s "path_to\7capture.exe"

哪里:

-h:如果目标系统是Vista或更高版本,请使用该帐户的提升的令牌运行该进程(如果有)。

-x:在Winlogon安全桌面(仅本地系统)上显示UI。

-d:不要等待进程终止(非交互式)。

-s:在系统帐户中运行远程进程。

4)打开要拍照的Windows安全桌面。(UAC提示,Ctrl + Alt + Del屏幕等)

5)使用Ctrl + PrintScreen拍摄仅一个窗口,或使用PrintScreen拍摄整个屏幕。

6)使用Alt + Tab切换到7capture。

7)只需将文件保存在您想要的位置。(如果您对全屏图像有疑问,只需将其另存为BMP)

在这里,您可以在Windows 7(巴西葡萄牙语)上查看结果:

UAC提示窗口 UAC提示全屏


如果没有用户登录这个方法是行不通的。
and31415

2

如果您在PC上安装了TeamViewer,并且重新启动了PC,则teamviewer将能够访问UAC提示。在另一台使用teamviewer的PC上,您可以制作整个桌面的屏幕截图,而teamviewer可见但没有焦点,并且您将获得UAC提示的屏幕截图。


2

另一种选择是使用autoitscript(来自autoitscript.com)

它是一种免费的类似于BASIC的脚本语言,旨在自动执行Windows GUI和常规脚本。它结合了模拟按键,鼠标移动和窗口/控件操纵的组合。

使用send()函数,您可以模拟打印屏幕的按键。取自网站示例https://www.autoitscript.com/autoit3/docs/functions/Send.htm

Example()

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

转到此处http://www.autoitscript.com/site/autoit/downloads/进行下载。

我还没有尝试过这种解决方案,但是鉴于您需要四处寻找解决问题的方法,因此我似乎还不错。

试试看。希望我能帮上忙。


2

在任何地方拍摄截图

每当发生以下任何情况时,安全桌面即处于活动状态:用户锁定其桌面(Windows + L),激活屏幕保护程序(当没有用户登录时),或者默认情况下,当用户帐户控制显示提示时。

资料来源:XPDM与WDDM

这个想法是从William Hilsum的答案中借用的,但是有一个区别:您不需要替换任何系统文件,并且撤消更改更容易。按照以下步骤操作后,每当需要拍摄安全桌面的屏幕截图时,请按Win+ U

覆盖轻松访问实用程序

  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:您需要依赖第三方程序。工作工具包括LightshotGreenshotShareX

还原更改

  1. 以管理员身份打开命令提示符。
  2. 输入或粘贴以下命令,然后按Enter

    reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Utilman.exe" /f
    

1

我对安全桌面了解不多,但是从理论上讲,您可以打开Snipping Tool并使用它来截屏。没有注册表编辑,没有文件重命名,没有。这是非常基本和简单的方法。搜索“ Snipping Tool”或打开“运行”(键盘快捷键:Win + R),然后键入“ snippingtool”或“ snippingtool.exe”。

无论哪种方式,都可以打开它并使用“全屏截图”模式。在Windows 10中,单击“模式”按钮旁边的箭头,然后选择“全屏截图”。在较旧的Windows版本中,单击“新建”按钮旁边的箭头,然后选择“全屏截图”。它会自动复制到“截图工具”窗口,您可以在其中添加注释,保存截图或通过“截图工具”窗口通过电子邮件发送。有关更多信息,请参见Microsoft的帮助页面


0

通过执行以下步骤,为UAC禁用安全桌面:

  1. 使用Windows键+ R键盘快捷键打开“运行”命令。
  2. 键入gpedit.msc,然后单击“确定”以打开“本地组策略编辑器”。
  3. 浏览以下路径:

计算机配置> Windows设置>安全设置>安全选项

  1. 在右侧,双击“用户帐户控制”:提示输入提升策略时切换到安全桌面。

本地组策略编辑器

选择禁用选项。

在此处输入图片说明

  1. 单击应用。
  2. 单击确定。

之后,您可以在任何提升的应用程序上使用常规的打印屏幕键。


-1

我一直在使用Windows Vista SP2。我在上面没有遇到过这样的限制。我的打印屏幕像魅力一样运转。你无法摆脱的,除非禁用UAC(ü SER 一个 ccount Ç ontroller)。为此,请使用msconfig.exe。查找“禁用UAC设置”之类的内容。比安装绿色镜头;我认为这是一个有用的程序。我一直在使用这种方法而没有麻烦。


OP希望拍摄安全桌面的屏幕截图。禁用UAC会禁用安全桌面,对吗?
gronostaj
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.