使用 powershell 导出证书
export certificate using powershell
任何专家都知道需要完成哪些代码才能从证书详细信息选项卡中的密钥用法导出证书的值?
代码
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)); }
试试这个以列出密钥使用扩展中包含 ONLY DataEncipherment
AND 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 }
这是输出:
任何专家都知道需要完成哪些代码才能从证书详细信息选项卡中的密钥用法导出证书的值?
代码
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)); }
试试这个以列出密钥使用扩展中包含 ONLY DataEncipherment
AND 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 }
这是输出: