DSQuery для поиска систем под управлением Windows XP, которые подключились к домену за последние 26 недель
Я пытаюсь написать один запрос, который сообщит мне, какие системы подключились к нашему домену за последние 26 недель, на которых запущена XP, чтобы мы могли выяснить, что нам нужно для поэтапной ликвидации в течение следующих двух месяцев.
Проблема, с которой я сейчас сталкиваюсь, заключается в том, что, когда я делаю запрос для поиска систем под управлением Windows XP, он возвращает список систем, некоторые из которых, как я знаю, не активны, и которые необходимо удалить как объекты AD (это еще один вопрос, пожалуйста, избавьте меня от лекции по лучшей практике / безопасности... по одной вещи за раз).
Я использую запрос ниже, чтобы найти системы под управлением Windows XP и вывести их в текстовый файл:
dsquery * domainroot -filter "(&(objectCategory=computer)(operatingSystem=Windows XP*))" -limit 1000 > c:\XP_Machines.txt
Я хочу добавить к этому запросу, который скажет мне, какие из систем из вышеприведенных выходов подключились к сети за последние 26 недель.
Я знаю, чтобы найти системы, которые не подключались за последние 26 недель, я могу запустить:
dsquery computer -inactive 26
Однако я не уверен, как найти, какие системы были активны в течение последних 26 недель, как подмножество системного выхода под управлением Windows XP.
Заранее спасибо за вашу помощь.
Примечание. Если есть лучший способ сделать это с помощью PowerShell, я также открыт для этого.
1 ответ
Добавьте атрибут lastLogonTimestamp в свой фильтр и получите числовое значение для lastLogonTimestamp шесть месяцев назад. Пример:
dsquery * domainRoot -filter "(&(objectCategory=computer)(operatingSystem=Windows XP*)(lastLogonTimestamp<=130200503900000000))" -limit 1000
130200503900000000 - значение для 2013-08-03 20:39:50
В PowerShell вы можете получить числовой fileTime следующим образом:
[datetime]::Now.AddDays(-180).ToFileTime()