如何使用 Get-MgServicePrincipal 检索服务主体对象的属性和关系

检索 servicePrincipal 对象的属性和关系

服务主体是授予应用程序和服务访问 Microsoft Entra ID 资源的安全身份,存储应用程序 ID、权限、角色和所有权等关键信息。管理员需要访问这些信息以进行安全、合规和访问管理,以及审计和故障排除。虽然 Graph PowerShell 的 Get-MgServicePrincipal 命令是 Get-AzureADServicePrincipal 命令的替代方案,可用于检索服务主体数据,但其复杂且不直观的界面使其成为一个具有挑战性的选项。

使用 Microsoft Graph PowerShell 检索 servicePrincipal 对象的属性和关系

前提条件

在使用 Get-MgServicePrincipal cmdlet 之前,请确保以下事项:

  • The Microsoft Graph PowerShell module is installed. If not, install it using this script:
    Install-Module Microsoft.Graph -Scope CurrentUser
  • Connect to Microsoft Graph PowerShell with the following permissions to retrieve the properties and relationships of a service principal object
    Application.Read.All, Directory.ReadWrite.All, Directory.Read.All,
    Application.ReadWrite.OwnedBy, Application.ReadWrite.All,

使用 Get-MgServicePrincipal 检索服务主体对象的属性和关系

Get-MgServicePrincipal cmdlet 可在 Microsoft Graph PowerShell 中用于检索服务主体对象的属性和关系。语法如下:

Get-MgServicePrincipal
[-ExpandProperty <String[]>]
[-Property <String[]>]
[-Filter <String>]
[-Search <String>]
[-Skip <Int32>]
[-Sort <String[]>]
[-Top <Int32>]
[-ConsistencyLevel <String>]
[-ResponseHeadersVariable <String>]
[-Headers <IDictionary>]
[-PageSize <Int32>]
[-All]
[-CountVariable <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]

使用 Get-MgServicePrincipal cmdlet 的示例用例和脚本

示例 1:从目录中获取所有服务主体

Connect-MgGraph -Scopes 'Application.Read.All'
Get-MgServicePrincipal

示例 2:按显示名称获取服务主体

Connect-MgGraph -Scopes 'Application.Read.All'
Get-MgServicePrincipal -Filter "DisplayName eq 'Power BI Service'" |
Format-List Id, DisplayName, AppId, SignInAudience

示例 3:获取服务主体的数量

Connect-MgGraph -Scopes 'Application.Read.All'
Get-MgServicePrincipal -ConsistencyLevel eventual -Count spCount

示例 4:使用 -Filter 和 -Top 获取显示名称以“a”开头的五个服务主体,包括返回对象的计数

Connect-MgGraph -Scopes 'Application.Read.All'
Get-MgServicePrincipal -ConsistencyLevel eventual -Count spCount -Filter "startsWith(DisplayName, 'a')" -Top 5

示例 5:使用 -Search 获取显示名称包含“Team”字母的服务主体,包括返回对象的计数

Connect-MgGraph -Scopes 'Application.Read.All'
Get-MgServicePrincipal -ConsistencyLevel eventual -Count spCount -Search '"DisplayName:Team"'

支持的参数

下表包含可与 Get-MgServicePrincipal 命令一起使用的一些参数。

参数 描述
-CountVariable 此参数指定集合中项目的总数。
-Filter 此参数按属性值过滤项目。
-Skip 此参数跳过前 n 个项目。
-Sort 此参数按属性值对项目进行排序。
-Top 此参数仅显示前 n 个项目。

使用 Graph PowerShell 脚本检索服务主体对象属性和关系的限制

  • Graph PowerShell 要求 IT 管理员从 Azure AD PowerShell 升级并熟悉 PowerShell 脚本。
  • Microsoft Graph 实施 API 速率限制,可能会减慢大型查询速度,或在短时间内请求过多时导致失败。
  • 检索嵌套关系(如服务主体角色分配)需要多次 API 调用和复杂的脚本逻辑。
  • 识别和排查错误可能耗时且需要技术专长。
  • 缺乏直观界面使整体体验不够友好,尤其对脚本新手而言。

ADManager Plus亮点

ManageEngine ADManager Plus 是一款身份治理和管理解决方案,具备全面的 Microsoft Entra ID 管理和报告功能,消除了复杂 PowerShell 脚本的麻烦。其直观且用户友好的界面使您能够在几分钟内简化最复杂的管理任务。

  • 提供易于使用的界面,用于 管理报告 用户,无需复杂的 PowerShell 脚本或 Graph API 知识。
  • 通过 自动化 功能简化批量操作,优化大规模环境,消除复杂脚本的需求。
  • 使用预构建或 自定义模板 标准化管理和报告任务。
  • 生成 200 多个预设报告,支持 自定义 并导出为 CSV 或 HTML 等多种格式。
  • 委派 特定管理和报告任务给技术人员,而不授予过多权限。

不再为 PowerShell 操作烦恼!使用 ADManager Plus 轻松管理 Microsoft Entra ID。

 
  • 检索服务主体对象的属性和关系
  • 使用 Microsoft Graph PowerShell 检索服务主体对象的属性和关系
  • 使用 Graph PowerShell 脚本检索服务主体对象属性和关系的限制
  • ADManager Plus亮点
Active Directory管理与报告的一站式解决方案
电子邮件下载链接 Email the ADManager Plus download link