2016-10-02 8 views
-2

PersistKeySetとExportableオプションの両方でインポートp12証明書コレクションが必要です。獲得したオプションは1つだけです。 [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::"Exportable, PersistKeySet")は機能しません。どのように正しく行うには?PersistKeySetとエクスポート可能なオプションの両方でp12コレクション証明書をインポート

My機能:

function ImportEASCert($strCertPath, $strCertPass) 
{ 
    $fOk = Test-Path "$strCertPath" 
    if ($fOk) 
    { 
     $bytes = [System.IO.File]::ReadAllBytes($strCertPath) 
     $cert = New-Object system.security.cryptography.x509certificates.X509Certificate2Collection 
     $store = New-Object system.security.cryptography.X509Certificates.X509Store "My", "CurrentUser" 

     try 
     { 
      $cert.Import($bytes, $strCertPass, [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::MachineKeySet -bor [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::PersistKeySet) 
      $store.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite) 

      foreach ($D in $cert) 
      { 
       $store.Add($d) 
       $d.SerialNumber 
      } 

      $store.Close() 
     } 
     catch 
     { 
      return "0" 
     } 
    } 
    else 
    { 
     return "0" 
    } 
} 
+0

あなたの質問への答えはあなたのコードにすでにあります。 'MachineKeySet'と' PersistKeySet'フラグがどのように組み合わされているかを詳しく見てください。 –

答えて

0

ただ、引用符でダブルコロンと型のフラグを削除します。

[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]"Exportable, PersistKeySet" 
+0

これで動作します。助けてくれてありがとう –