PsExec用法及远程操控执行脚本举例

PsExec用法及远程操控执行脚本举例

一、 简介

PsExec是一种轻量级的telnet替代品,可以在其他系统上执行进程,完成控制台应用程序的完全交互,而无需手动安装客户端软件。PsExec强大的用途是在远程系统上启动交互式命令提示,远程启动执行包括IpConfig等cmd命令,故能够远程启动服务器上程序、脚本等。

二、 环境配置

2.1 安装PsTools

安装PsTools到执行远程命令的本地环境,安装过程非常简单,只需要下载压缩包,解压,配置本地环境即可,如果不配置本地环境,可以直接在解压文件夹中执行cmd或PowerShell打开
Download:下载PSTools
配置本地环境变量或解压压缩包,在压缩包下按住Shift鼠标右击,打开命令窗口,下图表示安装成功。
在这里插入图片描述

2.2 配置执行环境

配置PsExec命令执行远程服务器文件替换脚本的执行环境,以下配置是针对于执行远程服务器进行文件替换,拷贝的脚本操作,若无该需求,可以尝试忽略。
1.进入远程服务器打开控制台cmd,输入 net share ipc$
在这里插入图片描述
2.继续输入 net share admin$
在这里插入图片描述

三、 PsExec使用说明

用法:
psexec [\ computer [,computer2 [,…] | @file ]] [ - u user [-p psswd] [ - ns] [ - r servicename] [ - h] [ - l] [ - s | -e] [ - x] [ - i [session]] [ -c executable [-f | -v]] [ - w directory] [ - d] [ - ] [ - an,n,…] cmd [arguments]
参数说明:

参数描述
-aSeparate processors on which the application can run with commas where 1 is the lowest numbered CPU. For example, to run the application on CPU 2 and CPU 4, enter: “-a 2,4”
-cCopy the specified executable to the remote system for execution. If you omit this option the application must be in the system path on the remote system.
-dDon’t wait for process to terminate (non-interactive).
-eDoes not load the specified account’s profile.
-fCopy the specified program even if the file already exists on the remote system.
-iRun the program so that it interacts with the desktop of the specified session on the remote system. If no session is specified the process runs in the console session.
-hIf the target system is Vista or higher, has the process run with the account’s elevated token, if available.
-lRun process as limited user (strips the Administrators group and allows only privileges assigned to the Users group). On Windows Vista the process runs with Low Integrity.
-nSpecifies timeout in seconds connecting to remote computers.
-pSpecifies optional password for user name. If you omit this you will be prompted to enter a hidden password.
-rSpecifies the name of the remote service to create or interact with.
-sRun the remote process in the System account.
-uSpecifies optional user name for login to remote computer.
-vCopy the specified file only if it has a higher version number or is newer on than the one on the remote system.
-wSet the working directory of the process (relative to remote computer).
-xDisplay the UI on the Winlogon secure desktop (local system only).
-prioritySpecifies -low, -belownormal, -abovenormal, -high or -realtime to run the process at a different priority. Use -background to run at low memory and I/O priority on Vista.
computerDirect PsExec to run the application on the remote computer or computers specified. If you omit the computer name, PsExec runs the application on the local system, and if you specify a wildcard (\*), PsExec runs the command on all computers in the current domain.
@filePsExec will execute the command on each of the computers listed in the file.
cmdName of application to execute.
argumentsArguments to pass (note that file paths must be absolute paths on the target system).
-accepteulaThis flag suppresses the display of the license dialog.

中文对照

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

四、 应用举例

1.远程操控执行脚本

PsExec \\远程服务器IP -u 登录名 -p 密码 -d -i 0 "脚本路径\本地文件替换脚本.bat"

关于文件替换脚本的创建可以参考这里:window下本地、远端文件替换脚本bat及举例
2.官网例子
(1)以下命令在\ marklap上启动交互式命令提示符:

psexec \\ marklap cmd

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

psexec \\ marklap ipconfig / all

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

psexec \\ marklap -c test.exe

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

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

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

psexec -i -d -sc:\ windows \ regedit.exe

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

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

参考

以上为个人整理总结的知识,如有遗漏或错误欢迎留言指出、点评,如要引用,请写引用说明,谢谢。
[1]: https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec

PsExec用法如下:      1)psexec   usage: psexec \computer [-u username [-p password] [-c [-f] [-i][-d] program [arguments]      psexec是一个远程执行工具,你可以像使用telnet一样使用它。   它的使用格式为:   psexec \远程机器ip [-u username [-p password] [-c [-f] [-i][-d] program [arguments]   它的参数有:   -u后面跟用户名 -p后面是跟密码的,如果建立ipc连接后这两个参数则不需要。(如果没有-p参数,则输入命令后会要求你输入密码)   -c <[路径]文件名>:拷贝文件到远程机器并运行(注意:运行结束后文件会自动删除)   -d不等待程序执行完就返回,(比如要让远程机器运行tftp服务端的时候使用,不然psexec命令会一直等待tftp程序结束才会返回) -i 在远程机器上运行一个名为psexesvc进程,(到底什么用弄不明白) @file 用于针对文本文件中所指定的所有计算机运行该命令(下同)      假设我在远程机器ip有一个账号,账号名是:abc 密码是:123   比如想要用telnet一样在远程系统执行命令可以打:   psexec \远程机器ip -u abc -p 123 cmd      如果想要远程机器执行本地c:srm.exe文件可以打:   psexec \远程机器ip -u abc -p 123 -c c:srm.exe      如果想要让远程机器执行本地上tftp服务端,(假设tftp服务端在本地c:tftp32.exe),可以打:   psexec \远程机器ip -u abc -p 123 -c c:tftp32.exe -d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值