windows Hyper-V Server 2012创建脚本运行环境

一个PowerShell脚本其实就是一个简单的文本文件,这个文件包含了一系列PowerShell命令,每个命令显示为独立的一行,PowerShell脚本文件扩展名为.PS1。那么,是不是可以在PowerShell环境下直接可以运行.PS1文件?

image

   在PowerShell环境下,是不能直接运行.PS1文件的。这是为防止恶意脚本的执行,PowerShell的一个默认执行策略,这个执行策略被设为受限的(Restricted),意味着PowerShell脚本无法执行,它每次只能执行一行命令。

通过一个命令来查看当前的策略:
Get-ExecutionPolicy �CList

image

本地默认策略被设为受限的(Restricted).

用下面命令方法可以修改这个默认策略:

Set-ExecutionPolicy <policy name>    这个 <policy name>等于(Restricted;AllSigned;RemoteSigned;Unrestricted;Bypass;Undefined),下面是微软对这些<policy name>的定义:

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
查看执行情况:
G et-ExecutionPolicy LocalMachine

image

可以用Windows Server 2012 自带的的PowerShell ISE编辑器来编辑一个.PS1文件来验证:这样就可以在powershell中运行相关.ps1jiaobimage

这样就可以在powershell中运行.ps1相关脚本了。


你可能感兴趣的:(windows)