2016-06-07 6 views
0

Je souhaite supprimer le certificat pour un utilisateur et son ordinateur. J'ai essayé:Powershell Revoke Certificate

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 

Je sais que je dois utiliser certutil -revoke mais je ne sais pas comment l'adapter à mon script afin qu'il supprime tous les certificats qui montre $ informatique et utilisateur $.

+0

Vous ne voulez certainement pas révoquer une autorité de certification pour un utilisateur/ordinateur particulier. Cela n'aurait aucun sens. Voulez-vous dire que vous voulez supprimer le certificat CA de l'ordinateur de l'utilisateur? Ou voulez-vous révoquer le certificat (de l'ordinateur?) De l'utilisateur? –

+0

pourquoi la suppression de l'utilisateur/ordinateur particulier n'a aucun sens? Je souhaite révoquer le certificat de l'utilisateur et de l'ordinateur lorsqu'il quitte l'entreprise par exemple. – frhling1

+0

La révocation de l'AC n'a pas de sens. La révocation du certificat d'utilisateur et/ou d'ordinateur n'est pas la même. –

Répondre

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;