我有一个profile.ps1
需要运行的脚本,它是由 Conda 应用程序创建的。
我通过运行以下命令解除了对文件的阻止:
Unblock-File -Path .\profile.ps1
该命令已成功执行(我假设这是因为没有错误、警告或输出),但是当我在新窗口中打开 PowerShell 时,出现错误Running scripts on this computer is restricted
。
在微软网站,示例已将执行策略设置为RemoteSigned
,并记录了 Unblock-File 的用例。
此策略是否仅在这种情况下有效,还是我做错了什么?
答案1
使用Unblock-File
忽略执行策略是基于会话的。新的 powershell windows 不会“记住”您已解除对特定文件的阻止。如果您希望它持续存在,您需要:
- 更改执行策略以允许运行未签名的脚本(适用于所有脚本)
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
- 实际上使用证书对脚本进行签名,
Set-AuthenticodeSignature
例如 - 或者每次打开 powershell 时解除对文件的阻止,也许可以通过添加
Unblock-File
到你的 PS 配置文件中
Unblock-File
更多的是为了从文件中删除“从互联网下载”区域标识符,而不是为了扰乱执行策略