写了一个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
配置文件)和运行脚本,并且确定哪些脚本(如果有)在运行之前必须进行数字签名
转自:http://blog.csdn.net/evils798/article/details/7196549