PS 之AD命令之Get-ADuser!

Posted 雾岛心情

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PS 之AD命令之Get-ADuser!相关的知识,希望对你有一定的参考价值。



Get-user 是一条很强大的命令,通常这条命令产生的结果集合作为其他的命令的输入,他可以查询出单一一个对象,也可以查询出结果集,这综合了之前的dsgetDSquery命令,来完成我们需要设定和完成的任务。

首先我们来看看简单的任务:

我们如果希望了解到某个用户信息,

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!的主要内容,如果未能解决你的问题,请参考以下文章

在AD中导出所有用户资料

linux之ps -ef和ps aux的区别

Linux之更多bash shell命令

Bash之PS1配置

AD-删除账户命令 Remove-ADUser

AD-禁用账户命令 Disable-ADAccount