PsExec v2.40

作者:Mark Russinovich

发布时间: 2022 年 7 月 19 日

下载下载 PsTools (3.5 MB)

简介

Telnet 等实用工具和远程控制程序(如 Symantec 的 PC Anywhere)允许你在远程系统上执行程序,但它们可能很难设置并要求你在想要访问的远程系统上安装客户端软件。 PsExec 是一种轻量级 telnet-replacement,可用于在其他系统上执行进程,为控制台应用程序提供完全交互性,而无需手动安装客户端软件。 PsExec 最强大的用途包括对远程系统和远程启用工具(如 IpConfig)启动交互式命令提示符,否则无法显示有关远程系统的信息。

注意:一些防病毒扫描程序报告一个或多个工具感染了“远程管理员”病毒。 PsTools 中没有含有病毒,但它们已被病毒使用,这就是为什么它们触发病毒通知的原因。

安装

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

使用 PsExec

请参阅 2004 年 7 月的适用于 Mark的 Windows IT 专业人员杂志的文章,其中介绍了 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]
参数 说明
-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。
-priority 指定 -low、-belownormal、-abovenormal、-high 或 -realtime 以不同的优先级运行进程。 使用 -background 在 Vista 上以低内存和 I/O 优先级运行。
计算机 指示 PsExec 在指定的远程计算机或计算机上运行应用程序。 如果省略计算机名称,PsExec 在本地系统上运行应用程序,如果指定通配符 (\*) ,PsExec 将在当前域中的所有计算机上运行该命令。
@file PsExec 将在文件中列出的每台计算机上执行该命令。
cmd 要执行的应用程序的名称。
参数 要传递 (的参数请注意,文件路径必须是目标系统上的绝对路径) 。
-accepteula 此标志禁止显示许可证对话框。

可以使用引号将具有空格的应用程序括在名称中。

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

仅当按下 Enter 键时,输入才会传递到远程系统。 键入 Ctrl-C 将终止远程进程。

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

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

示例

本文介绍如何使用 PsExec ,并提供有关如何使用它的提示:

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

psexec -i \\marklap cmd

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

psexec -i \\marklap ipconfig /all

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

psexec -i \\marklap -c test.exe

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

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

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

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

若要像使用受限用户权限一样运行 Internet Explorer,请使用以下命令:

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

下载下载 PsTools (3.5 MB)

PSTools

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

运行时间:

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