Invoke-Command 不运行 bat 文件

Posted

技术标签:

【中文标题】Invoke-Command 不运行 bat 文件【英文标题】:Invoke-Command doesn't run the bat file 【发布时间】:2022-01-18 02:00:51 【问题描述】:

我正在为无人值守安装推出一个脚本,我为 Office 2019 安装构建了一个小型 .bat,当我运行它时它运行良好,但是当我通过 PowerShell 脚本调用它时,安装不运行。

有什么想法吗?

这是部分代码

Invoke-Command -ScriptBlock Start-Process -FilePath "c:\temp\Office2019\Install-32.bat" -ArgumentList "--quiet" -Verb RunAs -Wait

.bat 文件

setup.exe /configure configuration-x86.xml

Office 配置文件

  <Add OfficeClientEdition="32">
    <Product ID="ProPlus2019Volume" PIDKEY="MYKEY">
      <Language ID="en-us" />
    </Product>
  </Add>
  <Display Level="None" AcceptEULA="TRUE"/>
  <Property Name="AUTOACTIVATE" Value="1"/>
</Configuration>

非常感谢您的建议。

【问题讨论】:

我认为您不能使用参数列表来调用 bat 文件。您必须在 bat 文件本身中指定进行静默安装。或者您可以直接调用setup.exe -argumentlist “/configure $xmlfile /q” -wait,而不是使用 bat 文件 【参考方案1】:

Bat 文件只能由 OS shell 解释,即 cmd.exe。您的文件路径需要更改如下:

cmd.exe /c c:\temp\Office2019\Install-32.bat

Powershell 不会解释 bat 文件,它只运行 exe 文件和命令。

【讨论】:

您好,Digger,感谢您的回复。 感谢您的评论。事实上它已经解决了这个问题。这是因为我需要定义执行浴文件的工作目录,最后这句话是这样的: Invoke-Command -ScriptBlock Start-Process -WorkingDirectory "c:\temp\Office2019\" - FilePath "c:\temp\Office2019\Install-32.bat" -Wait -Verb RunAs 非常感谢。

以上是关于Invoke-Command 不运行 bat 文件的主要内容,如果未能解决你的问题,请参考以下文章

执行bat文件不弹窗

BAT文件运行时不显示命令窗口的方法

java中运行bat文件怎么才能不产生dos窗口,不带闪的

.bat 文件不起作用 |运行 .bat 文件时显示无效语法 | Python 3.4.0

如何在远程服务器上运行PowerShell命令

我要用C#调用外部的*.bat文件,如何判断*.bat文件已经运行完毕?如题 谢谢了