问题描述
在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
Get-AzureADUser: https://learn.microsoft.com/zh-cn/powershell/module/azuread/get-azureaduser?view=azureadps-2.0
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!