Powershell小技巧之查询AD用户
程序员文章站
2022-04-20 08:52:41
假若你登录到了一个ad中你可以轻松的查询ad目录。在先前的技巧中我们阐述了一个基本脚本。这里有一个可以自定义根目录的扩展方法(设置你的查询点),它支持同步查询(而不是递归到...
假若你登录到了一个ad中你可以轻松的查询ad目录。在先前的技巧中我们阐述了一个基本脚本。这里有一个可以自定义根目录的扩展方法(设置你的查询点),它支持同步查询(而不是递归到一个容器)。
它同时也阐述了怎么从一个活动目录查找结果再将其转化成用户对象:
$samaccountname = 'tobias' $searchroot = 'ldap://ou=customer,dc=company,dc=com' $searchscope = 'onelevel' $ldap = "(&(objectclass=user)(samaccountname=*$samaccountname*))" $searcher = [adsisearcher]$ldap $searcher.searchroot = $searchroot $searcher.pagesize = 999 $searcher.searchscope = $searchscope $searcher.findall() | foreach-object { $_.getdirectoryentry() } | select-object -property *
支持所有的ps版本
想要了解ad中账号使用情况,如什么时候创建\最后一次登录是时间\最后一次修改密码等信息,利用powershell,这些都可以达到.
powershell中get-aduser能查询的信息很多,可参考下面文章:
下面介绍用powershell查询指定ou中所有账号的创建时间\sid\上次修改密码时间\最后一次登录时间,cmdlet如下:
get-aduser -searchbase ' ou=user,ou=compay1,dc=domain,dc=com ' -filter * -properties * | select-object name,sid, created,passwordlastset,@{n="lastlogondate";e={[datetime]::fromfiletime($_.lastlogontimestamp)}} | export-csv accountlist.csv -notypeinformation -encoding utf8
(请自行修改ou和域信息)
查询出指定的结果生成.csv文件,用excel打开,进行需要的统计与分析,效果如下:
如果要查询整个ad中的所有账号,取消中间的-searchbase ' ou=user, ou=compay1,dc=domain,dc=com '即可.
推荐阅读
-
Powershell小技巧之使用WMI查询插上的U盘
-
Powershell小技巧之系统运行时间
-
Powershell小技巧之使用Copy-Item添加程序到开机启动
-
Powershell小技巧之使用-F方法带入数据
-
Powershell小技巧之使用WMI测试服务响应
-
Powershell小技巧之播放WAV声音
-
Powershell小技巧之使用Jint引擎在PowerShell中执行Javascript函数
-
Powershell小技巧之通过EventLog查看近期电脑开机和关机时间
-
Powershell小技巧之使用Get-ChildItem得到指定扩展名文件
-
PowerShell小技巧之启动远程桌面连接