[英]export certificate using powershell
任何專家都知道需要執行哪些代碼才能從證書詳細信息選項卡中的 keyusage 導出證書值?
代碼
dir cert:\currentuser\my |
Where-Object ($_.Extensions `
| Where-Object { $_.Oid.Value -eq "2.5.29.15" -And ( $_.KeyUsages -eq 'KeyEncipherment|DataEncipherment(30)') } |
Foreach-Object { [system.IO.file]::WriteAllBytes("c:\export\$($_.SerialNumber).cer", ($_.Export('CERT', $null)) ) }
試試這個來列出所有在密鑰使用擴展中只KeyEncipherment
的證書:
#Listing 1
dir cert:\currentuser\my |
Where-Object {
($_.Extensions |
Where-Object{
$_.Oid.Value -eq "2.5.29.15" -and $_.KeyUsages -eq "KeyEncipherment"}) } |
Select-Object{
$_.SerialNumber,
$_.Issuer,
($_.Extensions |
Where-Object{ $_.Oid.Value -eq "2.5.29.15" }).KeyUsages }
這里是出口:
#Listing 2
dir cert:\currentuser\my |
Where-Object {
($_.Extensions |
Where-Object{
$_.Oid.Value -eq "2.5.29.15" -and $_.KeyUsages -eq "KeyEncipherment"}) } |
Foreach-Object{
[System.IO.File]::WriteAllBytes(
".\$($_.SerialNumber).cer",
$_.Export("Cert", $null)); }
試試這個來列出所有在密鑰使用擴展中只包含DataEncipherment和DataEncipherment
的KeyEncipherment
:
#Listing 3
dir cert:\currentuser\my |
Where-Object {
($_.Extensions |
Where-Object{
$_.Oid.Value -eq "2.5.29.15" -and $_.KeyUsages -eq "DataEncipherment, KeyEncipherment"}) } |
Select-Object{
$_.SerialNumber,
$_.Issuer,
($_.Extensions |
Where-Object{ $_.Oid.Value -eq "2.5.29.15" }).KeyUsages }
這里是出口:
#Listing 4
dir cert:\currentuser\my |
Where-Object {
($_.Extensions |
Where-Object{
$_.Oid.Value -eq "2.5.29.15" -and $_.KeyUsages -eq "DataEncipherment, KeyEncipherment"}) } |
Foreach-Object{
[System.IO.File]::WriteAllBytes(
".\$($_.SerialNumber).cer",
$_.Export("Cert", $null)); }
要檢查所有證書的密鑰使用值,請運行:
#Listing 5
dir cert:\currentuser\my |
Select-Object{
$_.SerialNumber,
$_.Issuer,
($_.Extensions | Where-Object{ $_.Oid.Value -eq "2.5.29.15" }).KeyUsages }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.