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.0 和 Beta 安装完整模块。
使用 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 上的先决条件
安装受支持的 PowerShell 版本 7 或更高版本
如果需要,请安装Microsoft Graph PowerShell SDK模块依赖项。
在 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 上的先决条件
- 安装受支持的 PowerShell 版本 7 或更高版本
在 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” | 当Beta或v1.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 模块,请参阅“导航模块”一文。