-2

PersistKeySet と Exportable オプションの両方を使用して p12 証明書コレクションをインポートする必要があります。取得したオプションは 1 つだけ使用します。 [System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::"Exportable, PersistKeySet")うまくいかない。正しく行う方法は?

私の機能:

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"
    }
}
4

1 に答える 1