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

Xeн*_*вϵς 6 windows script command-line permissions runas

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

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

并且某些系统文件夹和注册表项即使具有管理员权限也无法访问,它们只能由 TrustedInstaller 访问,我知道如何访问它们,对于文件和文件夹,请使用右键单击-> 属性-> 安全性-> 高级打开资源管理器中的“Advanced Security Settings for *”获取所有权和更改权限,对于注册表项,在regedit中使用右键单击->Permissions...更改权限,或者在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 权限,没有任何 3rdP 软件,尽可能少的用户交互,这样我只需双击它们,它们就会自动给自己 TrustedInstaller 权限,我该如何实现这一点?

har*_*ymc 5

要作为系统执行,请使用 PsExec

要使用的参数是PsExec -s