sql - Get-AzureADUser - ALL - PowerShell Slow 获取所有用户和对帐户进行更改的用户

标签 sql azure powershell azure-active-directory

我正在使用 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

最佳答案

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

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

enter image description here

  • 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://learn.microsoft.com/en-us/graph/delta-query-users

    关于sql - Get-AzureADUser - ALL - PowerShell Slow 获取所有用户和对帐户进行更改的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59471911/

    相关文章:

    python - 如果从 python 运行,某些 powershell cmd-let 不可用?

    powershell - 根据事件日志触发powershell

    PowerShell mkdir别名+ Set-StrictMode -Version2。奇怪的错误。为什么?

    mysql - 如何在 bash 中使用一个 mysql 命令显示数据库、表、列?

    sql - 学习 PostgreSQL

    asp.net - 将 .NET Core Web 应用程序部署到 Azure 时出错

    c# - Azure服务总线: ReceiveMessagesAsync returns only a subset

    mysql - 创建触发器以使用另一个表的更改来更新表

    php - 根据从数据库中选择的值搜索数据库

    azure - 关于即插即用数字孪生的澄清