2013-05-03 46 views
1

我試圖獲取安全組「安全組A」中的計算機的csv,然後基於LastlogonTimestamp進行篩選,以便任何尚未登錄60天的計算機將不會在結果中。我嘗試了幾種不同的方式,但我沒有任何運氣。 我想知道是否有人可以協助。 目前我已經試過爲get-adcomputer創建PS查詢

`$lastlogon = (get-date).adddays(-60).ToFileTime() 

Get-ADGroupmember "Security Group A" | Select Name 

我不知道我怎麼能管這從這裏走出。我曾嘗試使用$ comp的變量,但我得到一個關於不是廣告對象的錯誤,而是一個系統對象。

另一種選擇是

$lastlogon = (get-date).adddays(-60).ToFileTime() 
Get-ADGroup "Security Group A" -properties members | %{$_.members} | %{get-adcomputer $_ |select name | out-file C:\temp\output.csv 

隨着最後一個我試圖添加

-filter {Lastlogontimestamp -gt $lastlogon} 

在$後_之前,但似乎返回一個空的CSV(我知道有結果)。

我做錯了什麼...任何想法? 感謝

+0

做我的答案工程工作? @JohnyV – Solaflex 2013-05-04 09:32:48

+0

對不起@Solaflex我還沒有嘗試過。我會嘗試今天更新。不過謝謝。 – JohnyV 2013-05-05 21:46:16

+0

沒有爲我工作。查詢沒有產生任何錯誤,但它沒有輸出任何東西。 – JohnyV 2013-05-06 00:09:10

回答

2

試試這個

[DateTime]$lastlogon = (get-date).adddays(-60).ToFileTime() 

$Computers = Get-ADGroupmember "Security Group A" | Select-Object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}} 

$Computers | where {$_.lastLogonTimestamp -gt $lastlogon} | select name | out-file C:\temp\output.csv -Force 

與通訊組測試,但也應該在一個安全組

+1

這工作雖然[長] $ lastlogon =(get-date).adddays(-60).ToFileTime()Get-ADGroupMember「安全組A」| %{Get-ADComputer $ _ -Properties lastlogontimestamp |其中{$ _。lastlogontimestamp -gt $ lastlogon} |選擇名稱} | export-csv c:\ temp \ output.csv – JohnyV 2013-05-06 00:28:42

+0

完美:) 在下一個問題中看到你;) – Solaflex 2013-05-06 05:21:26