|
Как правильно задать команду для PowerShell | ☑ | ||
---|---|---|---|---|
0
ShultzMAN
28.06.23
✎
14:05
|
Всем привет!
Не закидывайте помидорами, я правда искал)) Вопрос несложный) Требуется прочитать данные о контейнерах сертификатов средствами 1С есть команда: Команда = Start-Process "C:\Program Files\Crypto Pro\CSP\certmgr.exe" -ArgumentList "-list", "-store mmy" -RedirectStandardOutput "c:\Temp\result.txt" данные команда вручную через консоль PS выполняется, файлик ("c:\Temp\result.txt") создается Затем WshShell = Новый COMОбъект("WScript.Shell"); Рез = WshShell.Exec("powershell " + Команда); Ошибка Рез = WshShell.Exec("powershell -Command " + Команда); Ошибка Подскажите как надо то)) |
|||
1
vde69
28.06.23
✎
14:28
|
что за ошибка?
|
|||
2
ShultzMAN
28.06.23
✎
14:58
|
Start-Process : Не удается найти позиционный параметр, принимающий аргумент "Files\Crypto".
строка:1 знак:1 + Start-Process C:\Program Files\Crypto Pro\CSP\certmgr.exe -ArgumentLi ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand |
|||
3
lEvGl
гуру
28.06.23
✎
15:00
|
в кавычках надо писать путь
|
|||
4
lEvGl
гуру
28.06.23
✎
15:01
|
в котором есть пробелы
|
|||
5
ShultzMAN
28.06.23
✎
15:05
|
сделал с кавычками. опять ругается, но уже другое
строка:1 знак:78 + ... Program Files\Crypto Pro\CSP\certmgr.exe -ArgumentList -list, -store ... + ~ Отсутствует аргумент в списке параметров. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : MissingArgument |
|||
6
lEvGl
гуру
28.06.23
✎
15:06
|
дайте дословно как в 1С написано
|
|||
7
ShultzMAN
28.06.23
✎
15:07
|
Какой синтаксис из этих правильный?
Рез = WshShell.Exec("powershell " + Команда); или Рез = WshShell.Exec("powershell -Command " + Команда); |
|||
8
lEvGl
гуру
28.06.23
✎
15:09
|
там много кавычек, они все должны быть, когда в 1С пишете, кавычек будет намного больше, чтобы получить итоговую строку с кавычками в пути, в "-list", "-store mmy" и т д.
то есть в отладке вы должны увидеть передаваемую строку именно в таком виде, как она пишется в повершелл |
|||
9
ShultzMAN
28.06.23
✎
15:10
|
СтрокаСкрипт = "Start-Process ""C:\Program Files\Crypto Pro\CSP\certmgr.exe"" -ArgumentList ""-list"", ""-store mmy"" -RedirectStandardOutput ""c:\TEMP\Alarm.txt""";
Команда = "powershell " + СтрокаСкрипт; WshShell = Новый COMОбъект("WScript.Shell"); ОшибкаСтрока = WshShell.Exec(Команда).StdErr.ReadAll() |
|||
10
ShultzMAN
28.06.23
✎
15:13
|
это строка без лишних кавычек
powershell Start-Process "C:\Program Files\Crypto Pro\CSP\certmgr.exe" -ArgumentList "-list", "-store mmy" -RedirectStandardOutput "c:\TEMP\Alarm.txt" |
|||
11
ShultzMAN
28.06.23
✎
15:15
|
если строку
Start-Process "C:\Program Files\Crypto Pro\CSP\certmgr.exe" -ArgumentList "-list", "-store mmy" -RedirectStandardOutput "c:\TEMP\Alarm.txt" выполнить в power shell е то всё отрабатывает отлично |
|||
12
lEvGl
гуру
28.06.23
✎
15:28
|
ну теперь с кавычками все нормально
через КомандаСистемы не пробовали? |
|||
13
lEvGl
гуру
28.06.23
✎
15:32
|
-ArgumentList -list, -store
вот это как то странно выглядит что говрит СП по этому менеджеру криптопро, как там задаются параметры и аргументы |
|||
14
ShultzMAN
28.06.23
✎
16:06
|
Спасибо за наводку
1. Работает так: СтрокаСкрипт = "Start-Process -NoNewWindow -FilePath 'C:\Program Files\Crypto Pro\CSP\certmgr.exe' -ArgumentList '-list -store mMy' -RedirectStandardOutput c:\TEMP\Alarm.txt"; Команда = "powershell " + СтрокаСкрипт; WshShell = Новый COMОбъект("WScript.Shell"); ОшибкаСтрока = WshShell.Exec(Команда).StdErr.ReadAll(); 2. Рез = WshShell.Exec("powershell " + Команда); или Рез = WshShell.Exec("powershell -Command " + Команда); Разницы нет |
|||
15
ShultzMAN
28.06.23
✎
16:07
|
"внутри" кавычки одинарные
|
|||
16
Garykom
гуру
28.06.23
✎
16:26
|
||||
17
eklmn
гуру
29.06.23
✎
09:46
|
чем не устатраивает просто?
КомандаСистемы("""""C:\Program Files\Crypto Pro\CSP\certmgr"""" -list > C:\temp\certout.txt"); |
|||
18
lEvGl
гуру
29.06.23
✎
10:00
|
эта неинтересна
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |