【发布时间】:2016-01-20 21:19:42
【问题描述】:
我刚刚写了这段代码:
Get-ChildItem 'R:\Source\Path' |
Where-Object { $_.Name -notlike '*_*' } |
Select-Object -ExpandProperty Name > 'C:\Destination\Path\Test.txt' |
Clear-Host
Invoke-Item 'C:\Destination\Path\Test.txt'
效果很好。我保存了代码,然后关闭了电源外壳。当我重新打开 powershell 并运行这个特定程序时,它产生了以下错误消息:
文件 C:\Users\Galen\Powershell Code\InvokeItem.ps1 无法加载 因为在此系统上禁用了运行脚本。更多 信息,请参阅 about_Execution_Policies,网址为 http://go.microsoft.com/fwlink/?LinkID=135170。 + CategoryInfo : SecurityError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : UnauthorizedAccess
我是这台计算机的管理员。发生了什么?
【问题讨论】:
-
您在运行 Get-ExecutionPolicy 时看到了什么?您是否阅读了错误中明确提到的帮助文件?
-
我做到了,作为一个非常新的 powershell 用户,它没有多大意义。如果我复制那个确切的代码并将其粘贴到一个新的代码环境中,它运行得非常好。
-
运行 G-EP 返回未定义。
-
First, try reading the error message。正如 EBGreen 指出的那样,您需要阅读文档。
-
是的,对不起,比尔,我确实阅读了错误消息。我不是故意暗示我没有。我阅读了错误消息,但正如我之前所说,它对我来说没有多大意义。显然我是受限用户,尽管拥有管理员身份,但我无法更改我的执行策略。忽略这一点,根据文档,受限用户无法运行 .ps1 脚本。但是我可以运行 .ps1 脚本,除非在我保存它们之后。脚本保存前后有何不同?