一个PowerShell脚本其实就是一个简单的文本文件,这个文件包含了一系列PowerShell命令,每个命令显示为独立的一行,PowerShell脚本文件扩展名为.PS1。那么,是不是可以在PowerShell环境下直接可以运行.PS1文件?
p_w_picpath
    我们可以看到,在PowerShell环境下,是不能直接运行.PS1文件的。这是为防止恶意脚本的执行,PowerShell的一个默认执行策略,这个执行策略被设为受限的(Restricted),意味着PowerShell脚本无法执行,它每次只能执行一行命令。
    我们可以通过一个命令来查看当前的策略:
Get-ExecutionPolicy –List
p_w_picpath
    印证了上面的本地默认策略被设为受限的(Restricted),而其它 MachinePolicy;UserPolicy;Process;CurrentUser等没有定义。那么,用什么方法可以修改这个默认策略呢?我们又用到下面一条命令:
Set-ExecutionPolicy <policy name>    这个 <policy name>等于(Restricted;AllSigned;RemoteSigned;Unrestricted;Bypass;Undefined),下面是微软对这些<policy name>的定义:

WINDOWS POWERSHELL 执行策略
 -------------------------------------
    Windows PowerShell 执行策略如下:
    "Restricted"是默认策略。
        Restricted
            - 默认执行策略。
            - 允许单个命令运行,但不能运行脚本。
            - 阻止所有脚本文件的运行,包括格式和配置文件 (.ps1xml)、模块脚本文件 (.psm1) 
              和 Windows PowerShell 配置文件 (.ps1)。
    
        AllSigned
            - 可以运行脚本。
            - 要求所有脚本和配置文件由可信发布者签名,包括在本地计算机上编写的脚本。
           - 在运行来自尚未分类为可信或不可信发布者的脚本之前进行提示。
            - 运行来自 Internet 以外的源的未签名脚本及已签名但有恶意的脚本存在风险。
      
        RemoteSigned
            - 可以运行脚本。
            - 要求可信发布者对从 Internet(包括电子邮件和即时消息程序)下载的脚本和配置文件
              进行数字签名。
           - 不要求对已经运行和已在本地计算机编写的脚本(不是从 Internet 下载的脚本)进行数
    	      字签名。
            - 面临运行已签名但有恶意的脚本带来的风险。
        Unrestricted
            - 可以运行未签名脚本。(面临运行恶意脚本所带来的风险。)
            - 在运行从 Internet 下载的脚本和配置文件之前警告用户。
        Bypass
            - 不阻止任何执行项,不显示警告和提示。
            - 此执行策略设计用于两种配置:一种是 Windows PowerShell 脚本内置于一个较大的
              应用程序中;一种是 Windows PowerShell 成为拥有自身安全模型的某个程序的基础。
        Undefined
            - 当前作用域中未设置执行策略。
            - 如果所有作用域中的执行策略为 Undefined,则有效执行策略为 Restricted,该策略
              是默认执行策略。
    注意:在不对通用命名约定 (UNC) 路径与 Internet 路径加以区分的系统上,可能无法使用 
          RemoteSigned 执行策略来允许运行由 UNC 路径标识的脚本。

    一般情况下,如果您对自己所写的脚本文件的把握,可以执行下面命令:
    Set-ExecutionPolicy  Unrestricted 
     查看执行情况:
   Get-ExecutionPolicy  LocalMachine
p_w_picpath
    我们可以用Windows Server 2012 自带的的PowerShell ISE编辑器来编辑一个.PS1文件来验证:
p_w_picpath