有没有办法读取凭据/UAC 提示中的文本?目的是识别导致UAC提示的应用程序名称。
在此附图中,提示显示启动它的应用程序的名称(在本例中为 Outlook)。如何使用 PowerShell 或任何脚本识别应用程序源?已经尝试阅读审核日志(事件 4688),这很有用。但是,这并不能具体缩小 UAC 提示的来源。
你可以做到;但你不应该。
通常,UAC 提示显示在安全桌面上,以便应用程序无法读取/写入/以编程方式按下提示按钮(因为这会破坏整个点)
但是为了屏幕阅读器等的目的,您可以做一些事情:
uiAccess
Program Files
)最重要的是,用户界面权限隔离 (UIPI) 可防止“中”完整性进程尝试将消息(例如
WM_MOUSEDOWN
WM_GETTEXT
)发送到“高”完整性 UAC 窗口
但是,如果监视 UAC 提示屏幕的程序(在程序文件中运行,启用了
uiAccess
)也以 管理员 身份运行,那么您可以通过编程方式发送 WM_GETTEXT
消息。
不要等待已显示为
requireAdministrator
的应用程序在启动时显示 UAC 提示:将其清单更改为运行 asInvoker
。
这样它就不会以管理员身份运行。