gpt4 book ai didi

batch-file - WMIC : Run Batch Script Remotely

转载 作者:行者123 更新时间:2023-12-04 17:57:11 25 4
gpt4 key购买 nike

我一直在尝试通过运行批处理脚本从 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;
};

经过一些研究,根据https://msdn.microsoft.com/en-us/library/aa389388(v=vs.85).aspx,“9”的返回值似乎是“找不到路径” ,但我已经验证该路径存在于远程服务器上。

我尝试运行的 test.bat 文件非常简单,应该只写入一个文本文件。

@echo This is a test.> test.txt

我已验证这两个文件都存在于服务器上,并且已将“EVERYONE”授予共享文件夹“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;
};

最佳答案

我能够让以下内容在 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 包含预期的批处理文件命令的结果。

注意事项:

  • 如前所述,映射的驱动器在远程作业中不可见
  • 您正在目标机器的环境中执行 - 驱动器盘符需要对该机器有意义
  • “echo”等内部命令要求作业以“CMD.EXE/c”开头
  • 将多个命令放在括号内,并用与号 (&) 分隔
  • 不要冲突文件访问。我使用 testout.txt 和 testout2.txt 文件。如果我给它们取了相同的名字,一组输出就会丢失。
  • 您以这种方式所做的任何事情都不会被用户看到;作业以无法在用户屏幕上显示的方式运行。
  • 如我在示例中所示,以明文形式发送密码存在安全隐患,应该避免。不过,我不确定在这种情况下是否有更好的方法来映射驱动器。

关于batch-file - WMIC : Run Batch Script Remotely,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39442786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com