Имя: Пароль:
1C
1С v8
Не отрабатывает команда certutil в WshShell
0 kmkk88
 
03.11.17
16:38
Добрый День.

Прошу подсказать по следующему вопросу: пытаюсь запустить утилиту Certutil с параметрами, но именно в WshShell она не исполняется. Через КомандаСистемы() все отрабатывает нормально. Подскажите, в чем может быть причина.
Код:
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.Run("Certutil -dump " + Символ(34) + "D:\Счет\5.cer" + Символ(34) +">" + Символ(34) +"D:\Счет\5.txt" + Символ(34));
1 AlvlSpb
 
04.11.17
01:47
(0) Символ 34  - это кавычка. Вы уверены, что она нужна? Какой синтаксис работает в командной строке винды?
2 Сияющий в темноте
 
04.11.17
20:15
во первых,путь
во вторых,расширение
иикавычки нужны только если в именииыацла есть пробелы илм кавычки
3 AlvlSpb
 
04.11.17
20:35
(2) +1
(0) WshShell работает по типу командной строки, значит  в Run Должна быть обычная строка запуска приложения Certutil
Т.е. что-то типа
WshShell.Run("Certutil -dump D:\Счет\5.cer > D:\Счет\5.txt")
Правда одно замечание, перед -dump по описаниям, должен быть еще какой-то параметр, типа -v, но точной инфы как-то не нашел
4 AlvlSpb
 
04.11.17
20:37
(3) + Это верно, если Certutil  находится в переменных окружения, иначе надо указывать полный путь к программе
5 kmkk88
 
07.11.17
08:50
(1) Пример упростил, т.к. путь, где лежит серт выбирает пользователь и пишется во временный текстовый файл. Без кавычки тоже не работает. В том то и проблема, что в командной строке эта строчка отрабатывает отлично, в процедуре КомандаСистемы() тоже, а вот в WshShell почему-то не хочет.
6 Fedor-1971
 
07.11.17
09:39
(5) тебе уже сказали, укажи полный путь и расширение
WshShell.Run(ВыбранныйПользователемПуть+"Certutil.exe -dump D:\Счет\5.cer ...). По идее, должно отработать даже при наличии пробелов в ВыбранныйПользователемПуть, если нет надо дополнительно обернуть символом ".
7 kmkk88
 
07.11.17
12:57
(6) Насколько я понял, так ?
        WshShell = Новый COMОбъект("WScript.Shell");
        WshShell.Run("C:\Windows\System32\сertutil.exe -dump D:\Счет\5.cer > D:\Счет\5.txt");

Это не работает вообще нигде, в т.ч. просто в командной строке
8 AlvlSpb
 
07.11.17
15:08
(7) в командной строке должно быть без кавычек
C:\Windows\System32\сertutil.exe -dump D:\Счет\5.cer > D:\Счет\5.txt
и посмотрите все-таки перед -dump должен быть еще параметр
9 Филиал-msk
 
07.11.17
15:32
(8) В командной строке должно быть с кавычками. На случай, если имя файла с пробелами.
10 AlvlSpb
 
07.11.17
16:06
(9) так в том и дело что в кавычках только путь к файлу и если есть каталоги с пробелами в именах. есть подозрение, что всю строку включает в ком строку с кавычками В RUN кавычки нужны (показать что это строка), в ком строке для этой строки кавычки лишние
11 Филиал-msk
 
07.11.17
19:05
(10) В кавычках должен быть как путь к исполняемому файлу так и к файлам-параметрам этого исполняемого файла. Добрый И внутри параметра, передаваемого методу Run через COM тоже. Не упорствуй.
12 Филиал-msk
 
07.11.17
19:07
> "Добрый И"
Натренировал андроида на свою голову (: