【问题标题】:How to run an executable with Powershell [duplicate]如何使用 Powershell 运行可执行文件 [重复]
【发布时间】:2018-09-18 18:24:51
【问题描述】:

从物理计算机上,我想在远程虚拟机上运行可执行文件。可执行文件已经在远程虚拟机上。我使用的 cmdlet 是:

$command = "c:\users\<username>\desktop\Myexecutable.exe"

Invoke-Command -ComputerName Machine98 -ScriptBlock {$command} -Credential <domain_name>\<username>

我匿名了,但我确信他们是正确的。

在Powershell的命令提示符下,没有错误信息。并且提示符在 cmdlet 之后变得可访问,因此它不会挂起。

我确定服务 WS-Management 正在运行,并且在远程虚拟机上已正确配置,因为此 cmdlet 有效:

enter-pssession -computername Machine98 -credential <domain_name>\<username>

您能帮我找出我的解决方案有什么问题或提出另一种实现方式吗?

非常感谢!

【问题讨论】:

  • 听起来您用来执行命令的机器上没有错误,但远程机器上可能有错误。有没有可以查看的日志?可能值得在您的脚本块中添加Start-Transcript
  • 另一个很好的故障排除资源是Test-Connection。有关详细信息,请参阅help Test-Connection -Full

标签: powershell vmware powershell-cmdlet working-remotely


【解决方案1】:

$Command 在本地机器中定义,在脚本块中不可用。当您在脚本块中使用变量时,您必须将其作为参数传递。

Invoke-Command -Computer Name -ScriptBlock {
    Param(
        [string]$Command
    )
    & $Command
} -ArgumentList $Command

所以在这里,它只是执行一个空的ScriptBlock(因为变量$Command为空),因此没有错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 2018-12-31
    • 2014-02-09
    • 1970-01-01
    相关资源
    最近更新 更多