2014-10-01 51 views
-1

我正在運行鍼對Active Directory的PowerShell報告,以查找過去90天內已登錄的所有Windows 7計算機。查找在過去90天內登錄的所有Windows 7計算機

我經常使用這個報告與Quest清理AD,這是我正在尋找的確切的細節,以找到活動的Windows 7個,我可以很容易地通過審覈。

Get-QADComputer -InactiveFor 90 | export-csv -path c:\deadclients.csv 

誰能告訴我怎麼修改這個命令?

+0

你能澄清一下你的問題嗎?爲什麼你不能使用你的問題中包含的命令? – aphoria 2014-10-01 16:27:37

+0

你想修改這個命令,但是你沒有解釋你想要什麼或者什麼程度。 – Matt 2014-10-01 16:28:41

回答

0

我想他是要求這個命令做的相反版本(它返回的計算機超過90天,他希望那些更近期)。

我不熟悉任務cmdlet,但這裏是您如何使用本機AD cmdlet執行此操作。你也許可以看到我在做什麼,把它調整到您的需求,如果你仍然想使用的追求的東西...

你將要注意
get-adcomputer -filter * -prop LastLogonDate | ? {$_.LastLogonDate -gt (Get-Date).AddDays(-104)} | select name,lastlogondate 

的一件事是,lastlogondate屬性是不準確的,可即使計算機最近登錄的時間比當前日期晚14天,因此您會考慮調整搜索參數。在這種情況下,我將它改爲104。

下面是一篇文章,解釋財產,爲什麼它落後的設備的實際最後登錄背後:

http://blogs.technet.com/b/askds/archive/2009/04/15/the-lastlogontimestamp-attribute-what-it-was-designed-for-and-how-it-works.aspx

編輯:更新了答案 -

$date = (get-date).AddDays(-104) 
get-adcomputer -filter { LastLogonDate -gt $date -and OperatingSystem -like "Windows 7*"} -prop LastLogonDate,OperatingSystem | 
select name,lastlogondate,OperatingSystem,distinguishedname 
+1

我強烈建議將其更改爲在供應商處進行過濾。 '-Filter {LastLogonDate -gt(get-date).AddDays(-104)}'。然後刪除'?{...}'部分。在提供者級別進行篩選比獲取所有結果(在本例中爲AD中的每個計算機對象)更快,然後使PowerShell篩選所有結果。 – TheMadTechnician 2014-10-01 20:56:37

+0

是的,這是我需要從我有的命令做的相反。 諾亞這一個是我需要的,但有沒有辦法只顯示Windows 7和AD容器的電腦? – user2776281 2014-10-02 09:13:31

+0

@TheMad - 公平點,語法需要有點不同,但它更有效率......出於好奇,我測量了它以後再過濾,並在我們的環境中使用9016個計算機對象在提供程序上過濾了3秒。 – 2014-10-02 13:38:54