解决无法运行PowerShell的ps1脚本问题(无法加载文件,在此系统上禁止运行脚本)
1,问题描述
当我们执行一个 PowerShell 的 ps1 脚本文件时,可能会遇到执行失败,报类似如下错误:
无法加载文件 D:\upload.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
+ CategoryInfo : SecurityError: (:) [],ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnauthorizedAccess
2,问题原因
(1)这个是 Windows 系统的执行策略的问题,我们可以执行如下命令查看当前用户的执行策略:
Get-ExecutionPolicy -List
(2)可以看到 CurrentUser(当前用户)的执行策略为 Undefined(未定义的) 或者 Restricted(受限制的)。该策略允许运行单个命令,但不允许脚本运行。
3,解决办法
(1)我们运行如下命令更改执行策略:
(2)运行命令后会有提示信息,然后输入 Y 确认更改执行策略即可。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned CurrentUser
(2)运行命令后会有提示信息,然后输入 Y 确认更改执行策略即可。
(3)再次查看当前用户执行策略,可以发现当前用户的执行策略已经设置为 Restricted。后续我们就可以正常运行 PowerShell 脚本了。
Get-ExecutionPolicy -List