【问题标题】:Powershell Revoke CertificatePowershell 吊销证书
【发布时间】:2016-06-14 14:41:04
【问题描述】:

我想删除用户及其计算机的证书。 我试过了:

Import-Module PSPKI
Import-Module ActiveDirectory

$RequesterNameComputer = "A\B$";
$RequesterNameUser = "A\C"; 

certutil -view -out "RequestID,SerialNumber,RequesterName,RequestType,NotAfter,CommonName" csv > "$env:TEMP\tempcerts.csv";

$Csv = Import-Csv -Path "$env:TEMP\tempcerts.csv";
$csv | Select-Object "requester name" | Group-Object -Property "requester name" | Sort-Object -Property count;

$computer = $csv | Where-Object {$_."requester name" -eq $RequesterNameComputer} | ?{$_."Certificate Template" -like "*PlaygroundComputer"}; 
$computer

$User = $csv | Where-Object {$_."requester name" -eq $RequesterNameUser} | ?{$_."Certificate Template" -like "*User"};
$User

我知道我必须使用certutil -revoke,但不知道如何将其调整为我的脚本,以便删除所有显示 $Computer 和 $User 的证书。

【问题讨论】:

  • 您肯定不想撤销特定用户/计算机的 CA。那没有任何意义。您的意思是要从用户的计算机中删除 CA 证书吗?还是您要撤销用户(计算机的?)证书?
  • 为什么删除特定的用户/计算机没有任何意义?例如,我想在他离开公司时吊销用户和计算机的证书。
  • 撤销 CA 没有意义。撤销用户和/或计算机证书是不一样的。
  • 你是对的。我的意思是撤销用户和计算机的 CA。通过 $Computer 我得到了计算机 CA 和 bei $User 我得到了用户 CA,我想撤销结果。
  • 这里的想法似乎有些混乱。 CA 并不意味着“证书”。它是“Certification Authority”的首字母缩写词,即颁发和撤销证书的实例。请说明您到底要做什么,具体在哪里做,以及相关的基础设施是什么样的。

标签: powershell pki certificate-authority


【解决方案1】:
Import-Module PSPKI
Import-Module ActiveDirectory

$RequesterNameComputer = "A\B";
$RequesterNameUser = "A\C"; 

#certutil: display information about the digital certificates that are installed on a DirectAccess client, DirectAccess server, or intranet resource.
certutil -view -out "RequestID,SerialNumber,RequesterName,RequestType,NotAfter,CommonName,Certificate Template" csv > "$env:TEMP\tempcerts.csv";

$Csv = Import-Csv -Path "$env:TEMP\tempcerts.csv";
$csv | Select-Object "requester name" | Group-Object -Property "requester name" | Sort-Object -Property count;

$computer = $csv | Where-Object {$_."requester name" -eq $RequesterNameComputer} | ?{$_."Certificate Template" -like "*PlaygroundComputer"}; 
$computer

ForEach ($com in $computer){
certutil -revoke $com.'Serial Number' 5;
}

# certutil -installdefaulttemplates  
$User = $csv | Where-Object {$_."requester name" -eq $RequesterNameUser} | ?{$_."Certificate Template" -like "*User"};
$User

foreach ($usr in $User){
certutil -revoke $usr.'Serial Number' 5;
}

Remove-Item -Path "$env:TEMP\tempcerts.csv" -Force;

【讨论】:

    猜你喜欢
    • 2012-02-22
    • 1970-01-01
    • 1970-01-01
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 2018-04-21
    • 1970-01-01
    相关资源
    最近更新 更多