XP)を実行している、過去26週間以内にドメインに接続したシステムを教えてくれる単一のdsqueryを作成しようとしているので、段階的に廃止する必要があるものを把握できます。次の2か月。
私が現在直面している問題は、Windowsを実行しているシステムを見つけるためにdsqueryを実行すると、XPシステムのリストが返されることです。その多くは、アクティブではないことがわかっています。 ADオブジェクトとして削除されます(これは別の問題です。ベストプラクティス/セキュリティの講義を控えてください...一度に1つずつ)。
以下のクエリを使用して、Windows XPを実行しているシステムを検索し、それをテキストファイルに出力します。
dsquery * domainroot -filter "(&(objectCategory=computer)(operatingSystem=Windows XP*))" -limit 1000 > c:\XP_Machines.txt
上記の出力のどのシステムが過去26週間以内にネットワークに接続したかを示すクエリに追加したいと思います。
実行できる過去26週間に接続されていないシステムを見つけることを知っています。
dsquery computer -inactive 26
ただし、Windows XPを実行しているシステム出力のサブセットとして、過去26週間にアクティブになっているシステムを見つける方法がわかりません。
よろしくお願いします。
注: PowerShellを使用してこれを行うためのより良い方法があれば、私もそれを受け入れます。
LastLogonTimestamp属性をフィルターに追加し、6か月前のlastLogonTimestampの数値を取得します。例:
dsquery * domainRoot -filter "(&(objectCategory=computer)(operatingSystem=Windows XP*)(lastLogonTimestamp<=130200503900000000))" -limit 1000
130200503900000000は2013-08-0320:39:50の値です
PowerShellでは、次のように数値fileTimeを取得できます。
[datetime]::Now.AddDays(-180).ToFileTime()