HI,早上好,cantgis又和大家见面了。
今天我们聊聊关于证书这块的事情,我们使用了很多网站验证证书,其中 银行、娱乐网站等等,他们每年都会到期一次。
在Internet Explorer中的证书列表,过期的证书的集合,不规则的存在着,我们如何查询获得和处理呢?下面cantgis 带给大家这套解决方案。
想要获得和找到这些证书,我们要使用x.509证书提供商(Microsoft.PowerShell.Security\Certificate)
1
<code>$myCerts</code> <code>= </code><code>Get-Item</code> <code>Cert:\CurrentUser\My</code>
默认情况下这个store是只读的,我们不要打开它,当然也不能删除掉。
成员名称
说明
IncludeArchived
打开 X.509 证书存储区并添加存档证书。
MaxAllowed
以允许最高级访问的方式打开 X.509 证书存储区。
OpenExistingOnly
ReadOnly
以只读方式打开 X.509 证书存储区。
ReadWrite
以读写方式打开 X.509 证书存储区。
OK 我们使用
<code>$myCerts</code><code>.Open(</code><code>[System.Security.Cryptography.X509Certificates.OpenFlags]</code><code>::ReadWrite)</code>
通过下面的cmdlet过滤那些在昨天就过期的证书,$mycerts 已经指向的路径,我们可以拿它来做一个参考,并不是让大家去重复的编码形成无用的字符串。
2
<code>$today</code> <code>= </code><code>Get-Date</code>
<code>$ExpiredList</code> <code>= </code><code>Get-ChildItem</code> <code>$myCerts</code><code>.PSPath | </code><code>Where-Object</code> <code>{ </code><code>$_</code><code>.NotAfter </code><code>-lt</code> <code>$today</code> <code>}</code>
我们不想每次都调用管道:where-object 的cmdlet指令,因为我们不需要这样
删除么个证书的x.509证书存储区,然后我们执行查询
3
4
5
<code>ForEach</code> <code>(</code><code>$Cert</code> <code>in</code> <code>$ExpiredList</code><code>) {</code>
<code> </code><code>$myCerts</code><code>.Remove(</code><code>$Cert</code><code>)</code>
<code>}</code>
<code> </code>
<code>$myCerts</code><code>.Close() </code><code># We opened it, so we need to close it.</code>
在powershell 3.0 中我们可以整合在一起来执行
6
7
8
9
10
<code>Get-ChildItem</code> <code>Cert:\CurrentUser\My |</code>
<code>Where-Object</code> <code>NotAfter </code><code>-lt</code> <code>$today</code> <code>|</code>
<code>Remove-Item</code>
<code> </code>
<code>#或者</code>
<code>ForEach-Object</code> <code>-begin</code> <code>{ </code><code>$now</code> <code>= </code><code>get-date</code> <code>}</code> <code>-process</code> <code>{ </code><code>if</code> <code>(</code><code>$PSItem</code><code>.NotAfter </code><code>-lt</code> <code>$now</code> <code>)</code>
本文转自cantgis 51CTO博客,原文链接:http://blog.51cto.com/cantgis/1228707,如需转载请自行联系原作者