我正在使用Azure AD,需要获取所有用户并将其导出到csv文件中,最后将其放入SQL中。
目前,我们大约有10,000个用户。问题是PowerShell命令[Get-AzureADUser – ALL]超级慢!完成任务大约需要58分钟。今天,我们注意到一些用户对其帐户进行了更改。我需要更新整个列表以查找所做的更改。
1)是否可以更快地获得所有用户?
2)如何仅找到对帐户进行了更改的用户?
Powershell脚本:
$aadUsers = Get-AzureADUser -All $true | Select DisplayName, ObjectId, userType,GivenName
答案 0 :(得分:0)
根据我的研究,如果我们想获得用户的更改,我们有两种方法可以做到这一点
Track changes to users with Users audit logs。
我们可以使用Azure AD Powershell命令Get-AzureADAuditDirectoryLogs
获取用户审核日志。有关更多详细信息,请参阅https://docs.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://docs.microsoft.com/en-us/graph/delta-query-users
答案 1 :(得分:0)
Get-msoluser -all | select DisplayName, ObjectId, userType, FirstName
Get-msoluser -all | select *
Get-msoluser -all | Where {$_.city -eq 'chicago'}
该模块似乎要快很多。