我希望针对 Active Directory 运行 PowerShell 报告,以查找过去 90 天内登录的所有 Windows 7 电脑。
我经常将此报告与 Quest 一起使用来清理 AD,这是我正在寻找的确切细节,以便找到活动的 Windows 7 电脑,然后我可以轻松地过滤这些电脑以进行审核。
Get-QADComputer -InactiveFor 90 | export-csv -path c:\deadclients.csv
谁能告诉我如何修改这个命令?
我希望针对 Active Directory 运行 PowerShell 报告,以查找过去 90 天内登录的所有 Windows 7 电脑。
我经常将此报告与 Quest 一起使用来清理 AD,这是我正在寻找的确切细节,以便找到活动的 Windows 7 电脑,然后我可以轻松地过滤这些电脑以进行审核。
Get-QADComputer -InactiveFor 90 | export-csv -path c:\deadclients.csv
谁能告诉我如何修改这个命令?
我认为他要求的是此命令的相反版本(它返回 90 天以上的计算机,他想要更新的计算机)。
我不熟悉 quest cmdlet,但这里是使用本机 AD cmdlet 的方法。如果您仍然想使用任务的东西,您可能会看到我在做什么并根据您的需要进行调整......
get-adcomputer -filter * -prop LastLogonDate | ? {$_.LastLogonDate -gt (Get-Date).AddDays(-104)} | select name,lastlogondate
您需要注意的一件事是 lastlogondate 属性不准确,即使计算机最近登录的时间也可能比当前日期晚 14 天,因此您需要考虑将搜索参数调整为结果。在这种情况下,我将其更改为 104。
这是一篇文章,解释了该属性以及为什么它落后于设备的实际上次登录:
编辑:更新的答案 -
$date = (get-date).AddDays(-104)
get-adcomputer -filter { LastLogonDate -gt $date -and OperatingSystem -like "Windows 7*"} -prop LastLogonDate,OperatingSystem |
select name,lastlogondate,OperatingSystem,distinguishedname
我能够使用该站点中的脚本在您的 Active Directory 域中查找仍然存在的 Windows XP 计算机并将其修改为 Windows 7。
然后,在 Excel 中,我按上次登录时间戳过滤了计算机。