AzureAD 非活动用户监控

问题描述 投票:0回答:1

我目前正在致力于监视 AzureAD(或 EntraID)中的非活动用户帐户。为此,我使用 PowerShell 和 MgGraph 来收集用户信息及其上次登录日期。

为了仅过滤掉 Azure 用户(而非本地用户),我使用了 OnPremisesSyncEnabled 属性。然而,这个属性在我们的环境中似乎是空的,这给识别所需的用户帐户带来了一些挑战。

我编写了以下脚本(与Graph的连接已经完成)

$users = Get-MgUser -All | Where-Object { $_.OnPremisesSyncEnabled -eq $none -and $_.UserType -ne "Guest" -and $_.SignInActivity.LastSignInDateTime -lt (Get-Date).AddDays(-180) }

$users | Select-Object UserPrincipalName, OnPremisesSyncEnabled, @{Name="LastSignIn"; Expression={$_.SignInActivity.LastSignInDateTime}}

此脚本不返回任何内容...有人知道如何正确监控它吗?

azure powershell azure-active-directory microsoft-graph-api azure-powershell
1个回答
0
投票

当指向

OnPremisesSyncEnabled
端点时,仅在
$select
(使用
-Select
时为
Get-MgUser
)检索
v1.0
。请参阅属性

顺便说一句,这里根本不需要

Where-Object
。过滤可以在 Azure 端完成。

$date = [datetime]::UtcNow.AddDays(-180).ToString('s') + 'Z'
$getMgUserSplat = @{
    Filter           = "onPremisesSyncEnabled eq null and userType ne 'Guest' and signInActivity/lastSignInDateTime le $date"
    CountVariable    = 'count'
    Select           = 'UserPrincipalName', 'OnPremisesSyncEnabled', 'signInActivity'
    ConsistencyLevel = 'eventual'
}

$users = Get-MgUser @getMgUserSplat
$users | Select-Object UserPrincipalName, OnPremisesSyncEnabled, @{ N='LastSignIn'; E={ $_.SignInActivity.LastSignInDateTime }}
© www.soinside.com 2019 - 2024. All rights reserved.