1

我正在尝试获取安全组“安全组 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(我知道有结果)。

我做错了什么......有什么想法吗?谢谢

4

1 回答 1

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

使用通讯组测试,但也应该在安全组中工作

于 2013-05-03T06:27:56.113 回答