当我设置我的系统时,我使用了许多配置脚本来让我舒适的地方玩。
根据this,我双击以下enableps.js
:
new ActiveXObject("Shell.Application").ShellExecute(
"powershell", "-noexit -Command \"& Set-ExecutionPolicy RemoteSigned\"", "", "runas");
由于我可以在显示的PowerShell窗口中发出-noexit
:
Get-ExecutionPolicy
并按预期得到:
RemoteSigned
不幸的是,在打开PowerShell的新实例时,策略保持为Restricted
。
如果我在标准cmd
提示符下运行:
cscript "path\to\enableps.js"
它有效。但是,如果我在enableps.cmd
批处理中嵌入命令并再次尝试通过双击运行它,则它不起作用。如果我右键单击enableps.cmd
并使用Runas-Administrator条目,它将再次起作用。
那么如何才能使用标准双击(加上相关的Windows提示符)?
答案 0 :(得分:1)
您需要运行该命令并为其指定-Scope
参数,以使其适用于当前会话以上。添加参数:
-Scope CurrentUser
答案 1 :(得分:1)
双击文件:
// enableps.js
// -----------
new ActiveXObject("Shell.Application").ShellExecute(
"powershell", "-Command \"Set-ExecutionPolicy RemoteSigned\" -Scope CurrentUser",
"", "runas");
考虑将RemoteSigned
替换为Unrestricted
以允许运行下载的脚本。
归功于TheMadTechnician,无论如何都没有写完整的代码。
答案 2 :(得分:0)
默认情况下,如果系统尚未提升,则系统范围内的更改将要求您提升流程。如果您希望脚本在计算机级别禁用执行策略,那么您将需要关闭UAC,否则您将必须使用shellExecute运行您的cscript,这将向用户显示所需的UAC批准对话框。