今儿boss让我输出一个简单的报表,需要列出悉尼除了系统账号以外的所有用户,包括他们的名字,手机,座机,所在的OU,公司等等信息。
这个基本的命令很简单,get-aduser就能实现,几个过滤的条件稍微思考了一下。
- 所有悉尼用户,可以用 -searchbase限制搜索的OU范围;
- 排除系统账号,因为所有的系统账号都位于同一个OU下面,那么搜索的时候过滤掉这个OU就行,例如
get-aduser -filter * | where-object{$_.disginuishedname -notlike ‘*XXXX*‘}
- 各种需要查看的属性可以用-properties 列出
- 用户所在的OU本身不是一个属性,不过可以列出用户的caonicalname 属性,例如 /domain/ouname/username 的格式,然后通过split分隔符’/‘来处理
- 可以通过{name="xxx"‘;express={XXX}}的格式来自定义输出的表格header
- 最后导出到csv文件保存
get-aduser -Filter * -SearchBase "ou=sydney,dc=omnicom,dc=com,dc=au" -Properties name,mobile,title,ipphone, canonicalname,company,office |?{$_.distinguishedname -notlike ‘*Sydney Non-Replication*‘}| select Name, Title, Mobile,@{name="Extension";expression={$_.ipphone}},@{name="OU";expression={$temp=($_.canonicalname -split ‘/‘);$temp[$temp.count-2]}}, company, office | sort name| Export-Csv c:\temp\users.csv
时间: 2024-10-10 09:25:49