Как запустить исполняемый файл с помощью 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
является нулевым), следовательно, нет ошибки.