PowerShell 如今使用越来越频繁,例如管理员维护AD,需要将新建OU里的用户批量启用,当然这一点图形界面也可以做到,换一个要求,在AD管理中经常遇到的事情就是 查询OU,用户,如果用户数量非常多的话这对于图形界面来说不大容易,比如需要查询域中所有的OU,或者某OU下的用户,Powershell可以很方便 的统计这些庞大的信息

                              本章内容

                            1.查询域中所有OU,将名称属性导出

                            2.查询某OU下所有用户

                            3.查询单个用户属性,截取自己想要的值

     接下来演示如何使用PowerShell完成AD日常管理,我会在每条命令后注释说明


1.OU是我们在AD管理中最常接触的,首先附上一条查看域内OU的命令

Get-ADOrganizationalUnit -Filter * -SearchBase “ou=公司,dc=comlan,dc=com”

Get-ADOrganizationalUnit: 查看AD组织单位
Filter: 筛选项,这里我们筛选所有OU
SearchBase:搜索项,就是具体查找哪些OU

这些参数是经常会用到的查询参数


    1.1 上图,红色勾选部分为名称属性,如果只想显示OU的名称就得用到它

wKioL1dXc8_weeSGAABB7cgxA1k379.png

    1.2 使用管道符+Select-Object就可以只将Name显示,如果想显示多个名称在name后输入”,”属性值就可以,如Select-Object name,ObjectGUID,其实fl也可以显示这些名称哦

wKiom1dXdDOjQxd3AAAlMu37UTI482.png

    1.3 经常在查询完之后,领导要求导出表格的形式发给他,这些在PowerShell来看很简单,之前的命令再加一个管道符|-NoTypeInformation -Encoding UTF8,这条参数会将字符编码设置为UTF8,否则会显示乱码

wKioL1dyNjbD0PZbAAAsZtEyl-M638.png

wKiom1dXeTizMqKYAAAo6n5Z_bw719.png

2.查询子OU下用户,例如查看OU技术2部,将查询OU放在参数最前,依次从小到大

wKiom1dXew2zKNTyAAAIT3724Ys681.png

Get-ADUser -Filter * -SearchBase “ou=技术2部,ou=技术大部,ou=公司,dc=comlan,dc=com”|fl Name

wKioL1dXfrmSgnLqAAAfpPxFTXo958.png

3.查看用户的属性
-Properties是查看属性  *代表所有属性,如果想截取某项属性,如移动电话

wKiom1dXf6aweY5aAAAydqcZN-k717.png

wKiom1dXgEniLTG0AAAG_elPsOY040.png

本文出自 “SameOld” 博客,请务必保留此出处http://1163739403.blog.51cto.com/11663406/1787198

上一章写到了查询OU和OU中用户的信息,今天写的是如何修改用户的属性值,当然不是单个修改,使用PowerShell批量修改,即使你想修改一个域的用户那也没有任何问题,比如说你为了修改一个OU中用户的密码,难道你要手动一个个去修改吗?
需 要将OU中用户设置成下次登录时修改密码或者是密码永不过期,难道还要选中所有用户点用户属性吗?如果说前面的可以用图像界面完成,那要统计近一个月没有 登录的用户呢,这个还可以图像吗,So我们可以用命令方便的去做这些事情! 命令就不贴出来了,其实照着打一次方便理解和记忆,具体详细使用方法上一章都 有哦

 1.上来先热个身,将OU中用户管理者设置为Administrator,第一步就是查询ADUser,接着查看所有,筛选出OU中的用户,管道符后修改设置用户的管理者属性,输入管理者名称就可以了(这个也是可以图  像界面全选点属性设置的)

wKioL1dcy9iBbAFAAABMMg_D2OE898.png

2.差点漏了它,查询OU中用户数量这个最常用了,大括号将所有命令括好,然后结尾.count。查询哪OU,SearchBase就写哪个OU,查看公司所有人的数量就写最大的OU,废话有点多,让大家少犯错误。

图中我的OU就是父OU(最大的)

(Get-ADOrganizationalUnit -Filter *).count,这个是查询OU数量的,命令大同小异

wKiom1dczC6Sth_uAAAHRJP9IRU779.png

3.域中很多用户没有登录过,密码大多数过期了,所以想重新批量修改下域用户的密码

wKiom1dc0SiDsfK0AAAgnPTfAqU314.png

4.用户再次登录时自行修改密码

wKiom1dc0hqBmaY0AAAcZfvUHOo599.png

wKioL1dc0yiypxgeAABlqgtXJb8612.png

5.接着上条命令将属性值修改为PasswordNeverExpires,反之,将$true改为$false

如果将密码设置为永不过期后,继续设置下次登录时修改密码是错误的,两者会有冲突

wKiom1dc0t6g7XFcAAAbvM9AgvI846.png

wKiom1dc0t7Cq4a9AABlyRhthsQ369.png


6.获取用户最后一次登录时间,其实就是调用用户所有属性,然后显示Name和LastLogonDate值,

Last跟通配符就是提醒大家灵活应用通配符

wKioL1dc1RrCQIr1AAApsREuEtE721.png

7.查看哪些用户在最近一个月内修改过密码,显示名字和修改时间

查看哪些用户在最近一个月内修改过密码,显示名字和修改时间,从今天算起6月12日,一个月前就是5月12日,所以使用大于号来判断

附上运算符

-eq :等于
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
-contains :包含
-notcontains :不包含

wKioL1dc19ugJm60AAAsu8PgkwY486.png

8.命令优化,命令这样运行可以提高工作效率

wKiom1dyMT2B0dFwAAAZZzfiwDw194.png

如果有小伙伴有其他的问题,可以留言互相讨论!