windows Powershell 命令大全(持续更新)

相关命令是从网络转载过来,然后综合到一起的。供大家参考:

 

所有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

wKiom1Y8CKWxjVo4AAFQXuAwSZM380.jpg

说明:

a. 会导出到当前目录,也可以在Export-Csv后跟 -Path指定路径。

b. 可以对结果进行Sort-Object排序

2. 查询指定OU的位置信息(OU太多,人员异动的时候老是记不住目标位置)

Get-ADOrganizationalUnit -Filter {name -eq "OUname"}

wKiom1Y8DPHjiRRDAAGz10JNuUc140.jpg

3. 清除/添加 OU/User/计算机对象的防意外删除(场景为想处理一些对象的时候没权限,需要去掉这个属性)

Set-ADObject -ProtectedFromAccidentalDeletion $false/true

wKiom1Y8DlqCb8aaAAKmf5EvB2I086.jpg

4. 设置所有用户(指定OU的所有用户/csv列表用户)密码永不过期(或取消永不过期)

Set-ADUser -PasswordNeverExpires $false/false

wKiom1Y8DziByO5fAAFuOG2-avY356.jpg

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"

wKioL1Y8EcOgmE79AALSKYV1k1Y321.jpg

6. 查询所有超过90天未登录的计算机对象(新环境,无数据,方式与查看用户相同,只是时间表达方式不一样,后面用-gt来查询90天内登录过的计算机对象)

wKioL1Y8EtTTM_x_AAI9SleZq9Y170.jpg

 

7、 查询AD中,默认的密码策略

如果接手一个新的AD环境,需要了解其密码策略如果,或是你忘了你所在组织AD的密码策略,我们一会去组策略管理控制台去查看,但有了PowerShell,会变得很简单,只需一个CMDLET: Get-ADDefaultDomainPasswordPolicy

clip_image001

密码复杂性要注、锁定策略、密码长度、密码有效时间等,可以全部显示出来!

8、 查询AD中,那些用户被选中了“密码永不过期”的选顶

在域管理中,我们一般都会配置一些策略,设置用户密码30天或是90天过期,强制修改密码,但有时,可能会在创建用户时,不小心选中了“密码永不过期”的选顶,这对信息安全来说,是不被允许的,或是说一个不安全的因素,如果通过AD管理工具去检查每个用户,是一个很繁琐的工具,但如果我们利用PowerShell,就可以很方便的一次性查询出AD中所有勾选了“密码记不过期”选顶的用户!

Get-ADUser -Filter 'PasswordNeverExpires -eq $true' -Server DCHostname | select name

将DChostname修改为你域的其中一台DC的主机名

clip_image003

如果你的AD组织足够大,一次性会显示所有AD中的的用户,如果只查询某个指OU下的,可以加入限定条件,如:

-searchbase ' OU=test,DC=Youdomain,DC=COM '

将OU=Test修改为你其中一个OU的名字,将DC=Youdomain,DC=COM改为你的域名,如我的域名为szmaxcent.com.cn,我要查东莞分公司用户所在OU:

Get-ADUser -searchbase ' OU=Dongguan,DC=szmaxcent,DC=COM,DC=CN ' -Filter 'PasswordNeverExpires -eq $true' -Server DC001 | select name

9、 查询AD中,已锁定的用户

如果某些用户因为密码问题导致账号锁定,我们也可以用PowerShell来查看当前域中,有那些账号是锁定状态:

get-aduser -filter * -properties * | where {$_.lockedout} | ft name,lockedout

clip_image005

当然,上面命令也可以参考上面加上限定条件,来指定OU!

如果需要查询某个账号是否锁定:

get-aduser johnsonxiang -properties * | ft name,lockedout

clip_image007

如果红色方框显示为False,为正常状态,如果为Ture,即已锁定!

如果要对已经锁定的账号解锁,直接用:Unlock-ADAccount -Identity johnsonxiang,当然前提是你要有对此锁定解锁的权限!

10、 查询AD中,成员为空AD组(针对用户)

AD组织用久了,创建组越来越多,很多组已经没有任何成员了,也行不会再使用,我们可以将这些组找出来,如果确认不用的话,再将其删除!

用PowerShell,可以很方便的,一次性将这些组全部列出来,命令如下:

Get-ADGroup -Filter * -Properties Members | where { -not $_.Members} | select Name

同样,你也可以参考上面的语句,在前面加上限定条件,来查询指定OU

 

 

你可能感兴趣的:(windows,powershell)