Когда Вы устанавливаете или удаляете корневой сертификат CA с помощью инструментов CertUtil.exe или CertMgr.exe командной строки, Windows просит у пользователя подтверждение с помощью MessageBox (для сертификатов кроме корневых CA, этот вопрос не задают), даже для корневого хранилища сертификатов CA для текущего пользователя.
Для необслуживаемых обновлений сертификата, который является стычкой.
Я видел это поведение на Windows XP, Vista и 7 (я еще не проверил Windows Server 2003 и 2008, но я предполагаю, что они задают этот вопрос также).
У меня есть два вопроса:
Диалоговые окна подтверждения MessageBox похожи на это:
[Root Certificate Store]
Do you want to DELETE the following certificate from the Root Store?
...
[&Yes] [&No]
и это:
[Security Warning]
You are about to install a certificate from a certification authority (CA) claiming to represent:
...
[&Yes] [&No]
- jeroen
Самое легкое решение состоит в том, чтобы включить ответ в сценарий как это:
echo Y | CertUtil.exe ....
Этот метод не всегда работает на все программы, таким образом, все еще требуется некоторое тестирование на Вашей стороне.
Для окон сообщения можно использовать nircmd с dlg
параметр.
В сценарии можно также использовать встроенную команду timeout /t seconds
дать окну сообщения конкретное количество секунд, в которые можно появиться.
Вот извлечение справочного файла:
nircmd.exe dlg [Process Name] [Window Title] [Action] [Parameters]
Позволяет Вам взаимодействовать со стандартными диалоговыми окнами и окнами сообщения Windows. Когда диалоговое окно открыто, можно использовать эту команду, чтобы "нажать" ok/cancel/yes/no кнопки или заполнить текстовые поля в диалоговом окне.
Следующая команда выберет ответ 'Yes' для любого диалогового окна вопроса процесса Проводника:
dlg "explorer.exe" "" click yes
Следующая команда выберет ответ 'Cancel' для любого диалогового окна вопроса любого процесса:
dlg "" "" click cancel
Описание параметров:
[Имя процесса]: Указывает процесс, который создал желаемое окно. Можно указать только имя процесса или полный путь процесса. Если этот параметр будет пустой строкой (""), то команда будет выполняться на любом процессе.
[Заголовок окна]: Указывает заголовок окна, что Вы хотите выполнение действия. Если этот параметр будет пустой строкой (""), то команда будет выполняться на любом окне, независимо заголовок окна.
[Действие]: можно указать одну из следующих опций:
щелчок: Нажмите указанную кнопку. Можно указать одно из следующих предопределенных значений (Для стандартных диалоговых окон Windows только!): да, нет, хорошо, отмена, повторная попытка, игнорирует, закрывается, справка. Можно также указать любой идентификатор управления как числовое значение.
settext: Установите текст указанного управления. Первый параметр этого действия указывает идентификатор управления, и второй параметр указывает текст.