PsExecv2.2_神奇下载

PsExecv2.2

  • 时间: 2022-05-22
  • 类型: 系统软件
  • 大小: 21.21 MB
  • 平台: WinAll
评分 4
本地下载
手机版下载

扫码下载游戏

安全下载
PsExecv2.2简介

PsExec是一款轻巧的telnet替代品,可让用户在其它系统上执行进程,并为控制台应用程序提供完整的交互,而无需手动安装客户端软件;PsExec最强大的用途包括在远程系统上启动交互式命令提示符,以及IpConfig之类的远程支持工具,否则它们将无法显示有关远程系统的;诸如Telnet之类的实用程序和诸如Symantec PC Anywhere之类的远程控制程序使您可以在远程系统上执行程序,但是设置起来很麻烦,并且要求您在希望访问的远程系统上安装客户端软件;PsExec是一个命令行工具,可让您在远程系统上执行进程,并将控制台应用程序的输出重定向到本地系统,以使这些应用程序看起来像在本地运行,用户可以从Sysinternals网站免费下载PsExec ,以下是一些高级技巧,可以帮助您充分利用PsExec作为系统管理实用程序的潜力!

PsExec软件功能

PsExec是Sysinternals的PsTools套件的成员,该套件包含11个工具。

要成为套件,工具必须符合一组规范,包括支持Windows NT 4.0及更高版本

成为控制台应用程序以及具有在本地系统和远程系统上工作的能力。

PsTools实用程序不需要在远程系统上手动安装软件,并且它们使您可以指定其他凭据来访问远程系统。

将该套件命名为PsTools以及所有成员工具 都以Ps作为名称前缀的原因是

系统开发的第一个满足所列条件的工具是PsList,它是一个列出正在运行的进程的程序。

系统将该工具命名为ps实用程序,该实用程序在UNIX系统上执行相同的功能。

PsExec软件特色

应用程序可以以逗号运行的单独处理器,其中1是编号最小的CPU。

例如,要在CPU 2和CPU 4上运行应用程序,请输入:-a 2,4

支持将指定的可执行文件复制到远程系统以执行。如果忽略此选项,则应用程序必须位于远程系统的系统路径中。

可以不要等待进程终止(非交互式)。

支持不加载指定帐户的配置文件。

即使文件已存在于远程系统上,也请复制指定的程序。

运行程序,使其与远程系统上指定会话的桌面进行交互。如果未指定会话,则该过程在控制台会话中运行。

如果目标系统是Vista或更高版本,请使用该帐户的提升令牌运行该过程

以受限用户身份运行进程(剥离Administrators组,仅允许分配给Users组的特权)。

在Windows Vista上,该过程以低完整运行。

指定连接到远程计算机的超时(以秒为单位)。

指定用户名的可选密码。如果您忽略此密码,系统将提示您输入隐藏密码。

指定要创建或与之交互的远程服务的名称。

在系统帐户中运行远程进程。

指定用于登录到远程计算机的可选用户名。

仅当指定的文件具有更高的版本号或比远程系统上的版本新时,才复制该文件。

设置进程的工作目录(相对于远程计算机)。

在Winlogon安全桌面(仅本地系统)上显示UI。

PsExec使用教程

与PsTools套件中的许多工具一样,PsExec能够远程运行进程的能力要求本地和远程计算机都启用文件和打印共享(即,工作站和服务),并且默认的Admin $共享(隐藏的)映到 windows目录的共享)是在远程系统上定义的。当我描述PsExec的工作方式时,这些要求的原因将在稍后阐明。

执行程序

PsExec无需在远程系统上手动安装软件即可远程运行进程的能力使部署变得容易。但是,如果PsExec仅能够在远程系统上启动程序,则其用途将受到限制。PsExec能够重定向控制台应用程序的输入和输出,这使该工具成为了通用的系统管理实用程序。图1显示了PsExec的命令行选项,并提示了其功能。许多Windows管理控制台工具只能在本地计算机上运行。通过PsExec,您可以远程启用其中的任何一个。例如,PsExec允许Ipconfig(一种Windows实用程序,用于显示系统的网络适配器的TCP / IP配置)显示远程系统的配置。用于此用途的示例命令是

pec \远程ipconfig

其中remote是要查询的系统的名称或IP地址。您将看到Ipconfig的输出,就像在本地计算机上运行Ipconfig一样。

如果未指定要执行的程序的路径,则PsExec将在远程系统的 windows system32目录中查找。如果您知道该程序不在该目录中,请在远程系统上输入其完整路径;如果它是要在远程系统上执行的本地系统上的可执行文件,请指定-c开关和文件的本地路径。-c开关指示PsExec将指定的可执行文件复制到远程系统以执行,并在程序完成运行后将其从远程系统中删除。

PsExec的控制台重定向功能更强大的用途是在远程系统上运行命令提示符,就像命令提示符在本地运行一样。PsExec的这种用法类似于在本地计算机上运行Telnet客户端并连接到远程计算机上的Telnet服务,但是您无需在远程系统上运行Telnet服务或任何其他特殊服务。只需执行以下命令:

pec \远程cmd

如果要在远程系统上执行一个控制台命令,请在命令提示符下传递/ c开关,输入要执行的命令。例如,命令

pec \远程cmd / c版本

在本地计算机的控制台上显示远程系统的Windows版本号。

PsExec的另一种流行用法是在网络上部署支持非交互式界面的修补程序或其他修补程序。为了使此任务更加容易,PsExec采用了多个计算机名称,包含计算机名称列表的文本文件的名称或特殊名称\ *,该名称导致对当前域中的所有计算机进行枚举。例如,要在名为Remote和Remote1的计算机上执行Micsoft MyDoom删除工具,并将清理的退出状态记录到文件中,可以使用以下命令

pec \ remote,remote1

-c doomcln.exe

-s 2> results.log

退出时,进程会指定一个整数,该进程的父进程可以读取该整数。程序通常使用退出代码来报告执行的成功或失败。每当用PsExec执行的过程完成时,PsExec都会显示该过程的退出代码,并将退出代码作为其自身的退出代码返回。您应该测试程序的行为或其文档以确定该程序的特定错误代码的含义,但是退出代码0通常表示成功。-s开关指定PsExec应该在系统帐户下执行命令。我将在稍后讨论更多。

PsExec安全

您应该了解PsExec与Windows安全进行交互的几种方式。默认情况下,您在远程系统上执行的过程将模拟在本地系统上运行PsExec的帐户。从安全的角度来看,模拟在某种程度上受到限制-远程进程无法访问任何网络资源,即使您的帐户通常可以访问的资源也是如此。如果您正在运行的帐户在远程系统上没有本地管理权限,则您要运行的进程需要访问网络资源,或者您要在其他帐户中运行进程,请使用PsExec的-u切换以提供备用帐户名。例如,您可以输入以下命令

pec \远程

-u远程管理员

-p adminpass ipconfig

在远程计算机上的管理员帐户下运行Ipconfig。使用-p开关输入使用-u开关指定的帐户的密码。如果省略-p开关,PsExec会提示您输入密码(出于安全原因,PsExec不会在屏幕上回显您输入的密码)。

如果指定备用凭据,则远程进程将使用这些凭据运行,并且将有权访问备用帐户可以访问的网络资源。要以其他帐户运行,PsExec必须使用该帐户登录到远程系统。因此,PsExec需要在远程系统上输入密码,并从本地系统以明文形式发送密码。如果未经授权的网络嗅探器可以拦截本地系统和远程系统之间的通信,则需要注意这一事实。

您还可以在系统帐户中运行远程进程,在该帐户下执行Windows服务和核心Windows进程,例如Winlogon和本地安全机构子系统服务(LS)。系统帐户具有强大的特权。某些文件系统和注册表资源具有默认的安全设置,这些默认安全设置仅允许从系统帐户进行访问-例如,在所有Windows 2000或更高版本的系统的每个卷上都存在HKEY_LOCAL_MACHINE SAM注册表子项和 Volume Information目录。

例如,如果您曾经对SAM子项的内容感到好奇,该子项在regedit中显示为空,因为regedit只能在帐户下浏览该子项,则可以使用PsExec,类似于使用Runas命令的方式(在Win2K和更高版本上可用)以在系统帐户下运行regedit。命令是这样的:

pec -s -i

c: windows regedit.exe

请注意,该命令不包含远程计算机名称,并且包含-i(交互式)开关。输入命令后,regedit将出现在以“系统”帐户运行的桌面上,您将可以在HKEY_LOCAL_MACHINE SAM和HKEY_LOCAL_MACHINE SYSTEM子项中查看。-i开关是导致regedit出现在控制台桌面上的原因,它通常仅在您希望在可以与之交互的本地系统上运行GUI应用程序时才有用。

最后一个安全说明与病毒有关。几种病毒使用PsExec在网络中传播,结果,几种主要的防病毒产品将PsExec标记为特洛伊木马程序或蠕虫。请记住,PsExec仅在远程系统上具有管理员组成员身份的帐户中运行时才能在远程系统上运行。换句话说,除非运行它的帐户具有对远程系统的管理访问权限,否则PsExec将无法在远程系统上执行进程。此外,PsExec的功能可以通过其他方式实现。因此,PsExec仅是病毒编写者的便利,否则他们可以轻松实现PsExec提供的功能。

内部PsExec

PsExec在远程系统上启动一个可执行文件,并控制该可执行文件进程的输入和输出流,以便您可以从本地系统与该可执行文件进行交互。PsExec通过从其可执行映像中提取名为Pesvc的嵌入式Windows服务并将其复制到远程系统的Admin $共享中来实现。,PsExec使用具有远程接口的Windows服务控制管理器API在远程系统上启动Pesvc服务。

Pesvc服务创建一个命名管道pecsvc,PsExec连接到该管道并发送命令,这些命令告诉远程系统上的服务以启动哪个可执行文件以及指定了哪些选项。如果指定-d(不要等待)开关,则启动可执行文件后服务将退出;否则,服务将退出。否则,服务将等待可执行文件终止,将退出代码发送回PsExec,以使其在本地控制台上打印。

使用PsExec

用法:pec [\ comr [,comr2 [,...] | @file ]] [-u用户[-p psswd] [-ns] [-r服务名] [-h] [-l] [-s | -e] [-x] [-i [会话]] [ -c可执行文件[-f | -v]] [-w目录] [-d] [-<优先级>] [-an,n,...] cmd [参数]

指定-low,-belownormal,-abovenormal,-high或-realtime以不同的优先级运行进程。使用-backgund在Vista上以低内存和I / O优先级运行。

电脑指示PsExec在远程计算机或指定的计算机上运行该应用程序。如果您省略计算机名称,则PsExec在本地系统上运行该应用程序,并且如果您指定通配符(\ *),则PsExec在当前域中的所有计算机上运行该命令。

@文件PsExec将在文件中列出的每台计算机上执行命令。

命令要执行的应用程序的名称。

论点要传递的参数(请注意,文件路径必须是目标系统上的绝对路径)。

-接受该标志禁止显示许可证对话框。

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

pec \ marklap“ c:长名app.exe”

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

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

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

例子

我写的这篇文章介绍了PsExec的工作方式,并提供了使用方法的提示:

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

pec \ marklap cmd

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

pec \ marklap ipconfig /全部

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

pec \ marklap -c test.exe

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

pec \ marklap c: bin test.exe

在系统帐户中以交互方式运行Regedit,以查看SAM和SECITY项的内容:

pec -i -d -sc: windows regedit.exe

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

pec -l -d“ c: pgram files internetexplorer iexplore.exe”

展开
PsExecv2.2下载