Powershell 入门之 policy

今天我们来看看 powershell 的执行策略。

在默认情况下,你自己编写的脚本,或者从网上找的第三方的脚本,出于安全的原因,系统会禁止你运行。所有很多情况下,我们需要更改 powershell 的执行策略,以便我们运行自己编写的脚本。

powershell 一共支持以下几种策略可用:
AllSigned

  • 可以运行脚本,但脚本必须被受信任的机构签名。
    Bypass
  • 可以运行脚本,并且没有任何警告或提示。
    Default
    默认的执行策略。
  • Windows 客户端是 Restricted。
  • Windows Server 是 RemoteSigned 。
    RemoteSigned
  • 从别人那里获取的脚本,如 Internet 下载,别人通过电子邮件发送等,需要数字签名才可以运行。对于在本地计算机上编写的脚本,则不需要。
    Restricted
  • 阻止运行所有脚本以及脚本文件,包括格式设置和配置文件 (.ps1xml) 、模块脚本文件 (.psm1) 和 PowerShell 配置文件 (.ps1) 。
    Undefined
  • 没有设置执行策略(默认策略生效)。
    Unrestricted
  • 可以运行所有脚本。但是如果运行的脚本不在本地,则会在运行之前会有警告通知用户。

查看系统当前配置的策略:

PS C:\WINDOWS\system32> Get-ExecutionPolicy
Restricted

更改执行策略:

PS C:\WINDOWS\system32> Set-ExecutionPolicy Unrestricted

执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“N”): y

执行策略会分布在不同的作用域,查看不同作用于的策略:

PS C:\WINDOWS\system32> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    Unrestricted

我们可以发现,默认情况下,更改的只是 LocalMachine 作用域下的策略。

如果我们需要更改其他作用域的策略,则需要使用:

PS C:\WINDOWS\system32> Set-ExecutionPolicy Unrestricted -Scope CurrentUser

执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y)  [A] 全是(A)  [N] 否(N)  [L] 全否(L)  [S] 暂停(S)  [?] 帮助 (默认值为“N”): y
PS C:\WINDOWS\system32> Get-ExecutionPolicy -List

        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser    Unrestricted
 LocalMachine    Unrestricted

<<:  Rust-命令行的输入输出

>>:  [NestJS 带你飞!] DAY17 - Injection Scopes

Day30:30 - 总结

大家好,我是Charlie! 铁人赛终於到了尾声,在这30天的时间当中,我们完成了一个基本的购物网站...

以Postgresql为主,再聊聊资料库 width_bucket() 的介绍

前天的趣味SQL, 经过大家热烈的响应,有提到 width_bucket() https://ith...

110/10 - Intent.ACTION_MEDIA_SCANNER_SCAN_FILE弃用

新增相片後,要发送通知给相簿应用程序,这样才能更新照片清单,这样才能在相簿看到新增加的照片,使用者体...

ISO 27001 资讯安全管理系统 【解析】(十九)

二、ISO 27005 架构 ISO 27005资讯安全风险管理架构如下图: 先说明建立全景的步骤:...

Extra05 - Docker - 容器化

此篇为番外,未收入在本篇的原因是 Docker 是个复杂的工具,因此需要更多的篇幅介绍此工具,但是...