Hyper-V Server 2012 如何创建脚本运行环境
- 2022-01-28
- 来源/作者: 菜鸟图库/ 菜鸟图库
- 306 次浏览
一个PowerShell脚本其实就是一个简单的文本文件,这个文件包含了一系列PowerShell命令,每个命令显示为独立的一行,PowerShell脚本文件扩展名为.PS1。那么,是不是可以在PowerShell环境下直接可以运行.PS1文件?
我们可以看到,在PowerShell环境下,是不能直接运行.PS1文件的。这是为防止恶意脚本的执行,PowerShell的一个默认执行策略,这个执行策略被设为受限的(Restricted),意味着PowerShell脚本无法执行,它每次只能执行一行命令。
我们可以通过一个命令来查看当前的策略:
Get-ExecutionPolicy –List
印证了上面的本地默认策略被设为受限的(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-ExecutionPolicyUnrestricted
查看执行情况:
Get-ExecutionPolicyLocalMachine
我们可以用Windows Server 2012 自带的的PowerShell ISE编辑器来编辑一个.PS1文件来验证:
标签(TAG) 创建脚本运行环境