私は実際に過去に同じ問題を抱えていました...あなたは次のコマンドを探求したいと思うでしょう:
certutil.exe
このコマンドを使用すると、コマンドラインから証明書をインストールできます。
certutil.exe -addstore -f "TrustedPublisher" "<Location_of_Certificate>"
前のコマンドで必要なものが得られます"<Location_of_Certificate>"
。を証明書の実際の場所とファイル名に置き換えるだけです。
'-f'オプションを使用するのは、場合によっては少しやり過ぎですが、証明書が最初にインストールされているかどうかを確認する方法をスクリプトで記述しました。その場合は、実際には複数の証明書ストアをインストールできるため、この部分の実行はスキップします。これは面倒です。
これを実現するには、まず発行者の名前を知る必要があります。これを行う方法は、Certをコンピューターに手動でインストールしてから、次のコマンドを実行することでした。
certutil.exe -store trustedpublisher
これにより、信頼できるすべての発行元のリストが表示されます。次に、必要なものをリストから見つけます...次のようなものが表示されます(例としてMicrosoft Root Authorityを使用しています)。
シリアル番号:xxxx11dxxxx8ffexxxx
発行者:CN = Microsoft Root Authority、OU = Microsoft Corporation、OU = Copyright(c)1997 Microsoft Corp. NotBefore:10/1/1997 2:00 AM NotAfter:12/31/20022:00AM件名:CN = Microsoft Windowsハードウェア互換性、OU = Microsoft Corporation、OU = Microsoft Windowsハードウェア互換性中間CA、OU =著作権(c)19 97 Microsoft Corp.非ルート証明書テンプレート:証明書ハッシュ(sha1):xx xx 1c xx xx 45 xx xx b3 xx xx 94 xx xx 7c 74 07 33031cキープロバイダー情報がありません復号化用の証明書と秘密キーが見つかりません。
リストされるのとまったく同じように証明書の発行者ができたので、チェックを実行できます。
certutil.exe -store trustedpublisher | findstr "Microsoft Root Authority"
これで、元のリストで見たのと同じ情報の一部が返されるはずです。これは、最初から最後までのプロセスを処理するために私が行うことです(信頼できる発行元とCAの両方に証明書を追加することに注意してください)。
:importCertRoot
verify >nul
certutil.exe -store trustedpublisher | findstr "Microsoft Root Authority"
IF '%ERRORLEVEL%'=='0' goto importCertLocal
verify >nul
certutil.exe -addstore -f "TrustedPublisher" "<Location_of_Certificate>\<CertName.cer>"
goto importCertLocal
:importCertLocal
verify >nul
certutil.exe -store CA | findstr "Microsoft Root Authority"
IF '%ERRORLEVEL%'=='0' goto exit
verify >nul
certutil.exe -addstore -f "CA" "<Location_of_Certificate>\<CertName.cer>"
goto next
これがお役に立てば幸いです