Python键盘记录器通过PsExec远程启动后无法正常运行求助
远程运行编译版键盘记录器失败的排查与解决
以下是针对问题的具体排查方向和解决方案:
1. 确保PsExec使用交互式会话启动
PsExec默认以本地系统账户运行程序,该账户无交互式桌面权限,而键盘记录器需要挂钩用户桌面输入设备,会直接退出。解决步骤:
- 先查询远程PC的用户会话ID:
quser \\远程PC名称或IP - 使用
-i参数指定交互式会话启动,同时用有管理员权限的账户运行:
(替换psexec \\远程PC -i 会话ID -u 管理员账户 -p 密码 C:\路径\keylogger.exe会话ID为查询到的用户登录会话号,通常是2)
2. 检查Python编译是否完整且正确
编译后的exe可能存在依赖缺失或打包参数错误:
- 若用PyInstaller打包,需确保包含所有依赖库(如
pynput、获取窗口的ctypes模块),打包命令示例:pyinstaller --onefile --noconsole keylogger.py--noconsole避免弹出控制台窗口,防止远程运行时因无法显示控制台导致进程退出;--onefile生成单个exe,方便复制。 - 本地先测试编译后的exe是否正常生成日志,确认新增的窗口名称获取逻辑无错误(比如未捕获的异常导致程序崩溃)。
3. 修正日志文件的绝对路径
键盘记录器若用相对路径写入日志,PsExec默认工作目录为C:\Windows\System32,日志可能生成在该目录而非预期位置。解决方法:
- 将日志写入路径改为绝对路径,示例:
log_file = r"C:\temp\keylog_output.txt" - 提前在远程PC创建目标目录(如
C:\temp),并确保运行账户对该目录有写入权限。
4. 排查系统安全软件拦截
Windows Defender或第三方杀毒软件会将键盘记录器判定为恶意程序,直接查杀或阻止运行:
- 临时将远程PC上的exe所在路径添加到杀毒软件排除列表;
- 检查杀毒软件隔离区,确认程序是否被拦截。
5. 捕获运行时错误信息
通过重定向输出查看程序启动失败的具体原因:
- 使用PsExec时重定向标准输出和错误:
查看psexec \\远程PC C:\路径\keylogger.exe > C:\本地路径\error.log 2>&1error.log内容,定位是否存在依赖缺失、权限不足等报错。
内容的提问来源于stack exchange,提问作者Rafay Ahmed
相关产品推荐
相关产品推荐

