PsTools

示例

./psexec -i -e -h -s  -realtime \\10.210.13.22 cmd

tasklist /s 10.210.13.22 > tasklist.txt

taskill /f /im 1E*

https://learn.microsoft.com/zh-cn/sysinternals/downloads/pstools

下载 PsTools Suite (5 MB)

PsTools 套件中包含的工具(可作为包下载)包括:

  • PsExec – 远程执行进程
  • PsFile – 显示远程打开的文件
  • PsGetSid – 显示计算机或用户的 SID
  • PsInfo – 列出有关系统的信息
  • PsPing – 度量网络性能
  • PsKill – 按名称或进程 ID 终止进程
  • PsList – 列出有关进程的详细信息
  • PsLoggedOn – 查看谁在本地登录,并通过资源共享 (完整源包含在)
  • PsLogList – 转储事件日志记录
  • PsPasswd – 更改帐户密码
  • PsService – 查看和控制服务
  • PsShutdown – 关闭并选择性地重启计算机
  • PsSuspend – 挂起进程
  • PsUptime – 显示系统自上次重新启动以来运行的时间 (PsUptime 的功能已纳入 PsInfo

运行于:

  • 客户端:Windows 8.1 及更高版本
  • 服务器:Windows Server 2012及更高
  • Nano Server:2016 及更高版本

安装

这些工具都不需要任何特殊安装。

https://learn.microsoft.com/zh-cn/sysinternals/downloads/psexec

安装

只需将 PsExec 复制到可执行文件路径即可。 键入“psexec”会显示其使用语法。

使用 PsExec

请参阅 2004 年 7 月期的 Windows IT 专业人员杂志 ,了解 Mark 的文章 ,其中介绍了 PsExec 的高级用法。

用法:

Windows 命令提示符复制

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]
参数说明
-a应用程序可以使用逗号运行的独立处理器,其中 1 是编号最低的 CPU。 例如,若要在 CPU 2 和 CPU 4 上运行应用程序,请输入:“-a 2,4”
-c将指定的可执行文件复制到远程系统以执行。 如果省略此选项,则应用程序必须位于远程系统上的系统路径中。
-d不要等待进程终止 (非交互式) 。
-e不加载指定帐户的配置文件。
-f复制指定的程序,即使文件已存在于远程系统上。
-i运行程序,使其与远程系统上指定会话的桌面进行交互。 如果未指定会话,则进程在控制台会话中运行。 尝试使用重定向的标准 IO) 以交互方式 (运行控制台应用程序时 ,需要 此标志。
-h如果目标系统为 Vista 或更高版本,则使用帐户的提升令牌运行进程(如果可用)。
-l以受限用户身份运行进程 (删除管理员组,并仅允许分配给用户组的权限) 。 在 Windows Vista 上,进程以低完整性运行。
-n指定连接到远程计算机的超时(以秒为单位)。
-p指定用户名的可选密码。 如果省略此项,系统会提示输入隐藏的密码。
-r指定要创建或与之交互的远程服务的名称。
-s在系统帐户中运行远程进程。
-u指定登录远程计算机的可选用户名。
-v仅当指定的文件具有更高的版本号或比远程系统上的更高版本时,才复制指定的文件。
-w设置进程 (相对于远程计算机) 的工作目录。
-x仅) 显示 Winlogon 安全桌面上的 UI (本地系统。
-优先指定 -low、-belownormal、-abovenormal、-high 或 -realtime 以以不同的优先级运行进程。 使用 -background 在 Vista 上以低内存和 I/O 优先级运行。
计算机指示 PsExec 在指定的远程计算机上运行应用程序。 如果省略计算机名称,PsExec 在本地系统上运行应用程序,如果指定通配符 (\\*) ,PsExec 将在当前域中的所有计算机上运行命令。
@filePsExec 将在文件中列出的每台计算机上执行命令。
cmd要执行的应用程序的名称。
参数要传递 (的参数请注意,文件路径必须是目标系统上的绝对路径) 。
-accepteula此标志禁止显示许可证对话框。

可以用引号将名称中有空格的应用程序括起来,例如

Windows 命令提示符复制

psexec \\marklap "c:\\long name app.exe"

输入仅在按 Enter 键时传递到远程系统。 键入 Ctrl-C 将终止远程进程。

如果省略用户名,该过程将在远程系统上的帐户上下文中运行,但无权访问网络资源 (,因为它正在模拟) 。 如果远程进程需要访问网络资源或在不同的帐户中运行,请在 语法中指定有效的用户名 Domain\User 。 请注意,密码和命令在传输到远程系统时会加密。

PsExec 返回的错误代码特定于你执行的应用程序,而不是 PsExec。

示例

本文 介绍了 PsExec 的工作原理 ,并提供了有关如何使用它的提示:

以下命令在 上 \\marklap启动交互式命令提示符:

Windows 命令提示符复制

psexec -i \\marklap cmd

此命令使用 /all 开关在远程系统上执行 IpConfig,并在本地显示生成的输出:

Windows 命令提示符复制

psexec -i \\marklap ipconfig /all

此命令将程序 test.exe 复制到远程系统,以交互方式执行:

Windows 命令提示符复制

psexec -i \\marklap -c test.exe

指定已安装在远程系统上的程序的完整路径(如果它不在系统的路径上):

Windows 命令提示符复制

psexec -i \\marklap c:\bin\test.exe

在系统帐户中以交互方式运行 Regedit,以查看 SAM 和安全密钥的内容::

Windows 命令提示符复制

psexec -i -d -s c:\windows\regedit.exe

若要以受限用户权限的形式运行 Internet Explorer,请使用以下命令:

Windows 命令提示符复制

psexec -l -d "c:\program files\internet explorer\iexplore.exe"

下载 PsTools (5 MB)

PSTools

PsExec 是不断壮大的 Sysinternals 命令行工具工具包的一部分,可帮助管理名为 PsTools 的本地系统和远程系统。

运行于:

  • 客户端:Windows 8.1 及更高。
  • 服务器:Windows Server 2012及更高。

发表评论