PowerShell 2.0 内で gpg2.exe を呼び出すスケジュールされたタスクを通じてファイルを暗号化しようとしています。
ログインすると、ISE を介して、または Windows タスク スケジューラでタスクを実行することにより、スクリプト/タスクが正常に実行されます。私は Windows Server 2008 を使用しており、使用されているサービス アカウントは管理者ではありませんが、すべてのソース フォルダーと宛先フォルダーにアクセスできます。
タスクが無人で実行されると、gpg からの出力はターゲット ディレクトリに表示されず、エラーは返されません。ユーザーをセキュリティ ポリシーに追加して、バッチとしてログインできるようにしました。GPG からの出力ではなく、現在存在するファイル (ソース) をターゲット フォルダーに書き込むことができます。
奇妙なことに、そのシステム アカウントとしてログインおよびログアウトすると、スケジュールが期限切れになるまで無人でジョブが正常に実行され、次のスケジュールでエラーが発生することがあります。
ログインしているときは常に機能し、ログインしていないときは特定のシナリオでのみ機能するため、セッションに関する設定であると確信しています。任意の助けをいただければ幸いです。
PowerShell で GPG を呼び出す方法の次の例を参照してください (はい、私は初心者です :) )
$GPG_Prog='C:\Program Files\GNU\GnuPG\gpg2.exe'
$GPG_Encrypt='-e'
$GPG_Encrypt_to='-r XXXXXXXX'
&"$GPG_Prog" -o C:\location\$File.gpg --batch --quiet --yes "$GPG_Encrypt" "$GPG_Encrypt_to" \source location\$File
Move-Item \$File.gpg \network 出力場所
ありがとう