Я ценю, что вы нашли время, чтобы прочитать это.remote Несколько вызовов с использованием Powershell
Мой вопрос заключается в следующем: Я пытаюсь создать программу, которая использует PowerShell для выполнения следующих действий:
Возьмите таблицу генерируемый вне PowerShell
Loop призывает к PowerShell сценарий с параметрами из таблицы
Сценарий powershell вызывает специальный тип .cmd-файла, а затем запускает команды на нем, которые расположены в другом общем местоположении.
Теперь моя проблема связана с третьим пунктом.
настоящее время я использую следующий вызвать мой сценарий (и заданы параметры просто жёстко, чтобы это заработало, они будут генерироваться звонков из шага 2 позже):
powershell.exe -ExecutionPolicy Bypass -Command {invoke-command -file \\sharedlocation\test5.ps1 -computername server1121 -argumentlist 7058,Jason}
внутри test5.ps1 в настоящее время:
param(
[Parameter(Mandatory=$true)]
[string] $Var1,
[Parameter(Mandatory=$true)]
[string] $Var2
)
$CommandsPath = "\\sharedlocation\testcommands.cmd"
$path = "C:\"+$Var1+"\TOOLS\"+$Var2+"launchtool.cmd"
$scriptPath = [scriptblock]::Create($path)
$out | invoke-command {PARAM($MyArg) $scriptPath } -ArgumentList $CommandsPath
Я также попытался с помощью
$CommandsPath = "\\sharedlocation\testcommands.cmd"
$path = "C:\"+$Var1+"\TOOLS\"+$Var2+"\launchtool.cmd & " + $CommandsPath
$scriptPath = [scriptblock]::Create($path)
$out | invoke-command {$scriptPath }
у меня есть lso попытался вызвать с помощью hardcoded testcommands вместо того, чтобы быть в файле.
Теперь моя проблема в обоих случаях, она запускает launchtool.cmd, но не передает файл testcommands.cmd.
Однако, когда на машине я бегу
C:\7058\TOOLS\Jason\launchtool.cmd & \\sharedlocation\testcommands.cmd
Он отлично работает.
Любые идеи, что я делаю неправильно?
Ты вопрос, кажется, есть больше, чтобы сделать с получением CMD и PowerShell, чтобы сделать то же самое, а не «несколько удаленных вызовов» – mrwaim
Что '$ out' и почему вы конвейер в' Invoke -Command'? – Matt