如何在带有PowerShell的虚拟机上运行可执行文件[复制]

q43xntqr  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(121)

这个问题这里已经有答案了

Passing PowerShell variables into a script block(1个应答)
四年前就关门了。
我想在远程虚拟机上运行可执行文件。该可执行文件已在远程虚拟机上。我使用的cmdlet是:

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

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

我匿名了<value>,但我确信它们是正确的。
在PowerShell的命令提示符下,没有错误消息。并且在cmdlet之后可以访问提示,因此它不会挂起。
我确信服务WS-Management正在运行并且已在远程虚拟机上正确配置,因为此cmdlet可以工作:

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

你能帮我找出我的解决方案出了什么问题吗?或者提出另一种实现目标的方法?

6rqinv9w

6rqinv9w1#

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

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

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

相关问题