我正在尝试获取安全组“安全组A”中的csv计算机,然后根据LastlogonTimestamp进行过滤,以便任何未登录60天的计算机都不会出现在结果中。我尝试了几种不同的方法,但我没有运气。 我想知道是否有人可以提供帮助。 目前我已经尝试了
`$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 :(得分: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
使用通讯组进行测试,但也应该在安全组中使用