【问题标题】:Executing .cmd file on remote machine using WMI使用 WMI 在远程计算机上执行 .cmd 文件
【发布时间】:2015-10-30 11:19:57
【问题描述】:

我需要使用 WMIC 在远程机器上执行 .cmd 文件,我不能使用 ssh-power shell。 我尝试执行下面的代码 并在控制台上打印了以下内容:

C:\>WMIC/node:"remote-server01" process call create "cmd.exe /c C:\test.cmd"

Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
        ReturnValue = 0;
};

但是在远程机器上什么都没有执行。

【问题讨论】:

  • 为什么你的代码中C:` and test.cmd`之间有一个空格
  • 它的 C:\test.cmd - 中间没有空格,输入错误

标签: cmd wmi remote-access rpc windows-networking


【解决方案1】:

由于进程创建失败并出现“找不到路径” 错误,远程计算机上没有执行任何操作,如documentation

中所述

返回值

如果进程创建成功,则返回值 0(零), 以及任何其他表示错误的数字。对于其他错误代码, 请参阅 WMI 错误常量或 WbemErrorEnum。对于一般 HRESULT 值, 请参阅系统错误代码。

成功完成 (0)
访问被拒绝 (2)
权限不足(三)
未知故障 (8)
找不到路径 (9)
无效参数 (21)
其他 (22–4294967295)

“方法执行成功”是指调用方法,而不是创建进程。

【讨论】:

  • 我试图修复它,现在它就像 Executing (Win32_Process)->Create() 方法执行成功。输出参数:__PARAMETERS { ProcessId = 7984 的实例;返回值 = 0; };远程机器 C:\Users\tiwaris> 上仍然没有执行任何操作
  • @aquesh,如果您有 ProcessId,则该进程已启动。尝试运行tasklist /fi "pid eq 7984"(您的进程ID)。如果该进程存在,它可能在单独的会话中运行。如果它不是pressent,可能它已经结束了。
  • 它说没有任务正在运行:(
  • 你有什么方法可以调用远程机器上的 cmd 文件,除了使用 ssh,我只需要使用命令行来执行它
  • @aquesh,如果你有进程 id,至少 cmd.exe 已启动。尝试运行一个只包含pause 的批处理文件以强制它等待并再次测试。您可以使用 Microsoft Sysinternals 工具中的psexec,但您必须从 Microsoft 下载它。无论如何,WMI 应该可以工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多