- 软件介绍
- 相关专题
- 下载地址
PsExec简介
PsExec是telnet的轻量级替代品,它允许用户在其他系统上执行进程,并为控制台应用程序提供完整的交互,而无需手动安装客户端软件。PsExec最强大的用途包括在远程系统和远程支持工具(如IpConfig)上启动交互式命令提示,否则它们将无法显示有关远程系统的信息;Telnet等实用程序和Symantec PC Anywhere等远程控制程序使您能够在远程系统上执行程序,但设置起来很麻烦,需要您在要访问的远程系统上安装客户端软件。PsExec是一个命令行工具,允许您在远程系统上执行进程,并将控制台应用程序的输出重定向到本地系统,使这些应用程序看起来像是在本地运行。用户可以从Sysinternals网站免费下载PsExec。这里有一些高级技巧,可以帮助你充分利用PsExec作为系统管理工具的潜力!
PsExec软件功能
PsExec是sysinter的PsTools套件的成员,该套件包含11个工具。
要成为一个套件,该工具必须符合一套规范,包括对Windows NT 4.0和更高版本的支持。
成为控制台应用程序,能够在本地和远程系统上工作。
PsTools实用程序不需要在远程系统上手动安装软件,它们允许您指定其他凭据来访问远程系统。
套件被命名为PsTools并且所有成员工具都以Ps作为前缀的原因是
系统开发的第一个满足所列条件的工具是PsList,它是一个列出正在运行的进程的程序。
系统将此工具命名为ps实用程序,它在UNIX系统上执行相同的功能。
PsExec软件特色
独立的处理器,应用程序可以用逗号运行,其中1是数字最低的CPU。
例如,要在CPU 2和CPU 4上运行应用程序,请输入:-a 2,4
支持将指定的可执行文件复制到远程系统执行。如果忽略此选项,应用程序必须位于远程系统的系统路径中。
不要等待进程终止(非交互)。
不支持加载指定帐户的配置文件。
即使文件已经存在于远程系统上,请复制指定的程序。
运行程序与远程系统上指定会话的桌面进行交互。如果未指定会话,该过程将在控制台会话中运行。
如果目标系统是Vista或更高版本,请使用该帐户的提升令牌运行该过程。
以受限用户身份运行流程(剥离管理员组,仅允许分配给用户组的权限)。
在Windows Vista上,此过程运行的完整性很低。
指定连接到远程计算机的超时时间(秒)。
为用户名指定可选密码。如果忽略此密码,系统将提示您输入隐藏的密码。
指定要创建或与之交互的远程服务的名称。
在系统帐户中运行远程进程。
指定登录远程计算机的可选用户名。
仅当指定文件具有更高的版本号或比远程系统上的版本新时,才复制该文件。
设置进程的工作目录(相对于远程计算机)。
在Winlogon安全桌面上显示用户界面(仅限本地系统)。
PsExec使用教程
像PsTools套件中的许多工具一样,PsExec远程运行进程的能力要求本地和远程计算机都启用文件和打印共享(即工作站和服务),并且在远程系统上定义默认的Admin $共享(映射到 windows目录的隐藏共享)。当我描述PsExec的工作模式时,这些要求的原因将在后面解释。
执行程序
PsExec无需在远程系统上手动安装软件即可远程运行进程的能力使部署变得容易。但是,如果PsExec只能在远程系统上启动程序,其使用将受到限制。PsExec可以重定向控制台应用程序的输入和输出,这使得该工具成为通用的系统管理实用程序。图1显示了PsExec的命令行选项,并提示其功能。许多Windows管理控制台工具只能在本地计算机上运行。通过PsExec,您可以远程启用其中任何一个。例如,PsExec允许Ipconfig(一个显示系统网络适配器的TCP/IP配置的Windows实用程序)显示远程系统的配置。用于此目的的命令示例有
Pec 远程ipconfig
其中远程是要查询的系统的名称或IP地址。您将看到Ipconfig的输出,就像在本地计算机上运行Ipconfig一样。
如果没有指定要执行的程序的路径,PsExec将在远程系统的 windows system32目录中搜索。如果您知道程序不在此目录中,请输入它在远程系统上的完整路径;如果它是要在远程系统上执行的本地系统上的可执行文件,请指定-c开关和文件的本地路径。-c开关指示PsExec将指定的可执行文件复制到远程系统中执行,并在程序运行完成后将其从远程系统中删除。
PsExec的控制台重定向功能的一个更强大的目的是在远程系统上运行命令提示符,就像命令提示符在本地运行一样。PsExec的这种用法类似于在本地计算机上运行远程登录客户端并连接到远程计算机上的远程登录服务,但您不需要在远程系统上运行远程登录服务或任何其他特殊服务。只需执行以下命令:
Pec 远程cmd
如果要在远程系统上执行控制台命令,请在命令提示符下传递/c开关并输入要执行的命令。例如,命令
Pec 远程cmd/c版本
在本地计算机的控制台上显示远程系统的Windows版本号。
PsExec的另一种流行用法是在网络上部署补丁或其他支持非交互接口的补丁。为了使这项任务更容易,PsExec采用了多个计算机名,即包含计算机名 *列表的文本文件的名称或特殊名称,这将导致枚举当前域中的所有计算机。例如,要在名为Remote和Remote1的计算机上执行Micsoft MyDoom删除工具,并将清理的退出状态记录到文件中,可以使用以下命令
pec remote,remote1
-doomcln.exe
-s 2 >结果.日志
退出时,进程将指定一个该进程的父进程可以读取的整数。程序通常使用退出代码来报告执行的成功或失败。每当用PsExec执行的进程完成时,PsExec将显示该进程的退出代码,并将退出代码作为自己的退出代码返回。您应该测试程序或其文档的行为,以确定程序的特定错误代码的含义,但是退出代码0通常表示成功。-s开关指定PsExec应该在系统帐户下执行命令。我稍后会讨论更多。
PsExec安全
您应该知道PsExec与Windows安全交互的几种方式。默认情况下,您在远程系统上执行的过程将模拟在本地系统上运行PsExec的帐户。从安全的角度来看,模拟在某种程度上是有限的-远程进程不能访问任何网络资源,甚至那些你的帐户通常可以访问的资源。如果您正在运行的帐户在远程系统上没有本地管理权限,您正在运行的进程需要访问网络资源,或者如果您想在另一个帐户中运行该进程,请使用/例如,您可以输入以下命令
Pec 远程
-u远程管理员
-p adminpass ipconfig
在远程计算机的管理员帐户下运行Ipconfig。使用-p开关输入用-u开关指定的帐户密码。如果省略了-p开关,PsExec将提示您输入密码(出于安全原因,PsExec不会回显您在屏幕上输入的密码)。
如果指定了备用凭据,远程进程将使用这些凭据运行,并且可以访问备用帐户可以访问的网络资源。若要使用不同的帐户运行,PsExec必须使用此帐户登录远程系统。因此,PsExec需要在远程系统上输入密码,并以明文形式从本地系统发送密码。如果未经授权的网络嗅探器可以拦截本地系统和远程系统之间的通信,我们应该注意这个事实。
您还可以在系统帐户中运行远程进程,在该帐户下执行Windows服务和核心Windows进程,如Winlogon和本地安全机构子系统服务(LS)。该帐户具有很强的特权。一些文件系统和注册表资源有默认的安全设置,只允许从系统帐户访问-例如,HKEY_LOCAL_MACHINE SAM注册表子项和 Volume Information目录存在于所有Windows 2000或更高版本系统的每个卷上。
例如,如果您曾经对SAM子项的内容感到好奇,则该子项在regedit中显示为空,因为regedit只能在帐户下浏览该子项,您可以使用PsExec在系统帐户下运行regedit,类似于您使用Runas命令的方式(在Win2K和更高版本上可用)。顺序是这样的:
pec -s -i
c: windows regedit.exe
请注意,该命令不包含远程计算机的名称,但也包含-i (interactive)开关。输入命令后,regedit将出现在“系统”帐户下运行的桌面上,您将能够在HKEY_LOCAL_MACHINE SAM和HKEY_LOCAL_MACHINE SYSTEM子项中查看它。-i开关是regedit出现在控制台桌面上的原因。它通常只在您想要在本地系统上运行图形用户界面应用程序时有用,您可以与之交互。
最后一个安全注意事项与病毒有关。一些病毒使用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 [,& # 8230;]| @ file ][-u user[-p psswd][-ns][-r service name][-h][-l][-s |-e][-x][-I[session]][-c可执行文件[-f|-v] Priority >: ] [-an,n,& # 8230;]cmd[参数]
指定-低,-低于正常值,-高于正常值,-高或-实时运行具有不同优先级的进程。使用-backgund在Vista上以低内存和低输入/输出优先级运行。
指示PsExec计算机在远程计算机或指定的计算机上运行应用程序。如果省略计算机名,PsExec在本地系统上运行应用程序,如果指定通配符( *),则PsExec在当前域中的所有计算机上运行命令。
@ File PsExec将在文件中列出的每台计算机上执行该命令。
执行命令的应用程序的名称。
要传递的参数(请注意,文件路径必须是目标系统上的绝对路径)。
-接受此标志以禁止显示许可证对话框。
例如,您可以用引号将名称中带有空格的应用程序括起来
pec marklap " c: long name app . exe "
只有当按下回车键时,输入才会传递到远程系统。键入Ctrl-C将终止远程进程。
如果省略用户名,该过程将在远程系统上您的帐户的上下文中运行,但您将无法访问网络资源(因为这是欺诈性的)。如果远程进程需要访问网络资源或在另一个帐户下运行,请使用域用户语法指定有效的用户名。请注意,密码和命令在传输到远程系统时会被加密。
PsExec返回的错误代码特定于您正在运行的应用程序,而不是PsExec。
例子
我写的文章介绍了PsExec的工作模式,并提供了使用技巧:
以下命令在 marklap上启动交互式命令提示符:
pec marklap cmd
此命令使用/all开关在远程系统上执行IpConfig,并在本地显示结果输出:
Pec marklap ipconfig/all
该命令将程序test.exe复制到远程系统,并以交互方式执行:
test.exe
如果程序不在系统路径上,请指定它在远程系统上安装的完整路径:
pec marklap c: bin test.exe
在系统帐户中交互式运行注册表编辑,以查看SAM和SECITY项目的内容:
pec-I-d-sc: windows regedit.exe
要以有限的用户权限运行Internet Explorer,请使用以下命令:
pec -l -d" c: pgram文件 internetexplorer iexplore.exe "
- 安卓合集
- 软件合集
- 浏览器
- 电脑管家
- 安卓游戏
软件排行榜
热门推荐
-
冰点还原永久免费版
v8.30 破解版附注册机 / 15.4MB / 简体中文
-
Process View
V5.2.15.1 / 97.2 KB / 简体中文
-
ahci驱动
64&32 / 293KB / 简体中文
-
u盘格式化工具
v2.0 / 821.45KB / 简体中文
-
网络访问修复
v3.3 / 602.72K / 简体中文
-
Malwarebytes AdwCleaner
v7.4.0 / 7.3M / 简体中文
-
护卫神主机大师
v3.5.2 / 222.2M / 简体中文
-
EventLog Analyzer
v4.3 / 309M / 简体中文
-
CrystalDiskInfo
v8.5.0 / 121M / 简体中文
-
行云海定时关机助手官方版
v2.4.0.0 / 1.54 MB / 简体中文
装机必备软件
-
word文档密码破解工具应用软件
-
冰点还原永久免费版系统软件
-
人生日历应用软件
-
一彩送货单管理系统应用软件
-
Process View系统软件
-
开心手机恢复大师其他类别
-
pdf文件阅读器应用软件
-
视频剪辑格式工厂应用软件
-
PhotoMetri应用软件
-
specinker应用软件
-
miwifi驱动驱动工具
-
海洋色音效助手影音软件
-
乐播投屏影音软件
-
seo外链助手网络软件
-
AES安全加密记事本安全相关





