如何设置双击运行PowerShell脚本时自动以管理员身份执行
PowerShell 脚本双击自动以管理员运行解决方案
你之前修改PowerShell默认快捷方式的管理员属性不生效,是因为双击.ps1脚本默认调用的是系统文件关联的启动参数,不会走你修改的那个快捷方式的配置,可按以下两种方案操作:
方案1:为单个目标脚本配置专属快捷方式(更安全,仅目标脚本生效)
- 右键桌面空白处,选择「新建」>「快捷方式」
- 在对象位置输入框中填入以下内容,替换路径为你自己的脚本实际存储路径:
powershell.exe -ExecutionPolicy Bypass -Command "Start-Process powershell -ArgumentList '-ExecutionPolicy Bypass -File ""C:\Users\你的用户名\Desktop\你的脚本名称.ps1""' -Verb RunAs"
其中-Verb RunAs参数用于指定以管理员身份启动进程,-ExecutionPolicy Bypass用于绕开系统默认的PowerShell脚本执行限制,避免无签名脚本无法运行的问题 - 为快捷方式命名后完成创建,右键该快捷方式选择「属性」,点击「高级」按钮,勾选「用管理员身份运行」后依次确认保存所有设置
- 后续直接双击这个快捷方式,就会触发UAC授权提示,确认后即可自动以管理员身份运行目标脚本,不会出现权限报错
方案2:全局配置所有.ps1脚本双击默认以管理员运行(存在安全风险,仅建议可控环境使用)
- 按下
Win+R组合键呼出运行窗口,输入regedit后回车打开注册表编辑器 - 定位到以下注册表路径:
HKEY_CLASSES_ROOT\Microsoft.PowerShellScript.1\Shell\Open\Command - 双击右侧栏的「默认」值,将原有数值数据替换为以下内容:
powershell.exe -ExecutionPolicy Bypass -Command "Start-Process powershell -ArgumentList '-ExecutionPolicy Bypass -File """%1"""' -Verb RunAs" - 确认修改后退出注册表编辑器,后续所有.ps1格式的PowerShell脚本双击都会默认请求管理员权限启动
注意:全局配置会让所有PowerShell脚本都默认以管理员身份运行,若不小心运行恶意脚本会带来更高的安全风险,非必要不推荐使用该方案
内容的提问来源于stack exchange,提问作者Coat
相关产品推荐
相关产品推荐

