我一直试图通过运行批处理脚本从Jenkins构建计算机本身安装msi来让Jenkins部署作业工作。我已授予适当的访问权限,但仍无法使用WMIC远程运行以下命令
wmic /node:myServerIp /user:"clientpc\my-user" /password:"my-password" process call create "D:\someDir\someOtherDir\test.bat"
以上命令的以下回应:
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ReturnValue = 9;
};
经过一番研究,它看起来像是	 9'找不到路径'根据{{3}},但我已经验证了远程服务器上存在路径。
我尝试运行的test.bat文件非常简单,只需写入文本文件即可。
@echo This is a test.> test.txt
我已经确认服务器上存在这两个文件,并且已经授予了“每个人”的权利。到共享文件夹' someDir'。
我尝试过前缀&#cmd.exe / c'到了名为:
的路径wmic /node:myServerIp /user:"clientpc\my-user" /password:"my-password" process call create "cmd.exe /c D:\someDir\someOtherDir\test.bat"
...我收到了:
Invalid Verb Switch.
我通过提供错误密码验证用户访问权限是正确的,在这种情况下,权限被拒绝。
修改 将路径从D:\ someDir \ someOtherDir \ test.bat更改为D:\ someDir \ someOtherDir \ test.bat但现在收到以下错误:
ERROR:
Description = The RPC server is unavailable.
编辑2: 看起来我使用的RPC用户是导致错误的原因。仍在进行故障排除,但是当我使用我的AD用户时,而不是我创建的管理员来运行此用户,我得到以下重新...
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ReturnValue = 9;
};
答案 0 :(得分:0)
我能够让以下内容在Active Directory域上运行。
Wmic /node:"ComputerName" process call create "cmd.exe /c (net use o: /delete /y & net use o: \\Server\share /user:Domain\Administrator Password & o:\Dir\Subdir\test.cmd) >> c:\users\MyUser\testout2.txt"
test.cmd的非常简单的内容:
echo Just a test >> c:\users\MyUser\testout.txt
date /t >> c:\users\MyUser\testout.txt
time /t >> c:\users\MyUser\testout.txt
“作业”正在发送到域上的“ComputerName”。作业运行的批处理/脚本文件位于网络共享上。在“ComputerName”上运行的作业将看不到任何映射的驱动器,因此我删除并映射驱动器。我不认为有必要删除驱动器,但为了完整起见,我补充说。
执行后,testout2.txt显示执行命令的批处理文件 testout.txt包含预期的批处理文件命令的结果。
需要注意的事项: