Я пытаюсь запустить исполняемый файл на удаленных машинах с переменными, предоставленными через файл csv. Файл csv выглядит следующим образом: (состоит из переменных, запрашивающих удаленные машины - нет проблем с этим битом).
"Server","Command", "Arg1","Arg2","Arg3","FName"
Server1,C:\path\to\exe with spaces, /arg1, "arg2", arg3, filename
Проблема в том, что я хотел бы как-то сохранить "" вокруг «Arg2», но import-csv удаляет их, я считаю ..
Код импорта:
Import-Csv $LogFolder\Machines.csv | ForEach-Object {
Invoke-Command ComputerName $_.Server {
param($Command, $Arg1, $Arg2, $Arg3, $FName)
$Command
} -Args $_.Arg1, $_.Arg2, $_.Arg3, $_.FName
}
Я попытался указать путь к исполняемому файлу вместо $ Command с &
Import-Csv $LogFolder\Machines.csv | ForEach-Object {
Invoke-Command ComputerName $_.Server {
param($Command, $Arg1, $Arg2, $Arg3, $FName)
& "C:\path\to\exe with spaces"
} -Args $_.Arg1, $_.Arg2, $_.Arg3, $_.FName
}
Команда запускается, и я ничего не получаю, но я ожидаю увидеть файл на удаленном сервере, который не появляется ...
Есть ли что-то, чего я слепо пропускаю в приведенном выше коде?
Извините, я все еще изучаю PowerShell, и мое google-fu в данный момент не помогает ..: (
Спасибо