系统运维

默认情况下Windows server 2008R2的脚本执行权限是RemoteSigned,本地创建的脚本都是可以运行的,从网络下载的必须要有数字签名才能够执行。实际使用过程中,用户可能会遇到脚本执行不了的现象。这里对脚本的执行权限稍作探讨,大家可以测试一下,欢迎留言讨论。

获取当前会话的脚本执行权限策略:

PS D:\\powershell_study> Get-ExecutionPolicy
RemoteSigned

powershell有四种脚本运行权限策略,可以通过命令man Set-ExecutionPolicy来查看。

PS D:\\powershell_study> man Set-ExecutionPolicy

NAME
    Set-ExecutionPolicy

SYNOPSIS
    Changes the user preference for the Windows PowerShell execution policy.


SYNTAX
    Set-ExecutionPolicy [-ExecutionPolicy] {Unrestricted | RemoteSigned | AllSigned | Restricted | Default | Bypass |
    Undefined} [[-Scope] {Process | CurrentUser | LocalMachine | UserPolicy | MachinePolicy}] [-Confirm] [-Force]
    [-WhatIf] [<CommonParameters>]
..................

Unrestricated是不受限制的意思,AllSigned是所有的脚本都需要数字签名验证,Restricted是不让任何脚本执行的意思。

设置脚本运行权限的方式:

PS C:\\>Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

如何获取并修改powershell脚本的执行权限-冯金伟博客园