使用PsExec工具
PsExec 是 Sysinternals 工具套件中的一部分,它可以让你在网络中的其他计算机上执行命令。使用 PsExec,管理员可以执行脚本、应用程序或其他命令,而无需手动在目标计算机上登录。下面详细介绍如何使用 PsExec 以及一些常见的用法和注意事项。
1. 准备工作
- 下载 PsExec:在 Sysinternals 官网下载 PsExec 工具。
- 解压并保存 PsExec:将下载的
PsExec
解压,并放在一个方便使用的路径下,例如C:\Sysinternals
。
2. 基本使用方法
PsExec 的基本语法如下:
powershell
复制代码
psexec \\<目标计算机名或IP地址> -u <用户名> -p <密码> <命令>
\\<目标计算机名或IP地址>
:目标计算机的名称或IP地址。-u <用户名>
和-p <密码>
:登录到目标计算机所需的凭据(可选)。如果未指定,则会使用当前用户。<命令>
:要在目标计算机上执行的命令或应用程序路径。
示例
在 IP 地址为 192.168.1.10
的计算机上以管理员身份执行命令 cmd.exe
:
powershell
复制代码
psexec \\192.168.1.10 -u Administrator -p password cmd.exe
3. 常见用法
1) 在远程计算机上运行命令
例如,在目标计算机上显示系统信息:
powershell
复制代码
psexec \\192.168.1.10 -u Administrator -p password systeminfo
2) 在远程计算机上执行脚本
PsExec 可以用来执行批处理文件(如 .bat
)或 PowerShell 脚本。
powershell
复制代码
psexec \\192.168.1.10 -u Administrator -p password "powershell -File C:\Scripts\example.ps1"
3) 远程启动应用程序
启动应用程序(如记事本):
powershell
复制代码
psexec \\192.168.1.10 -u Administrator -p password notepad.exe
4) 在多个计算机上同时执行命令
PsExec 支持批量执行,可以将计算机名称或 IP 地址列表保存在一个文本文件中,然后用 @filename
参数指定。 假设有一个 computers.txt
文件,内容如下:
复制代码
192.168.1.10 192.168.1.11 192.168.1.12
在这些计算机上同时执行命令:
powershell
复制代码
psexec @computers.txt -u Administrator -p password "ipconfig /all"
5) 以系统权限运行命令
PsExec 支持以 SYSTEM
权限执行命令(即比管理员权限更高的权限)。使用 -s
参数可以实现:
powershell
复制代码
psexec \\192.168.1.10 -s cmd.exe
6) 在远程计算机上安装软件
PsExec 可以用来在远程计算机上执行安装包。例如,安装一个 MSI 包:
powershell
复制代码
psexec \\192.168.1.10 -u Administrator -p password msiexec /i "\\path\to\installer.msi" /quiet /norestart
4. 常用选项
以下是 PsExec 中一些有用的选项:
- -d:在目标计算机上启动后不等待远程进程结束,直接返回(适合后台任务)。
- -i:让应用程序以交互模式运行(指定交互的会话,适用于桌面应用程序)。
- -h:以高权限执行(适用于UAC环境)。
- -s:以系统权限运行命令。
- -c:将本地文件复制到远程计算机,并在远程计算机上执行。
例如,将本地脚本 script.bat
复制到目标计算机并执行:
powershell
复制代码
psexec \\192.168.1.10 -u Administrator -p password -c C:\path\to\script.bat
5. 注意事项
- 权限要求:使用 PsExec 需要目标计算机的管理员权限。可以指定凭据来提高权限,或使用
-s
以系统权限运行。 - 防火墙和网络设置:PsExec 使用 TCP 445 端口,因此需要确保目标计算机上允许通过 SMB (Server Message Block) 访问。
- 目标计算机的配置:在某些情况下,可能需要在目标计算机上配置“文件和打印机共享”才能正常使用 PsExec。
6. 错误处理
- 权限问题:确认账户拥有管理员权限,并检查UAC设置。
- 网络连接问题:确保目标计算机在线,且防火墙或安全设置允许 TCP 445 端口访问。
PsExec 是一个功能强大且灵活的远程管理工具。通过正确的配置和使用,它可以极大地简化网络中多台计算机的管理任务。