文章目录

今天空一点了,再搞搞Get-ADUser
看看其实是可以一条命令把AD用户都导出来的,但是只能存csv,当然不只是csv,但是能用的也就这个了。

get-aduser -SearchBase "ou=china,ou=users,ou=root2,dc=vstage,dc=co" -searchscope "subtree" -filter * -Properties * | select name,lastlogondate,DistinguishedName,samaccountname,description | Export-Csv C:\0_WH\lastlogon.csv -Encoding UTF8 -NoType

就把用户导出来了,但是还是不快,直接不export,在PS里面跑一跑的话大概一两秒出一个人的数据。
所以还是想搞搞看[ADSI]这个的效率要高很多啊,还直观。

然后就查一下呗,最近发现bing还蛮好用的,其实也不一定要都用google…
找到了这个:

PS C:\> [datetime]::fromfiletime($user.ConvertLargeIntegerToInt64($user.lastlogon[0]))

我们可以用ConvertLargelntegerToInt64来把lastlogonstemp 转成Int来用。
然后把这个用在我的search里面。

$sheet.cells.item($intRow,6) = [datetime]::fromfiletime($account.ConvertLargeIntegerToInt64($account.lastlogontimestamp[0]))

这里的$account.lastlogontimestamp[0]里面[0]不能省,不然的话会转换找不到目标。
ADSI的好处是一下子把所有的object都read了出来,这样的话效率是明显比用Get-ADUser来得高得多的。

Github地址