Использование буквенных символов <> в Powershell - PullRequest
0 голосов
/ 31 августа 2018

У меня есть команда, ниже которой я пытался выполнить команду invoke-command на удаленном сервере. Я получаю ошибки либо «<< было неожиданно в это время». или «Система не может найти указанный файл». Я предполагаю, что проблема связана с внутренними кавычками и символами <>, которые окружают пароль. Я попытался поместить `как escape-символ перед одинарными кавычками и <> безуспешно. Каков правильный синтаксис для использования одинарных кавычек и буквенных символов <>?

Regular Command which runs fine - \bin\svc.exe -service='install,scv1,UserName <Pwd>,,,M'

Команда Powershell:

 Invoke-Command -ComputerName $SourceSrv -ScriptBlock { cmd.exe /c "$Using:SourcePath\Bin\svc.exe -service='install,svc1, $Using:SvcUser <$Using:SvcPwd>,,,M' " }

1 Ответ

0 голосов
/ 31 августа 2018

Один из парсеров удаляет ваши кавычки и пытается интерпретировать символы команды <> для перенаправления файлов. Вам не нужно вызывать cmd.exe для вызова исполняемого файла, вы можете сделать это непосредственно из powershell (с оператором вызова &):

Invoke-Command -ComputerName $SourceSrv -ScriptBlock {
    & "$using:SourcePath\Bin\svc.exe" "-service='install,svc1, $using:SvcUser <$using:SvcPwd>,,,M'"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...