本文简述了 Azure PowerShell 的安装和基本操作流程。作为 Azure 服务的一种常用控制方法,PowerShell 可以提供给 Windows 运维人员更熟悉的操作体验。

预备

PowerShell 是什么

PowerShell 是微软推出的一款跨平台命令行 Shell 程序,同时也是一个跨平台的脚本环境。该 Shell 发布早期捆绑在 Windows Server 操作系统中,用于替代相对老旧的 CMD 程序,主要作用是提高 Windows Server 的自动化管理能力。

目前主流的版本是集成在 Windows 10 和 Windows Server 2016 及以上版本的第 5.1 版。从 6.0 版本起,PowerShell 采用全模块化的设计,其中主要运行环境称为 PowerShell Core,可以在 Windows 以外的其他环境工作。

PowerShell 在 Windows 操作系统中工作时既可以使用自身的功能,也可以调用底层的 .NET Framework 实现各类复杂操作。在跨平台使用时,可以通过配套安装 .NET Core 提供相仿的操作体验。

关于 PowerShell 的操作方式,将在 PowerShell 专题 陆续更新。

Azure PowerShell 是什么

Azure PowerShell 不是一个独立的产品,确切地说,它是 PowerShell 的一个管理模块。安装该模块后,管理人员可以使用 PowerShell 管理 Azure 上的各类订阅和服务资源。

安装

检查本地环境

安装 Azure PowerShell 模块前需要检查当前本地 PowerShell 是否符合相应要求。在本地 PowerShell 中输入如下内容,查询具体版本。

$PSVersionTable.PSVersion

如果是在 Windows 操作系统中使用 PowerShell,则需要保证其版本为 5.1 及以上,同时需要安装 .NET Framework 4.7.1 及以上版本。

如在 Windows、Linux 以及 Mac 环境下使用 PowerShell Core,需要保证其版本在 6.0 及以上。

安装模块

使用 Install-Moudle 命令(cmdlet),查询并安装名为 Az 的模块并安装。

# 为当前用户安装模块
Install-Module -Name Az -AllowClobber -Scope CurrentUser
  
# 为本机所有用户安装模块,该操作需要管理员权限
Install-Module -Name Az -AllowClobber -Scope AllUsers

在默认情况下,PowerShell 库未配置为 PowerShellGet 的受信任存储库。首次安装时需要允许从 PSGallery 安装模块。

如顺利安装,则可以通过 Get-Command *az* 命令查询已安装的 Azure 相关指令名。

设置 PowerShell 执行策略

使用以下指令查询本环境当前执行策略:

Get-ExecutionPolicy

需确保当前环境执行策略为 RemoteSignedAllSigned 时,才能正常使用 Azure PowerShell 模块。快速设置执行策略可以参考以下指令:

Set-ExecutionPolicy RemoteSigned 

关于本部分所涉及的执行策略具体内容,限于篇幅不再赘述,如需了解请参见 PowerShell:执行策略设置 一文。

连接服务

上述安装步骤完成后,可使用以下指令连接 Azure 服务:

Connect-AzAccount

使用该指令连接服务时,将自动调起 Azure 登录页,在该页面上使用合作伙伴账户登录后,本地将一并登录。这一方式默认登录 Microsoft Azure 云服务,如实际使用 Azure Government(Azure 美国政府)、Azure Germany(Azure 德国)或 Azure China(Azure 中国,由世纪互联运营),需在使用上述方式登录时,设定云服务环境值。

使用以下指令查询可用的 Azure 环境信息:

# 查询环境详情
Get-AzEnvironment
  
# 仅查询环境名用于登录
Get-AzEnvironment | Select-Object Name

登录其他云服务时,需使用以下参考指令:

Connect-AzAccount -Environment EnvName
  
# 以 Azure China 云为例
Connect-AzAccount -Environment AzureChinaCloud

完成

Azure PowerShell 是除 Azure WebShell、Azure CLI 以外的主要管理工具。在依次进行上述操作后,Azure 模块就安装完成了,可以在本地使用 PowerShell 管理云端的资源。