PS 之AD命令之Get-ADuser!
Posted 雾岛心情
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PS 之AD命令之Get-ADuser!相关的知识,希望对你有一定的参考价值。
Get-user 是一条很强大的命令,通常这条命令产生的结果集合作为其他的命令的输入,他可以查询出单一一个对象,也可以查询出结果集,这综合了之前的dsget和DSquery命令,来完成我们需要设定和完成的任务。
首先我们来看看简单的任务:
我们如果希望了解到某个用户信息,
Get-aduser-identity xupeng |fl
这个时候我们想了解更多的用户信息,怎么办,貌似他只能输出这么多属性,我们需要更多属性怎么办?其实很简单,多添加一个属性,结果就出来了。执行如下命令:
Get-aduser-identity xupeng -properties *
这么多属性不是我们需要的,我们需要的只是账户名称,创建日期,修改日期,密码是否过期等等策略:
Get-aduser -identity xupeng -properties * |ft name,Created,Created,PasswordExpired
OK 查询完单个用户,我们就需要批量执行一些任务了。接下来我们来查询OU下的用户了。比如我们希望查询lineOU下的用户,这个该怎么做呢?
由于查询的目标有当前OU和子集OU之分。所以我们下面举两个例子来看当前OU和带有子集OU的命令差别:
首先我们来看当前OU用户的查询:
Get-aduser -searchbase "ou=line,dc=pilot,dc=com"-searchscope "onelevel" -filter * -properties * |ft name,Created,Created,PasswordExpired
|ft name,Created,Created,PasswordExpired
我们注意到Line OU 下面有子集OU,我们如果需要查询当前OU和子集OU怎么办?执行如下的命令:
Get-aduser -searchbase "ou=line,dc=pilot,dc=com"-searchscope "subtree" -filter * -properties * |ft name,Created,Created,PasswordExpired|ft name,Created,Created,PasswordExpired
两者主要的差别在于搜索的范围的差别,一个只在当前OU,另外一个是OU和子OU。
接下来我们利用get-user 的filter 方法来进行属性的筛选,选择我们需要筛选的部分内容,如果我需要筛选用户名开始为line的部分用户,我的语句怎么写呢?
Get-ADUser -Properties * -Filter "name-like 'line*'" -SearchScope "subtree" -SearchBase"dc=pilot,dc=com" |ft name
我们也可以使用Where进行属性的筛选,来完成针对用户的筛选:
Get-ADUser -Properties * -filter * -SearchScope"subtree" -SearchBase "dc=pilot,dc=com" |where $_.name -like"line*"|ft name
当然我们也可以将这些输出的结果保存为文件,我们也只需要执行如下的命令:
Get-ADUser -Properties * -filter * -SearchScope"subtree" -SearchBase "dc=pilot,dc=com" |where $_.name -like"line*"|select name|export-csv d:\\userlist
接下来我们在想象另外一个场景,也就是我们的用户如果7天内没有登陆,你需要找到这些用户,该怎么写这个语句呢?且看下面:
怎么写呢?
首先我们要求出来2天前的日期。这个命令很简单:
(get-date).adddays(-2)
那么我们写这串命令就很简单了:
Get-ADUser -Properties * -filter * -SearchScope"subtree" -SearchBase "dc=pilot,dc=com" |where $_.LastLogonDate -le (get-date).adddays(-2)|ft name,lastlogondate,logoncount
这样写就把所有的没有登陆和2天没有登陆的用户列出来了,希望这些对大家有帮助!
以上是关于PS 之AD命令之Get-ADuser!的主要内容,如果未能解决你的问题,请参考以下文章