Jer*_*ers 2 certificate certutil
当您使用命令行工具CertUtil.exe或CertMgr.exe安装或删除根 CA 证书时,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]
Run Code Online (Sandbox Code Playgroud)
和这个:
[Security Warning]
You are about to install a certificate from a certification authority (CA) claiming to represent:
...
[&Yes] [&No]
Run Code Online (Sandbox Code Playgroud)
--杰罗恩
最简单的解决方案是将答案合并到脚本中,如下所示:
echo Y | CertUtil.exe ....
Run Code Online (Sandbox Code Playgroud)
此方法并不总是适用于所有程序,因此您仍然需要对其进行一些测试。
对于消息框,您可以将nircmd与dlg参数一起使用。
在脚本中,您还可以使用内置命令timeout /t seconds为消息框指定显示的秒数。
以下是帮助文件的摘录:
nircmd.exe dlg [Process Name] [Window Title] [Action] [Parameters]允许您与 Windows 的标准对话框和消息框进行交互。当对话框打开时,您可以使用此命令“单击”确定/取消/是/否按钮,或填充对话框中的文本框。
以下命令将为 Explorer 进程的任何问题对话框选择“是”答案:
dlg "explorer.exe" "" click yes以下命令将为任何进程的任何问题对话框选择“取消”答案:
dlg "" "" click cancel参数说明:
[进程名称]:指定创建所需窗口的进程。您只能指定进程名称或进程的完整路径。如果此参数为空字符串("" ),则该命令将在任何进程上执行。
[窗口标题]:指定要执行操作的窗口的标题。如果此参数为空字符串("" ),则无论窗口标题如何,该命令都将在任何窗口上执行。
[操作]:您可以指定以下选项之一:
单击:单击指定的按钮。您可以指定以下预定义值之一(仅适用于标准 Windows 对话框!):yes、no、ok、cancel、retry、ignore、close、help。您还可以将任何控件 ID 指定为数值。
settext:设置指定控件的文本。此操作的第一个参数指定控件的 ID,第二个参数指定文本。
| 归档时间: |
|
| 查看次数: |
15848 次 |
| 最近记录: |