秘密鍵を使用してページェント(Windows SSH認証エージェント)をロードするPowerShellスクリプトを作成しました。要するに、スクリプトは次の2行をはるかに超えるものではありません。
$tool = "pageant.exe"
&$tool $files.ToArray()
$files
ロードする必要のあるすべての秘密鍵を含む文字列のリストです。
PowerShellコンソールからこれを実行するとスクリプトが完全に機能するため、スクリプトの動作に問題はありません。
アカウントにログオンするたびにこのスクリプトを実行したいのですが、グループポリシーエディター(gpedit.msc)を使用してPowerShellログオンスクリプトグループポリシーを追加することでこれを実行します。スクリプトも実行され、実際にはpageant.exeツールが読み込まれます。
ただし、pageant.exeツールを使用するツール(puttyおよびplink)は機能しません。ページェント認証エージェントを認識しません。
だから私の最初の質問は、自分のPowerShellコンソールからスクリプトを開始することと、グループポリシー(ログオンスクリプト)からスクリプトを開始することの違いは何ですか?
私もいくつかの調査を行っていますが、いくつかの違いがあります。1つ目は、自分のコンソールからスクリプトを開始すると、開始されたページェントツールのタスクマネージャーにUAC仮想化フラグが設定されていることです。このプロパティは、ログオンスクリプトグループポリシーから開始されたときにフラグが立てられません。
2つ目は、UACを無効にすると、ログオンスクリプトグループポリシーからスクリプトが機能することです。したがって、UACと関係があると思いますが、これを解決する方法がわかりません。UACが有効になっている場合にもスクリプトを機能させたい。
2番目の質問は、このUAC仮想化フラグとは何ですか?それはプロセスの動作にどのように影響しますか?3番目で最後の質問は、スクリプトを機能させるにはどうすればよいですか?