VBScript sendkeys在管理模式下无法在powershell上运行

kcwpcxri  于 2023-01-30  发布在  Shell
关注(0)|答案(1)|浏览(161)

我有一个在管理模式下通过以下方式生成powershell的vbscript:

Set oShell = CreateObject("Shell.Application")  
oShell.ShellExecute "powershell", "-executionpolicy bypass", "", "runas", 1

然后我尝试通过以下方式发送密钥:

Set WshShell = WScript.CreateObject("WScript.Shell")
WScript.sleep 2000
WshShell.sendkeys "hello"

由于键不起作用,我尝试将后一部分分离到一个单独的文件中,并专门对PID执行了WshShell.AppActivate,以确保它在发送键之前获得正确的窗口焦点,但它仍然不会发送字符串。
相反,如果我不在管理员模式下运行powershell,一切都会正常运行:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.run "powershell"
WScript.sleep 200
WshShell.sendkeys "cls"

有人能告诉我我做错了什么吗?

unhi4e5o

unhi4e5o1#

虽然我没有一个官方的参考资料给你,我很肯定,* 通过设计 *,出于安全原因,你不能 * 发送击键到 * 提升 *(运行为管理员)进程从 * 非 * 提升。
如果这是可能的,那么未提升的进程就可以“绕过”它们有限的特权,这显然是违反规则的。

相关问题