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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
函数计算FC,每月15万CU 3个月
简介: 在Azure Entra ID中,需要导出一个Application 下的用户信息, 包含User的创建时间。

问题描述

在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

 

 


当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
19天前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
1月前
|
监控 关系型数据库 MySQL
PowerShell 脚本编写 :自动化Windows 开发工作流程
PowerShell 脚本编写 :自动化Windows 开发工作流程
32 0
|
3月前
【Azure Durable Function】PowerShell Activity 函数遇见 Newtonsoft.Json.JsonReaderException: The reader's MaxDepth of 64 has been exceeded.
【Azure Durable Function】PowerShell Activity 函数遇见 Newtonsoft.Json.JsonReaderException: The reader's MaxDepth of 64 has been exceeded.
|
3月前
【Azure Web Job】Azure Web Job执行Powershell脚本报错 The term 'Select-AzContext' is not recognized as the name
【Azure Web Job】Azure Web Job执行Powershell脚本报错 The term 'Select-AzContext' is not recognized as the name
|
3月前
|
存储 C# Python
【Azure Storage Account】Azure 存储服务计算Blob的数量和大小的PowerShell代码
【Azure Storage Account】Azure 存储服务计算Blob的数量和大小的PowerShell代码
|
2月前
|
Windows
Powershell 重新排列去重 Windows环境变量
【9月更文挑战第13天】本文介绍如何使用PowerShell对Windows环境变量进行重新排列和去重。首先通过`$env:`访问环境变量,接着使用`-split`命令分割路径,再利用`Select-Object -Unique`去除重复项。之后可根据需要对路径进行排序,最后将处理后的路径组合并更新环境变量。注意修改环境变量前应备份重要数据并了解潜在影响。
127 10
|
6月前
|
存储 Ubuntu Linux
windows可以安装Ubuntu,ubuntu上也可以安装Powershell
powerhsell除了可以在windows上使用外,还可以在Ubuntu上部署开发环境。下面介绍Ubuntu上安装powershell的方法。
199 0
|
Shell Linux 开发工具
windows中cmd和PowerShell批处理命令
之前在 Git 批量删除本地分支,有用到 Linux 或 MacOS 下的批处理命令,这个命令中的 grep、xargs 本身是 Shell script,在 windows 中的 cmd 和 PowerShell 中是不能用的
98 0
|
JavaScript Windows
[Vue]解决 Windows PowerShell 不识别 vue 命令的问题
[Vue]解决 Windows PowerShell 不识别 vue 命令的问题
|
Windows
使用PowerShell获取Windows当前锁屏壁纸
使用PowerShell获取Windows当前锁屏壁纸 如果原始图片丢了,用这段代码就可以提取当前锁屏壁纸了!
179 0