[英]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.