2016-10-02 4 views
-2

Мне нужно импортировать коллекцию сертификатов p12 с параметрами PersistKeySet и Exportable. Получено только один вариант. [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::"Exportable, PersistKeySet") нет работа. Как это сделать правильно?Импортировать сертификат коллекции p12 с параметрами PersistKeySet и Exportable

Моя функция:

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

Теперь он работает. Огромное спасибо за помощь –

Смежные вопросы