在 Windows 上,如何使 .bat 或 .ps1 文件在运行时自动提升自身?

在 Windows 上,如何使 .bat 或 .ps1 文件在运行时自动提升自身?

我已将管理员 cmd 和管理员 pwsh 固定到任务栏,我知道如何以管理员身份运行 .bat 文件,只需右键单击->“以管理员身份运行”,对于 .ps1 文件,我已修改了 .ps1 文件的打开方式,以便打开它们的默认程序是 PSCore7,但右键单击它们不会显示“以管理员身份运行”选项,为了以管理员身份运行 .ps1,我必须打开管理员 pwsh 并 cd 到 $scriptdir(我将所有脚本放在一个文件夹中)并像这样运行它们:\script.ps1;

如何使脚本(.bat 和 .ps1)在运行时自动获得管理员权限,以便我只需双击它们即可自动以管理员身份运行?

某些系统文件夹和注册表项即使具有管理员权限也无法访问,只有 TrustedInstaller 可以访问它们,我知道如何访问它们,对于文件和文件夹,使用右键单击->属性->安全->高级在资源管理器中打开“* 的高级安全设置”以获取所有权并更改权限,对于注册表项,在 regedit 中使用右键单击->权限... 来更改权限,或者在 cmd 中使用 icacls 和 cacls;

但是这种方法非常危险,使用这种方法,某些东西会以某种方式不可预测地停止工作,例如,获取 C:\Windows\SystemApps 的所有权几乎肯定会导致 UWP 应用无法使用,并且很难将所有权归还给 TrustedInstaller;

我使用 Google 搜索了以 TrustedInstaller 身份运行脚本的方法,并找到了以下方法:https://www.winhelponline.com/blog/run-program-as-trustedinstaller-locked-registry-keys-files/ 它说我可以使用第三方软件(如 AdvancedRun、PowerRun、NSudo 和 ProcessHacker)以 TrustedInstaller 的形式运行控制台并运行脚本,但这不是我想要的;

我想修改脚本本身,使其在运行时自动获得 TrustedInstaller 权限,无需任何第三方软件,尽可能减少用户交互,这样我只需双击它们,它们就会自动授予自己 TrustedInstaller 权限,我该如何实现呢?

答案1

作为系统使用执行 执行程序

要使用的参数是PsExec -s

相关内容