我正在使用 Azure AD,需要获取所有用户并将其导出到 csv 文件中,最后将其放入 SQL 中。
目前我们大约有 10,000 名用户。问题是 PowerShell 命令 [Get-AzureADUser – ALL] super 慢!完成任务大约需要58分钟。今天我们注意到一些用户对其帐户进行了更改。我需要更新整个列表才能找到所做的更改。
我的问题是:
1) 有没有更快的方法可以获取所有用户?
2) 我如何才能只找到对其帐户进行过更改的用户?
Powershell 脚本:
$aadUsers = Get-AzureADUser -All $true | Select DisplayName, ObjectId, userType,GivenName
最佳答案
根据我的研究,如果我们想要获取用户的更改,我们有两种方法可以做到
Track changes to users with Users audit logs .
我们可以使用 Azure AD Powershell 命令
Get-AzureADAuditDirectoryLogs
来获取用户审核日志。更多详情请引用https://learn.microsoft.com/en-us/powershell/module/azuread/get-azureadauditdirectorylogs?view=azureadps-2.0-preview
Install-module AzureADPreview
Connect-AzureAD
Get-AzureADAuditDirectoryLogs -All $true -Filter "Category eq 'UserManagement' and result eq 'success'"
Get https://graph.microsoft.com/v1.0/users/delta
例如
GET https://graph.microsoft.com/v1.0/users/delta?$select=displayName,givenName,surname
如果您的响应太大,它将在响应中返回@odata.nextLink
。然后就可以直接使用该链接来获取下一页响应。在最后一个页面响应中,它将在响应中返回@odata.deltaLink
。您可以保存它并直接使用该链接下次获取更改。更多详情请引用https://learn.microsoft.com/en-us/graph/delta-query-users
关于sql - Get-AzureADUser - ALL - PowerShell Slow 获取所有用户和对帐户进行更改的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59471911/