服务主体是授予应用程序和服务访问 Microsoft Entra ID 资源的安全身份,存储应用程序 ID、权限、角色和所有权等关键信息。管理员需要访问这些信息以进行安全、合规和访问管理,以及审计和故障排除。虽然 Graph PowerShell 的 Get-MgServicePrincipal 命令是 Get-AzureADServicePrincipal 命令的替代方案,可用于检索服务主体数据,但其复杂且不直观的界面使其成为一个具有挑战性的选项。
在使用 Get-MgServicePrincipal cmdlet 之前,请确保以下事项:
Install-Module Microsoft.Graph -Scope CurrentUser
Application.Read.All, Directory.ReadWrite.All, Directory.Read.All,
Application.ReadWrite.OwnedBy, Application.ReadWrite.All,
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>]
示例 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 个项目。 |
ManageEngine ADManager Plus 是一款身份治理和管理解决方案,具备全面的 Microsoft Entra ID 管理和报告功能,消除了复杂 PowerShell 脚本的麻烦。其直观且用户友好的界面使您能够在几分钟内简化最复杂的管理任务。