我制作了一个 power shell 脚本,它使用我的私钥加载 pageant(一个 Windows SSH 身份验证代理)。简而言之,脚本只不过是以下两行:
$tool = "pageant.exe"
&$tool $files.ToArray()
$files是一个字符串列表,其中包含我必须加载的所有私钥。
我对脚本的工作没有任何问题,因为当我从我的 powershell 控制台执行它时,它可以完美地完成它的工作。
每当我登录到我的帐户时,我都想执行这个脚本,我通过使用组策略编辑器 (gpedit.msc) 添加一个 powershell 登录脚本组策略来执行此操作,该脚本也会执行并且实际上确实加载了 pageant.exe 工具。
但是使用 pageant.exe 工具(putty 和 plink)的工具不起作用。它不识别选美身份验证代理。
所以我的第一个问题是,从我自己的 powershell 控制台启动脚本和从组策略(登录脚本)启动脚本有什么区别?
我也进行了一些调查,发现了一些差异。首先是当我从自己的控制台启动脚本时,启动的选美工具在我的任务管理器中有一个 UAC 虚拟化标志。从登录脚本组策略启动时,不会标记此属性。
第二件事是,当我禁用 UAC 时,脚本确实可以从登录脚本组策略中工作。所以我认为它与 UAC 有关,但我不知道如何解决这个问题。我希望脚本在启用 UAC 时也能正常工作。
第二个问题是什么是 UAC 虚拟化标志,它如何影响流程的工作?第三个也是最后一个问题是如何让我的脚本正常工作?