Как запустить исполняемый файл с помощью Powershell

С физического компьютера я хочу запустить исполняемый файл на удаленной виртуальной машине. Исполняемый файл уже находится на удаленной виртуальной машине. Я использую командлет:

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

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

Я анонимный, но я уверен, что они исправляют.

В командной строке Powershell сообщение об ошибке отсутствует. И подсказка становится доступной после командлета, поэтому она не зависает.

Я уверен, что служба WS-Management работает и правильно настроена на удаленной виртуальной машине, потому что этот командлет работает:

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

Можете ли вы помочь мне найти, что не так с моим решением или предложить другой способ достижения цели?

Большое спасибо!

1 ответ

$Command определяется на локальном компьютере и не будет доступен внутри блока скриптов. Когда вы используете переменную внутри блока скриптов, вы должны передать ее в качестве аргумента.

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

Итак, здесь просто выполняется пустой ScriptBlock(в качестве переменной $Command является нулевым), следовательно, нет ошибки.

Другие вопросы по тегам