PsExec远程执行命令需满足四条件:目标开启ADMIN$和IPC$共享、445端口放行、具备管理员凭据;缺一则报“找不到网络路径”或“拒绝访问”。

要在Windows系统中用PsExec远程执行命令行管理命令,必须确保目标机器开启ADMIN$共享、IPC$连接可用、445端口未被防火墙拦截,并且你拥有管理员凭据——缺少任一条件都会导致“找不到网络路径”或“拒绝访问”错误。
确认远程主机基础服务状态
先在本地打开CMD,测试目标主机是否具备PsExec运行前提:
执行 net use \192.168.1.100ipc$ /user:Administrator password,若返回“命令成功完成”,说明IPC连接通;若提示“系统错误 53”,则目标IP不可达或SMB未启用;若提示“系统错误 5”,说明凭据错误或账户无权访问IPC$。
再执行 net use \192.168.1.100dmin$ /user:Administrator password,成功即表示ADMIN$共享就绪——【PsExec必须依赖ADMIN$上传PSEXESVC.exe,此步失败则后续全部无效】。
最后检查防火墙:在目标机上运行 netsh advfirewall firewall show rule name="File and Printer Sharing (SMB-In)",确认状态为“启用”。如为“已禁用”,需手动启用该入站规则。
首次运行PsExec前的必要操作
下载PsExec后直接双击运行会弹出EULA许可协议窗口,不接受则无法继续。必须加 -accepteula 参数跳过:
psexec -accepteula \192.168.1.100 -u Administrator -p password cmd
这一步不做,每次调用都会卡在弹窗;若已在目标机注册过该EULA(如曾用同一用户运行过),可省略此参数,但首次务必带上。
以System权限执行远程命令行
多数管理命令(如读取SAM、修改服务配置、绕过UAC限制)需System权限才能生效,仅用Administrator身份会失败:
方法一:获取交互式System级CMD窗口
Windows 桌面自动化技能,支持鼠标控制(移动/点击/拖拽/滚轮/截图)、键盘输入(文字输入/按键/组合键)、窗口管理(查找/聚焦/最大化/最小化/关闭/移动)、截图并发送文件。提供两种截图方式:Python pyautogui 截图(集成在自动化流程中)和 PowerShell + .NET 零依赖截图(支持区域截图和多显示器)。当用户需要自动化 Windows 桌面操作、控制鼠标键盘、管理窗口、执行 GUI 自动化任务、截图发送文件时使用。
psexec \192.168.1.100 -u Administrator -p password -s -i cmd
注意:-i 参数使cmd窗口出现在目标机当前用户桌面上;若目标无人值守或已锁屏,需改用 -i 1 指定会话ID(先用 query session 查看),否则命令看似执行却无响应。
方法二:后台静默执行并立即返回结果
psexec \192.168.1.100 -u Administrator -p password -s cmd /c "net user hacker P@ssw0rd /add && net localgroup administrators hacker /add"
这条命令会在目标机后台创建用户并提权,全程无界面、不阻塞本地终端;【-s 是关键,缺它则新建用户无法加入administrators组】。
批量执行多台主机命令
当需对一组IP统一执行相同命令时,避免重复敲命令:
第一步:准备目标列表文件 hosts.txt,每行一个IP(如:
192.168.1.100
192.168.1.101
192.168.1.102)
第二步:使用 @ 符号调用列表,强制带 -accepteula 防止中途卡住:
psexec @hosts.txt -u Administrator -p password -s -d cmd /c "ipconfig > C: emp
etinfo.txt"
第三步:等待执行完毕后,用 copy \192.168.1.100C$ emp
etinfo.txt .@.txt 逐台拉回结果——【-d 参数必须加上,否则PsExec会逐台等待,遇到某台宕机就永久挂起】。

















