PsTools 远程工具
PsExec
PsExec是一个远程执行工具,你可以像使用telnet一样使用它。命令如下:
psexec [\\computer[,computer2[,...] | @file]][-u user [-p psswd][-n s][-r servicename]
[-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory]
[-d][-<priority>][-a n,n,...] program [arguments]
- computer:指示 PsExec 在指定的一台或多台计算机上运行应用程序。如果省略计算机名称,则 PsExec 将在本地系统上运行应用程序;如果输入计算机名称“\*”,则 PsExec 将在当前域中的所有计算机上运行应用程序;
- @file:指示 PsExec 在指定的文本文件中列出的每台计算机上执行相应的程序;
- -u:指定用于登录远程计算机的可选用户名;
- -p:指定用户名的密码(可选)。如果省略此选项,系统将提示您输入隐藏密码;
- -n:指定与远程计算机连接的超时(秒);
- -r:指定要创建的远程服务名称(PsExec 在远程机器上自动创建一个服务进程);
- -l:以受限用户身份(去除 Administrators 组的权限,并且只允许使用分配给 Users 组的权限)运行进程。在 Windows Vista 上,此进程将以“低完整性”运行;
- -s:在系统帐户中运行远程进程;
- -e:不加载指定帐户的配置文件;
- -x:在 WinLogon 桌面上显示 UI(仅限于本地系统);
- -i:运行程序,以便它与远程系统中指定会话的桌面进行交互。如果未指定会话,则进程将在控制台会话中运行(可以在远程机器上执行
> query user
查看用户的会话标识); - -c:将指定的程序复制到远程系统以便执行。如果省略此选项,则应用程序必须位于远程系统上的系统路径中;
- -f:将指定的程序复制到远程系统,即使远程系统中已存在该文件;
- -v:仅在指定文件具有更高版本号或该文件比远程系统上的文件新时复制该文件;
- -w:设置进程的工作目录(相对于远程计算机);
- -d:不等待应用程序终止。请只对非交互式应用程序使用此选项;
- -<priority>:指定 –low、-belownormal、-abovenormal、-high 或 -realtime 按不同优先级运行进程;
- -a:用逗号分隔运行应用程序的处理器,CPU 编号最小为 1。例如,要在 CPU 2 和 CPU 4 上运行应用程序,请输入:“-a 2,4”;
- program:要执行的程序的名称;
- arguments:要传递的参数(请注意,文件路径必须是目标系统中的绝对路径)
应用示例:
#在 \\marklap 上启动交互式命令提示窗口
psexec \\marklap cmd
#通过 /all 开关在远程系统上执行 IpConfig,并在本地显示输出结果
psexec \\marklap ipconfig /all
#将程序 test.exe 复制到远程系统,并以交互方式执行此程序
psexec \\marklap -c test.exe
#如果远程系统中已经安装的程序不在系统路径中,请指定该程序的完整路径
psexec \\marklap c:\bin\test.exe