【Azure Entra ID】使用PowerShell脚本导出Entra ID中指定应用下的所有用户信息

问题描述

在Azure Entra ID中,需要导出一个Application 下的用户信息, 包含User的创建时间。

 

问题解答

可以使用PowerShell 脚本来实现, 只需要执行如下脚本:

Connect-AzureAD -AzureEnvironmentName AzureChinaCloud

$users = Get-AzureADServiceAppRoleAssignment -ObjectId <your application object id> -all $ture

$result = foreach($user in $users){
Get-AzureADUser -ObjectId $user.PrincipalId | Select-Object -Property DisplayName, UserPrincipalName, AccountEnabled, {$_.ExtensionProperty.createdDateTime}, {$_.ExtensionProperty.employeeId}
}

$result | export-Csv "yourusersinfo.csv"

说明:

  • 使用 Connect-AzureAD 登录到Azure China Cloud环境,执行后会让你输入Azure用户名和密码
  • 使用 Get-AzureADServiceAppRoleAssignment 获取服务主体应用程序的角色分配,包含User 和 Group 信息。
  • 使用 Get-AzureADUser 从 Microsoft Entra ID 获取用户的信息信息,包含 DisplayName, UserPrincipalName, AccountEnabled,createdDateTime 和 employeeId
  • 如果返回的结果中存在多重对象关系,可以使用 $_.{第一层属性名}.{第二层属性名} 来获取值。如:{$_.ExtensionProperty.createdDateTime}

如果在执行 Connect-AzureAD 时提醒,此指令不识别,表示当前环境中没有安装 Azure AD 模块,可以使用如下命令安装:

if ($null -eq (Get-Module -ListAvailable -Name AzureAD)) {
    Write-Host "Installing Azure AD module" -ForegroundColor Cyan
    Install-Module AzureAD -Repository PSGallery -AllowClobber -Force
}

 

执行PowerShell脚本成功后,生产的CSV文件打开,即可以查看应用下的用户信息:

参考资料

Get-AzureADServiceAppRoleAssignment: https://learn.microsoft.com/zh-cn/powershell/module/azuread/get-azureadserviceapproleassignment?view=azureadps-2.0-preview

 

posted @ 2024-10-09 21:47  路边两盏灯  阅读(9)  评论(0编辑  收藏  举报