我想在去年以来从未使用过任何服务器的AD组中找到不 Activity 的用户。我不想找到整个AD的非 Activity 用户,而是一个特定的组。任何可以执行此操作的PowerShell命令?
我试过了:
Get-AdGroupMember -identity “Groupname” –AccountInactive -DateTime ‘1/12020’ –ResultPageSize 2000 –ResultSetSize $null |
?{$_.Enabled –eq $True} | select name |
Export-CSV -path
并且我还尝试了以下方法:
Get-AdGroupMember -identity “Groupname” | select name, lastlogon
在第一个中,它给我一个错误,它无法识别参数
AccountInnactive
和Datetime
,第二个命令中的lastlogon
表为空 最佳答案
$DaysInactive = 90
$time = Get-Date
Get-ADGroupMember "*GroupName*" -Recursive | get-aduser -Properties lastlogon |
where {[DateTime]::FromFileTime($_.LastLogon) -lt ($time).Adddays(-($DaysInactive)) -and $_.enabled -eq $true } |
select name,@{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}}
在上面的代码中,我们将
Get-ADGroupMember
的结果传递给get-aduser
,以明确询问laSTLogon详细信息(带有-properties lastlogon
),因为它不是cmdlet显示此属性的默认属性之一,如果没有它,它将没有任何值(value)。通过应用日期比较,将结果从
get-aduser
传递到where-object
cmdlet,可以进一步缩小结果范围。为了比较日期,我们首先将laSTLogon值转换为[DateTime]::FromFileTime($_.LastLogon)
使用的相同类型的[DateTime] Get-Date
,以便我们进行比较