![]() |
![]() |
![]() |
|
Не отрабатывает команда 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
|
> "Добрый И"
Натренировал андроида на свою голову (: |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |