安装 Microsoft Entra PowerShell

Microsoft Entra PowerShell 模块使 IT 专业人员能够有效地管理Microsoft Entra资源,确保跨各种平台无缝集成和功能。 本模块可增强自动化和简化管理任务的能力。

本文介绍如何跨不同操作系统安装、验证、更新和排查 Microsoft Entra PowerShell 模块问题。

Microsoft Entra PowerShell 模块拆分为两个模块,每个模块都有可以单独安装的子模块。 这两个主要模块包括:

  • Microsoft.Entra - Microsoft Entra PowerShell 的正式发布版或v1.0版。 它指向 Microsoft Graph v1.0 和 Microsoft Graph PowerShell SDK v1.0 资源。
  • Microsoft.Entra.Beta - Microsoft Entra PowerShell 的 Beta 或预览版本。 它指向 Microsoft Graph Beta 和 Microsoft Graph PowerShell SDK Beta 资源。

建议将 PowerShell 版本 7 或更高版本用于所有平台上的 Microsoft Entra PowerShell 模块,包括 Windows、Linux 和 macOS。

在 Windows 上安装 Microsoft Entra PowerShell 模块

模块的建议安装方法和 PowerShell 版本:

  • PowerShell 库安装
  • 与 Windows PowerShell 5.1+ 或 PowerShell 7+ 一起使用。

有关Windows的先决条件

  • 从 PowerShell 运行以下命令,确定 PowerShell 版本:

    $PSVersionTable.PSVersion
    
  • 确定是否已安装模块:

    Get-Module -Name Microsoft.Entra -ListAvailable
    
  • 将 PowerShell 执行策略设置为远程签名或更宽松

    • 检查 PowerShell 执行策略:

      Get-ExecutionPolicy -List
      
    • 将 PowerShell 执行策略设置为远程签名:

      Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
      

    有关执行策略的详细信息,请参阅 about_Execution_Policies

Installation

安装模块时,可以选择安装整个模块或特定的子模块。 以下示例展示了如何为 v1.0Beta 安装完整模块。

使用 Install-Module cmdlet 安装模块。

Install-Module -Name Microsoft.Entra -Repository PSGallery -Scope CurrentUser -Force -AllowClobber

(可选)可以使用 Scope 参数更改安装的范围。 此操作需要管理员权限。

Install-Module -Name Microsoft.Entra -Repository PSGallery -Scope AllUsers -Force -AllowClobber

安装特定的子模块

安装特定模块非常适合使用Azure Functions和Azure 自动化等自动化方案。

运行以下命令,列出PowerShell 库中的所有 Microsoft.Entra GA/v1.0 模块:

Find-Module -Name "Microsoft.Entra*" -Repository PSGallery |
Where-Object { $_.Name -notmatch "beta" }

此命令列出PowerShell 库中的所有Microsoft Entra PowerShell GA/v1.0 模块。

例如,若要安装模块 Users ,请运行以下命令:

Install-Module -Name Microsoft.Entra.Users -Repository PSGallery -Force -AllowClobber

在 Linux 上安装 Microsoft Entra PowerShell

Linux 上的先决条件

在 Linux 上安装

安装模块时,可以选择安装整个模块或特定的子模块。 以下示例演示如何安装整个模块。

打开终端或其他 shell 主机应用程序并运行 pwsh 以启动 PowerShell。

使用 Install-Module cmdlet 安装模块:

Install-Module -Name Microsoft.Entra -Repository PSGallery -Scope CurrentUser -Force -AllowClobber

(可选)可以使用 Scope 参数更改安装的范围。 此操作需要管理员权限。

Install-Module -Name Microsoft.Entra -Repository PSGallery -Scope AllUsers -Force -AllowClobber

在 Linux 上安装特定子模块

安装特定模块非常适合使用Azure Functions和Azure 自动化等自动化方案。

运行以下命令,列出PowerShell 库中的所有 Microsoft.Entra GA/v1.0 模块:

Find-Module -Name "Microsoft.Entra*" -Repository PSGallery |
Where-Object { $_.Name -notmatch "beta" }

此命令列出PowerShell 库中的所有Microsoft Entra PowerShell GA/v1.0 模块。

例如,若要安装模块 Users ,请运行以下命令:

Install-Module -Name Microsoft.Entra.Users -Repository PSGallery -Force -AllowClobber

在 macOS 上安装 Microsoft Entra PowerShell

本文介绍如何从 macOS 上的PowerShell 库安装模块。

macOS 上的先决条件

在 macOS 上安装

安装模块时,可以选择安装整个模块或特定的子模块。 以下示例演示如何安装整个模块。

打开终端或其他 shell 主机应用程序并运行 pwsh 以启动 PowerShell。

使用 Install-Module cmdlet 安装 Microsoft Entra PowerShell 模块:

Install-Module -Name Microsoft.Entra -Repository PSGallery -Scope CurrentUser -Force -AllowClobber

(可选)可以使用 Scope 参数更改安装的范围。 此操作需要管理员权限。

Install-Module -Name Microsoft.Entra -Repository PSGallery -Scope AllUsers -Force -AllowClobber

在 macOS 上安装特定子模块

安装特定模块非常适合使用Azure Functions和Azure 自动化等自动化方案。

运行以下命令,列出PowerShell 库中的所有 Microsoft.Entra GA/v1.0 模块:

Find-Module -Name "Microsoft.Entra*" -Repository PSGallery |
Where-Object { $_.Name -notmatch "beta" }

