【问题标题】:How to start an application from a remote server using WMIC如何使用 WMIC 从远程服务器启动应用程序
【发布时间】:2019-08-21 21:03:43
【问题描述】:

在 Windows 7 中,我试图在远程服务器上打开一个应用程序,我不想使用 Powershell 或 PSexec。我尝试使用以下代码在远程服务器上打开 Firefox,但收到 ReturnValue = 0 但 Firefox 从未启动。

WMIC.exe /node:ComputerName process call create "cmd.exe /C C:\Program Files\Mozilla Firefox\firefox.exe"

返回值 = 0

【问题讨论】:

  • 你考虑过路径中的空间吗?
  • 如果你在/C之间引用 C: 已经有一个空格我还添加了另一个空格我仍然得到相同的错误代码。
  • 他说的是ProgramFiles之间的空格。但更优雅的解决方案可能是像wmic /node:computername process call create "cmd /c start firefox" 一样启动它。使用cmd 的内部start 命令将在App Paths 中定位Firefox,因此您不必指定完整路径\\to\\executable。
  • 我已经删除了程序和无效文件之间的空间。我还尝试了您的代码,但仍然无法正常工作。两种情况都返回值为 0 但 Firefox 启动失败。
  • 我们从未建议您删除空间。您在 Windows 7 机器上登录到 Windows 的帐户是否也具有服务器上的管理员权限?如果没有,您可能需要将/user:/password: 开关添加到您的wmic 命令中。

标签: batch-file automation windows-7


【解决方案1】:

您的代码的问题是生成的cmd 进程找不到名为c:Program 的程序。这是因为您没有引用将完整路径保留为单个标记,并且您没有转义反斜杠。

要修复现有行,请在 Firefox 路径周围添加反斜杠转义引号。此外,在 wmic 的 WQL 参数中,文字反斜杠必须加倍。

wmic /node:server process call create "cmd /C \"C:\\Program Files\\Mozilla Firefox\\firefox.exe\""

不过,更好的解决方案是使用 cmd 的内部 start 命令在 App Paths 中查找 Firefox,这样您就不必指定完整路径\to\executable。

wmic /node:server process call create "cmd /c start firefox"

【讨论】:

  • 我已将您的代码与双反斜杠一起使用,但它不起作用。返回值 = 0
  • @drive 返回值 = 0 应为预期。这意味着没有错误。服务器是否登录到其桌面?您是否尝试使用与登录到服务器桌面环境相同的用户帐户来启动 Firefox?您的计算机是域的成员吗?
  • 我可以远程停止服务并重新启动它们。我确实有访问权限。服务器在桌面上。我正在使用相同的用户帐户,即管理员。两台服务器都在网络上。
  • 0 表示cmd 已启动。你为什么把它叫做你想叫firefox?所有远程程序都是不可见的。你怎么知道它没有开始?
  • 你是对的 Firefox 是不可见的,但我想做的是启动程序。 Firefox 就是一个例子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-12
  • 1970-01-01
  • 1970-01-01
  • 2012-12-01
  • 2016-04-10
  • 2014-10-24
相关资源
最近更新 更多