Get-AzureADUser-所有-PowerShell缓慢获取所有用户和对帐户进行更改的用户

时间:2019-12-24 17:36:51

标签: sql azure powershell azure-active-directory

我正在使用Azure AD,需要获取所有用户并将其导出到csv文件中,最后将其放入SQL中。

目前,我们大约有10,000个用户。问题是PowerShell命令[Get-AzureADUser – ALL]超级慢!完成任务大约需要58分钟。今天,我们注意到一些用户对其帐户进行了更改。我需要更新整个列表以查找所做的更改。

我的问题是:

1)是否可以更快地获得所有用户?

2)如何仅找到对帐户进行了更改的用户?

Powershell脚本:

$aadUsers = Get-AzureADUser -All $true | Select DisplayName, ObjectId, userType,GivenName

2 个答案:

答案 0 :(得分:0)

根据我的研究,如果我们想获得用户的更改,我们有两种方法可以做到这一点

  1. 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'" 

enter image description here

  1. Track changes to users with Microsoft Graph delta query API如下
Get https://graph.microsoft.com/v1.0/users/delta

例如

GET https://graph.microsoft.com/v1.0/users/delta?$select=displayName,givenName,surname

enter image description here

如果您的回复太大,它将在回复中返回@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'} 

该模块似乎要快很多。