前言
突然想到了写这个而已,虽然我ps不熟,但日常还是会遇到一些需求,使用ps可以省很多事,此文持续更新,来记录我日常操作AD的一些Ps命令
正文
所有AD操作记得加载AD模块-Import-Module ActiveDirectory
1. 使用ps导出指定组的成员信息
Get-ADGroup -Filter {name -eq “groupname”} | Get-ADGroupMember | Get-ADUser -Properties * -ErrorAction SilentlyContinue | select Name,SamAccountName,Canonicalname,Company,mail | Export-Csv filename -NoTypeInformation -Encoding UTF8
说明:
a. 会导出到当前目录,也可以在Export-Csv后跟 -Path指定路径。
b. 可以对结果进行Sort-Object排序
2. 查询指定OU的位置信息(OU太多,人员异动的时候老是记不住目标位置)
Get-ADOrganizationalUnit -Filter {name -eq "OUname"}
3. 清除/添加 OU/User/计算机对象的防意外删除(场景为想处理一些对象的时候没权限,需要去掉这个属性)
Set-ADObject -ProtectedFromAccidentalDeletion $false/true
4. 设置所有用户(指定OU的所有用户/csv列表用户)密码永不过期(或取消永不过期)
Set-ADUser -PasswordNeverExpires $false/false
5. 查询所有超过90天未登录的用户(新环境,无数据,后面用-gt来查询90天内登录过用户,可以使用 | select来选择自己需要的数据,LastlogonTimeStamp时间最大可能有14天的偏差)
$lastlogon = (Get-Date).addDays(-90).ToFileTime()
Get-ADUser -Filter {lastlogontimestamp -lt $lastlogon} -SearchBase "OU=test01,DC=dztest,dc=com"
6. 查询所有超过90天未登录的计算机对象(新环境,无数据,方式与查看用户相同,只是时间表达方式不一样,后面用-gt来查询90天内登录过的计算机对象)
总结
先更新到这里了,这些都是我日常使用的,主要是用来做批量的处理,而且这些参数可以更加精确,后续有时间再详细讨论了