2016-06-07 10 views
0

사용자와 컴퓨터의 인증서를 제거하고 싶습니다. 이 나는 ​​시도했다 :Powershell 인증서 해지

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를 사용해야하지만 $ 컴퓨터 및 $ 사용자를 보여줍니다 모든 인증서를 삭제하도록 내 스크립트로 조정하는 방법을 모른다 알고있다.

+0

특정 사용자/컴퓨터에 대해 CA를 철회하고 싶지는 않을 것입니다. 그건 아무 의미가 없어요. 사용자의 컴퓨터에서 CA 인증서를 삭제 하시겠습니까? 또는 사용자의 (컴퓨터의) 인증서를 해지하겠습니까? –

+0

특정 사용자/컴퓨터를 제거하는 것이 의미가없는 이유는 무엇입니까? 예를 들어 회사를 떠날 때 사용자 인증서와 컴퓨터 인증서를 해지하고 싶습니다. – frhling1

+0

CA 해지가 의미가 없습니다. 사용자 및/또는 컴퓨터 인증서 해지는 동일하지 않습니다. –

답변

0
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;