PowerShell kick start | PowerShell快速入门

PowerShell执行策略

如果在 PowerShell 中遇到 “about_Execution_Policies” 的提示,这意味着你的 PowerShell 执行策略(Execution Policy)未进行配置或设置。
PowerShell 执行策略是用于控制脚本的运行权限的安全功能。默认情况下,PowerShell 的执行策略是 “Restricted”,即限制执行任何脚本。我们可以通过PowerShell确认一下现行的执行策略。打开 PowerShell 终端(以管理员身份运行),可通过Win+x快捷键选择“终端(管理员)”。
PowerShell kick start | PowerShell快速入门_第1张图片
运行以下命令来查看当前的执行策略设置:

Get-ExecutionPolicy

如果当前执行策略显示为 “Restricted”,则需要进行更改。可以选择以下几种执行策略:

  • “Restricted”:默认策略,不允许执行脚本。
  • “AllSigned”:只允许执行经过数字签名的脚本。
  • “RemoteSigned”:允许执行本地创建的脚本,但对于从远程来源(如网络)下载的脚本需要进行数字签名。
  • “Unrestricted”:允许执行任何脚本,没有限制。

若要修改执行策略,可以运行以下命令(根据需要选择合适的策略):

Set-ExecutionPolicy RemoteSigned

执行完成后,打开新的PoweShell,会出现“加载个人及系统配置文件用了***毫秒”的提示,表明成功加载了profile.ps1配置。
PowerShell kick start | PowerShell快速入门_第2张图片

Chocolatey

Chocolatey 是一个基于 Windows 平台的包管理器,类似于 Linux 上的 apt、yum 或 macOS 上的 Homebrew。它允许用户在 Windows 系统上方便地安装、升级和管理各种软件包。

安装

Chocolatey

refer to: Installing Chocolatey

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

使用Chocolatey更新PowerShell

# Win+x,选择“终端管理员”
choco -?
choco upgrade powershell-core

PowerShell排错

执行策略问题

无法在当前系统上运行该脚本。有关运行脚本和设置执行策略的详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。

这个错误是由于 PowerShell 的执行策略导致的。默认情况下,PowerShell 限制了脚本的执行,以保护系统免受恶意脚本的攻击。为了解决这个问题,你需要修改 PowerShell 的执行策略。
关于执行策略 - PowerShell

在 Windows 中,Internet Explorer 和 Microsoft Edge 等程序将备用数据流添加到下载的文件。 这会将文件标记为“来自 Internet”。 如果 PowerShell 执行策略为 RemoteSigned,则 PowerShell 不会运行从 Internet 下载的未签名脚本,其中包括电子邮件和即时消息程序。
你可以对脚本进行签名,或者选择在不更改执行策略的情况下运行未签名的脚本。
从 PowerShell 3.0 开始,可以使用 cmdlet 的 Get-ItemStream 参数来检测因从 Internet 下载而阻止的文件。 Unblock-File使用 cmdlet 取消阻止脚本,以便可以在 PowerShell 中运行它们。

# 这里以hyperv-tools/DiscreteDeviceAssignment/SurveyDDA.ps1为例
Unblock-File SurveyDDA.ps1
pwsh SurveyDDA.ps1

你可能感兴趣的:(Windows,windows,powershell)