Как запустить CMD через Invoke-Command - PullRequest
0 голосов
/ 25 мая 2018
$remoteinst = "\Windows\Temp\MyFolder"
$remotecomp = ComputerName
$remotesess = New-PSSession $remotecomp
$remotedir = "C:" + $remoteinst + "\Install.cmd"
Invoke-Command -Session $remotesess -ScriptBlock {$remotedir}

Я пытаюсь запустить файл Install.cmd на удаленном компьютере.Я понял, что не могу передавать команды через Enter-PSSession, но я пытаюсь решить эту проблему.

Ответы [ 2 ]

0 голосов
/ 25 мая 2018
  • Нет необходимости создавать явный сеанс: вы можете передать имя целевого компьютера непосредственно Invoke-Command -ComputerName <computerName>.

  • Вызов команды, имя / путьхранится в переменной требует &, оператор вызова.

  • Блок сценария, переданный в Invoke-Command -ComputerName ..., выполняется удаленно ,поэтому вы не можете напрямую использовать локальные переменные в нем;в PSv3 + самый простой способ решить эту проблему - использовать область действия using: $using:<localVarName>

Учитывая все эти моменты, мы получаем:

$remoteinst = "\Windows\Temp\MyFolder"
$remotecomp = ComputerName # Note: This syntax assumes that `ComputerName` is a *command*
$remotedir = "C:" + $remoteinst + "\Install.cmd"
Invoke-Command -ComputerName $remoteComp -ScriptBlock { & $using:remotedir }
0 голосов
/ 25 мая 2018

Добавьте cmd /c в начало пути к пакетному файлу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...