首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法通过Perl脚本使用PSEXEC在远程计算机上执行多个命令

无法通过Perl脚本使用PSEXEC在远程计算机上执行多个命令
EN

Stack Overflow用户
提问于 2014-10-10 15:56:43
回答 2查看 803关注 0票数 0

我正在尝试使用psexec连接到远程计算机,并执行多个命令,

当im尝试连接到sieb服务器管理器并执行一些相关命令时,执行挂起

代码语言:javascript
复制
system("cmd /c c:\\PsExec.exe \\\\$host_name  -u  $user_name  -p \ $pwd  cmd /c \" $command1 && srvrmgr/g enterprise server /u username /p password /e siebel /s siebserver /c \"cmd to execute\"\"");

我通过perl脚本运行命令,能够运行其他命令,唯一的问题是,当我尝试连接到服务器管理器并执行一些相关命令时

不能弄清楚问题是什么

EN

回答 2

Stack Overflow用户

发布于 2014-10-11 03:38:58

您需要调试命令的转义:

代码语言:javascript
复制
use 5.012;

my $host_name = 'HOST_NAME';
my $user_name = 'USER_NAME';
my $pwd       = 'PWD';
my $command1  = 'COMMAND1';

my $cmd = "cmd /c c:\\PsExec.exe \\\\$host_name  -u  $user_name  -p \ $pwd  cmd /c \" $command1 && srvrmgr/g enterprise server /u username /p password /e siebel /s siebserver /c \"cmd to execute\"\"";

print $cmd;

输出:

代码语言:javascript
复制
cmd /c c:\PsExec.exe \\HOST_NAME  -u  USER_NAME  -p  PWD  cmd /c " COMMAND1 && srvrmgr/g enterprise server /u username /p password /e siebel /s siebserver /c "cmd to execute""

几个笔记。

  1. 这个反斜杠\ $pwd isn
  2. \ $pwd
  3. 这些双引号"cmd to execute"可能需要在shell级别进行转义。

此外,如果您正在构造一个包含双引号的命令,使用不同的分隔符来生成字符串可能是一个好主意。

以下是我将如何修改您的命令

代码语言:javascript
复制
my $cmd = qq{cmd /c c:\\PsExec.exe \\\\$host_name  -u  $user_name  -p  $pwd  cmd /c " $command1 && srvrmgr/g enterprise server /u username /p password /e siebel /s siebserver /c \\"cmd to execute\\""};
票数 0
EN

Stack Overflow用户

发布于 2014-10-15 19:03:56

我可以看到srvrmgr命令和/g参数之间缺少空格

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26294511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档