1

ラッパーを使用して Java アプリケーションを Windows サービスとして実行すると、アプリケーションがファイルを復号化しようとする場合を除き、すべて正常に動作します。次のエラーが発生します。

GPG エラー >> コード: 2 >> gpg: RSA キーで暗号化、ID ########
gpg 復号化に失敗しました: 秘密鍵が利用できません。

アプリケーションは、サービスとして実行されていない場合、問題なくファイルを暗号化および復号化します。ラッパーも正常に動作します。

Users\AppData\... Windows レジストリで環境変数が設定および確認されましたが、何らかの理由で、システムはキーが配置されているディレクトリを参照しません。

これは自動化されたアプリケーションであるため、ファイルを暗号化または復号化するためのパスフレーズはありません。

なにが問題ですか?システムが秘密鍵を探す場所は?

4

2 に答える 2

1

サービスのプロパティを変更することで、上記の問題を解決しました。次の手順で問題を解決しました。

  1. コマンド ラインで services.msc と入力し、Enter キーを押します。サービスウィンドウが開きます。

  2. 私のサービスを見つけて右クリックし、プロパティをクリックします

  3. [ログオン タブ] をクリックし、[このアカウント] ラジオ ボタンをクリックします。

  4. [参照] ボタンをクリックし、オブジェクト名を入力して選択します [マシンのユーザー名を入力しました] をクリックし、[名前の確認] ボタンをクリックします ユーザー名が確認されたら、[OK] ボタンをクリックします

  5. パスワードとパスワードの確認を入力し、[適用] をクリックします。[OK] 通知ダイアログ ボックスをクリックします。

  6. サービスを停止してから再起動すると、暗号化されたファイルが送信され、正常に機能します。

これを行う必要があるのは、デフォルトでサービスを作成したときに、すべてのキーとプロファイルが配置されているユーザー アカウントではなく、ローカル システム アカウントを使用するためです。

今の質問は、または誰かが答えるのが好きです:

Windows OS でローカル システム アカウントを変更または変更する方法を教えてください。

于 2011-03-04T16:31:45.273 に答える
0

キーリングを C:\Users\Default\AppData\Roaming\gnupg フォルダーに追加します。どうやら localsystem アカウントはここからキーリングを取得します。

于 2011-11-01T14:59:47.457 に答える