如何使用 WMIC 从远程服务器启动应用程序
Posted
技术标签:
【中文标题】如何使用 WMIC 从远程服务器启动应用程序【英文标题】:How to start an application from a remote server using 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: 已经有一个空格我还添加了另一个空格我仍然得到相同的错误代码。 他说的是Program
和Files
之间的空格。但更优雅的解决方案可能是像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
命令中。
【参考方案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 就是一个例子。以上是关于如何使用 WMIC 从远程服务器启动应用程序的主要内容,如果未能解决你的问题,请参考以下文章
“由于远程桌面服务正忙,因此无法完成你尝试执行的任务,请在几分钟后重试,其他用户应该任然能够登录,
Windows Server 2016 怎么重新启动远程服务器