PsExec 实用工具
简介:
1.PsExec 是一个轻型的 telnet 替代工具,它使您无需手动安装客户端软件即可执行其他系统上的进程,并且可以获得与控制台应用程序相当的完全交互性。
2.PsExec 最强大的功能之一是在远程系统和远程支持工具(如 IpConfig)中启动交互式命令提示窗口,以便显示无法通过其他方式显示的有关远程系统的信息。
安装(绿色版)
只需将 PsExec 解压并复制到可执行路径,打开cmd命令窗口。
键入“psexec”可显示其使用语法。
PsExec 可在 Windows Vista、NT 4.0、Win2K、Windows XP 和 Server 2003(包括 64 位版本的 Windows)以上版本上运行。注:可设置环境变量 或 直接解压放在system32目录下面
执行原理:
1.通过ipc$连接,释放psexecsvc.exe到目标
2.通过服务管理SCManager远程创建psexecsvc服务,并启动服务。
3.客户端连接执行命令,服务端启动相应的程序并执行回显数据。
4.运行完后删除服务。这个在windows的日志中有详细的记录,另外psexec在少数情况下会出现服务没删除成功的bug,所以一般不推荐使用psexec,推荐wmiexec
工具说明:
1.需要远程系统开启admin$共享
2.建立IP超链接后可以不指定用户名和密码
3.不能仅拷贝文件不行执行,拷贝时可以建立ipc连接后拷贝
4.在启动psexec建立连接后,远程系统上会被安装一个服务:psexecsvc,安装服务会留下日志,而且psexec推出时有可能服务删除失败,所以不推荐使用psexec
用法
格式:
psexec [\\computer[,computer2[,...] | @file\]][-u user [-p psswd][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c executable [-f|-v]][-w directory][-d][-<priority>][-a n,n,...] cmd [arguments]
参数 | 描述 |
---|---|
computer | 指示 PsExec 在指定的一台或多台计算机上运行应用程序。 如果省略计算机名称,则 PsExec 将在本地系统上运行应用程序; 如果输入计算机名称“\*”,则 PsExec 将在当前域中的所有计算机上运行应用程序。 |
@file | 指示 PsExec 在指定的文本文件中列出的每台计算机上运行命令。 |
-a | 用逗号分隔可以运行应用程序的处理器,CPU 编号最小为 1。 例如,要在 CPU 2 和 CPU 4 上运行应用程序,请输入:“-a 2,4” |
-c |
将指定的程序复制到远程系统以便执行。 如果省略此选项,则应用程序必须位于远程系统上的系统路径中。 |
-d | 不等待应用程序终止。请只对非交互式应用程序使用此选项。 |
-e | 不加载指定帐户的配置文件。 |
-f | 将指定的程序复制到远程系统,即使远程系统中已存在该文件。(强制) |
-i | 运行程序,以便它与远程系统中指定会话的桌面进行交互。 如果未指定会话,则进程将在控制台会话中运行。 |
-I | 以受限用户身份(去除 Administrators 组的权限,并且只允许使用分配给 Users 组的权限)运行进程。 在 Windows Vista 上,此进程将以“低完整性”运行。 |
-n | 指定与远程计算机连接的超时(秒)。 |
-p | 指定用户名的密码(可选)。如果省略此选项,系统将提示您输入隐藏密码。 |
-s | 在系统帐户中运行远程进程。 |
-u | 指定用于登录远程计算机的可选用户名。 |
-v | 仅在指定文件具有更高版本号或该文件比远程系统上的文件新时复制该文件。 |
-w | 设置进程的工作目录(相对于远程计算机)。 |
-x | 在 Winlogon 桌面上显示 UI(仅限于本地系统)。 |
-priority | 指定 –low、-belownormal、-abovenormal、-high 或 -realtime 按不同优先级运行进程。 |
program | 要执行的程序的名称。 |
arguments | 要传递的参数(请注意,文件路径必须是目标系统中的绝对路径) |
-accepteula | 该标志禁止显示许可证对话框,或说同意许可。 |
注:
1.对于其名称中含有空格的应用程序,可以在其两侧加引号,例如,psexec \\marklap "c:\long name\app.exe"。按下 Enter 键时,仅将输入内容传递到远程系统。键入 Ctrl-C 可终止远程进程。
2.如果省略用户名,则远程进程将以执行 PsExec 时所使用的相同帐户运行,但由于远程进程以模仿方式运行,因此它无权访问远程系统上的网络资源。指定用户名时,远程进程将以指定的帐户执行,并可访问该帐户有权访问的任何网络资源。
请注意,密码是以明文形式传递到远程系统的。3.当目标系统是本地系统时,由于 PsExec 不需要您具有管理员权限,因此您可以使用当前版本的 PsExec 来取代 Runas。
示例
1.以下命令可在 \\computer 上启动交互式命令提示窗口:(使用较多)
注:computer可计算机名,也可IP地址
psexec \\computer "cmd"
# 使用本地账户权限远程执行命令psexec \\computer -u domain\user "cmd.exe"
# 使用指定账户权限远程执行命令,且使用隐藏输入密码psexec \\computer -u domain\user -p "123456" "cmd.exe"
# 使用指定账户权限远程执行命令,且显示输入密码
2.此命令可在 \computer 上远程执行脚本
PsExec \\远程服务器IP -u 登录名 -p 密码 -d -i 0 "脚本绝对路径\本地文件替换脚本.bat"
PsExec \\远程服务器IP -u 登录名 -p 密码 -d -i 0 "脚本绝对路径\本地文件替换脚本.vbs"
3.此命令通过 /all 开关在远程系统上执行 ipconfig /all,并在本地显示输出结果:
psexec \\computer -u domain\user ipconfig /all
# 使用指定账户方式
4.此命令将程序 test.exe 复制到远程系统,并以交互方式执行此程序:
psexec \\computer -u domain\user -c test.exe
# 普通的复制文件psexec \\computer -u domain\user -f test.exe
# 强制复制文件过去(覆盖)psexec \\computer -u domain\user -v test.exe
# 只复制更新的文件过去
5.如果远程系统中已经安装的程序不在系统路径中,请指定该程序的完整路径:(有空格请加上双引号)
psexec \\computer -u domain\user "c:\program files\test.exe"
6.在系统帐户中以交互方式运行 Regedit,以便查看 SAM 和 SECURITY 注册表项的内容:可-u 指定更高权限用户执行
psexec -i -d -s c:\windows\regedit.exe
7.要以受限用户权限运行 Internet Explorer,请使用此命令:(有空格请加上双引号)
psexec -l -d "c:\program files\internet explorer\iexplore.exe"
下载地址
>>> PsExec 实用工具 <<<
简单列出PSTools工具包的每个工具功能
工具 | 功能概述 |
---|---|
PsExec | 一个轻型的 telnet 替代工具。 |
PsFile | 一个显示机器上的会话和有什么文件被网络中的用户的打开的命令。 |
PsGetSid | 一个远程获取账号sid信息的工具。 |
PsInfo | 一个搜集机器软硬件信息的工具,它可以获得操作系统信息,硬件信息和软件信息。 |
PsKill | 一个用于杀除进程的程序。 |
PsList | 一个查看进程的程序。 |
PsLoggedOn | 一个显示目前谁登陆的机器的命令。 |
PsLogList | 一个查看系统事件记录的程序。 |
PsPasswd | 一个用来更改Win NT/2K用户密码的程序。 |
PsPing | ICMP Ping、TCP Ping、延迟测试、带宽测试 应用场景:由于Windows Azure数据中心禁ICMP,使用Psping的TCP Ping的功能来测试联通性或者故障排查就非常有用了 |
PsService | 一个远程服务管理程序。 |
PsShutdown | 一个远程关机命令。 |
PsSuspend | 一个暂时停止进程的软件。 |