2013-05-03 15 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