此命令列出PowerShell 库中的所有Microsoft Entra PowerShell GA/v1.0 模块。

例如,若要安装模块 Users ,请运行以下命令:

Install-Module -Name Microsoft.Entra.Users -Repository PSGallery -Force -AllowClobber

验证已安装的模块版本和位置

安装完成后,可以使用以下命令验证已安装的子模块、其版本和位置。

Get-InstalledModule -Name Microsoft.Entra* |
Where-Object { $_.Name -notmatch "Beta" } | Format-Table Name, Version, InstalledLocation -AutoSize

此命令显示已安装Microsoft Entra PowerShell 模块及其版本和安装位置。 输出版本应与PowerShell 库上的最新版本匹配。 现在,你已准备好使用该模块。

Name                                Version InstalledLocation
----                                ------- -----------------
Microsoft.Entra                     1.0.1   <PowerShell-Path>\PowerShell\Modules\Microsoft.Entra\1.0.1
Microsoft.Entra.Applications        1.0.1   <PowerShell-Path>\PowerShell\Modules\Microsoft.Entra.Applications\1.0.1
Microsoft.Entra.Authentication      1.0.1   <PowerShell-Path>\PowerShell\Modules\Microsoft.Entra.Authentication\1.0.1
Microsoft.Entra.DirectoryManagement 1.0.1   <PowerShell-Path>\PowerShell\Modules\Microsoft.Entra.DirectoryManagement\1.0.1
Microsoft.Entra.Governance          1.0.1   <PowerShell-Path>\PowerShell\Modules\Microsoft.Entra.Governance\1.0.1
Microsoft.Entra.Groups              1.0.1   <PowerShell-Path>\PowerShell\Modules\Microsoft.Entra.Groups\1.0.1
Microsoft.Entra.Reports             1.0.1   <PowerShell-Path>\PowerShell\Modules\Microsoft.Entra.Reports\1.0.1
Microsoft.Entra.SignIns             1.0.1   <PowerShell-Path>\PowerShell\Modules\Microsoft.Entra.SignIns\1.0.1
Microsoft.Entra.Users               1.0.1   <PowerShell-Path>\PowerShell\Modules\Microsoft.Entra.Users\1.0.1

若要验证某个特定子模块(例如 Users)是否已安装,请运行:

Get-InstalledModule -Name Microsoft.Entra.Users

输出版本应与PowerShell 库上的最新版本匹配。

Version              Name                                Repository           Description
-------              ----                                ----------           -----------
1.0.1                Microsoft.Entra.Users               PSGallery            Microsoft Entra PowerShell

排查安装问题

Error 原因 Workaround
Install-Module:找不到与参数名称 AllowPrerelease 匹配的参数。 你使用的是较旧版本的 Install-Module。 若要升级,请遵循 本指南。 此问题仅适用于Windows平台。
此计算机上未安装依赖模块“module-name”。 若要使用当前模块“Microsoft.Entra”,请确保其依赖模块“module-name”已安装。 未安装 Microsoft Entra PowerShell 依赖项 若要安装, 请使用此脚本
系统中已存在 cmdlet 添加 -AllowClobber 参数: Install-Module -Name Microsoft.Entra -Repository PSGallery -Force -AllowClobber
此系统上已提供以下命令:“Enable-EntraAzureADAlias,Get-EntraUnsupportedCommand,Test-EntraScript” Betav1.0中的任意一个已安装时,会发生冲突 若要解决此问题, 请卸载 有问题的模块版本。

有关其他常见安装和其他常规问题的解决方案,请参阅 模块安装问题疑难解答

登录

若要开始使用 Microsoft Entra PowerShell 模块管理Microsoft Entra资源,请启动 PowerShell 会话并运行 Connect-Entra 以登录到Microsoft Entra ID:

Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -Filter "userPrincipalName eq '[email protected]'"

使用Microsoft Entra凭据登录到打开的登录窗口。

对于启动的每个新的 PowerShell 会话,需要重复此步骤。

有关其他身份验证方案的详细信息,请参阅 更多身份验证方案

更新模块

如果已安装模块,请按照以下步骤对其进行更新。

首先,使用本文 的“验证安装 ”部分中的指南验证模块版本和位置。

更新到最新版本

使用 Update-Module 更新到 Microsoft Entra PowerShell 模块的最新版本。

Update-Module -Name Microsoft.Entra -Force

若要更新特定的子模块,例如 Users,请运行:

Update-Module -Name Microsoft.Entra.Users -Force

使用 Update-Module 更新 Microsoft Entra PowerShell 模块不会从系统中删除该模块的旧版本。

卸载该模块

若要删除模块,请运行以下命令:

Uninstall-Module -Name Microsoft.Entra -AllVersions -Force

若要卸载特定的子模块,例如 Users,请运行:

Uninstall-Module -Name Microsoft.Entra.Users -AllVersions -Force

若要卸载所有子模块,请运行:

$InstalledSubModules = Get-InstalledModule -Name Microsoft.Entra.* |
Where-Object { $_.Name -notmatch "Beta" }
foreach ($module in $InstalledSubModules) {
    Write-Host "Checking for submodule: $($module.Name)" -ForegroundColor Yellow -BackgroundColor DarkBlue
    Uninstall-Module -Name $module.Name -Force -ErrorAction Stop
    Write-Host "Successfully uninstalled submodule: $($module.Name)" -ForegroundColor Green
}

后续步骤

  • 若要详细了解如何导航 Microsoft Entra PowerShell 模块,请参阅“导航模块”一文。