原文地址:http://blog.csdn.net/evils798/article/details/7196549
写了一个powershell脚本测试脚本,结果执行的时候报错
$a=Get-Content C:\script.txt | select-string -pattern "ora"
if ( $a -eq $null )
{
write-host "error"
}
else
{
write-host "OK"
}
PS D:\> .\pshell.ps1
无法加载文件 D:\pshell.ps1,因为在此系统中禁止执行脚本。有关详细信息,请参阅 "get-help about_signing"。
所在位置 行:1 字符: 13
+ .\pshell.ps1 <<<<
+ CategoryInfo : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : RuntimeException
查明了原因是由于操作系统默认禁止执行脚本,执行一次set-executionpolicy remotesigned后脚本顺利执行
关于Set-ExecutionPolicy详细信息
Set-ExecutionPolicy 可更改 Windows PowerShell 执行策略的用户首选项。要在 Windows Vista、Windows Server 2008 和 Windows
的更高版本上运行此命令,必须使用\"以管理员身份运行\"选项启动 Windows PowerShell,即使您是计算机上
Administrators 组的成员,执行策略是 Windows PowerShell 安全策略的一部分。它确定是否可以加载配置文件(包括 Windows PowerShell
配置文件)和运行脚本,并且确定哪些脚本(如果有)在运行之前必须进行数字签名
查看“get-help about_signing”:
主题
about_signing
简短说明
说明如何对脚本进行签名以使其符合 Windows PowerShell 执行策略。
详细说明
Restricted 执行策略不允许任何脚本运行。
AllSigned 和 RemoteSigned 执行策略可防止 Windows PowerShell 运行没有数字签名的脚本。
本主题说明如何运行所选未签名脚本(即使在执行策略为 RemoteSigned 的情况下),还说明如何对
脚本进行签名以便您自己使用。
有关 Windows PowerShell 执行策略的详细信息,请参阅 about_Execution_Policy。
允许运行签名脚本
首次在计算机上启动 Windows PowerShell 时,现用执行策略很可能是 Restricted(默认设置)。
Restricted 策略不允许任何脚本运行。
若要了解计算机上的现用执行策略,请键入:
get-executionpolicy
若要在本地计算机上运行您编写的未签名脚本和来自其他用户的签名脚本,请使用以下命令将计算机上的
执行策略更改为 RemoteSigned:
set-executionpolicy remotesigned
有关详细信息,请参阅 Set-ExecutionPolicy。
执行“set-ExecutionPolicy RemoteSigned ”:
执行策略更改
执行策略可以防止您执行不信任的脚本。更改执行策略可能会使您面临 about_Execution_Policies
帮助主题中所述的安全风险。是否要更改执行策略?
[Y] 是(Y) [N] 否(N) [S] 挂起(S) [?] 帮助 (默认值为“Y”): y