PSEXEC远程启动PowerShell但无法发送Shift+Q热键问题求助
远程交互式会话中PsExec发送热键失效的排查方案
关于PowerShell执行策略的疑问
执行策略大概率不是问题。你已经能看到PowerShell进程运行,说明脚本已正常执行。RemoteSigned策略仅限制未签名的远程脚本,本地执行或已允许的脚本不会被拦截。
核心排查方向
SYSTEM账户的桌面交互限制
你使用了-s参数让PsExec以SYSTEM账户运行进程,但SYSTEM账户默认没有访问当前用户桌面会话的权限,即便搭配-h提升权限也无法直接和用户的活动桌面交互。本地运行PsExec时如果未加-s,是以当前用户身份执行,因此能正常发送热键。
验证方式:去掉-s参数,用当前管理员身份执行PsExec,观察热键是否生效。SendKeys的会话上下文绑定问题
WScript.Shell.SendKeys依赖当前进程的桌面上下文,远程交互式会话中,PsExec启动的PowerShell进程可能未绑定到用户的活动桌面窗口站。即使指定了-i 2,SYSTEM账户的进程也无法正确注入到用户桌面会话发送按键。目标窗口焦点缺失
热键生效需要目标应用处于前台焦点状态。远程会话中,PsExec执行时目标窗口可能未获得焦点,导致SendKeys发送的按键无法被接收。可以修改脚本,先激活目标窗口再发送按键:$wsshell = New-Object -comObject wscript.shell # 替换为你的目标应用窗口标题 $wsshell.AppActivate("目标应用标题") Start-Sleep -Milliseconds 500 $wsshell.SendKeys("+{Q}")远程会话的隔离机制限制
部分远程桌面环境(如RDP)存在跨会话的桌面交互隔离机制,即便指定了控制台会话参数,也可能因会话隔离导致按键无法传递到用户活动桌面。
内容的提问来源于stack exchange,提问作者Geo V
相关产品推荐
相关产品推荐

