Вход | Регистрация

1С:Предприятие ::

Метки: 

Не отрабатывает команда certutil в WshShell

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

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


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует