Powershell 筛选非自动注册证书的Certutil.exe输出

Powershell 筛选非自动注册证书的Certutil.exe输出,powershell,filter,windows-server-2008-r2,ca,Powershell,Filter,Windows Server 2008 R2,Ca,我正在使用查询我们的CA以查找过期证书。但是,我试图过滤输出中的非自动注册证书,因为它们是唯一感兴趣的证书。这就是问题所在: certutil -view -restrict "NotAfter>=$d1,NotAfter<=$d2" -out "Request ID, Request Submission Date, Request Common Name, Requester Name, Request Email Address, Request Distinguished N

我正在使用查询我们的CA以查找过期证书。但是,我试图过滤输出中的非自动注册证书,因为它们是唯一感兴趣的证书。这就是问题所在:

certutil -view -restrict "NotAfter>=$d1,NotAfter<=$d2" -out "Request ID, Request Submission Date, Request Common Name, Requester Name, Request Email Address, Request Distinguished Name, CertificateTemplate, NotAfter" -config "$caServer\$caName"

certutil-view-restrict“NotAfter>=$d1,NotAfter=$d1,NotAftercertutil对日期时间格式非常挑剔,因此可能会导致一些问题。请尝试指定一种显式格式,如下所示:

# $sd, $ed are datetimes
certutil -view -restrict "NotAfter>={0},NotAfter<={1}" -f $sd.toString("d.M.yyyy H:mm"), $ed.toString("d.M.yyyy H:mm")
#$sd,$ed是日期时间

certutil-view-restrict“NotAfter>={0},NotAfter这是一个旧版本,但仍然可能帮助某些人

您需要添加的是-restrict“enrollmentflags=0”


它们不是自动注册的

对不起,我本可以说得更清楚一点-$d1和$d2的计算方式如下:$d1=(获取日期)。ToSortDateString()($d2就是这个加上指定的警告天数)。因此我担心的不是日期,而是注册标志。
# $sd, $ed are datetimes
certutil -view -restrict "NotAfter>={0},NotAfter<={1}" -f $sd.toString("d.M.yyyy H:mm"), $ed.toString("d.M.yyyy H:mm")