我想与一些用户自动AD解锁。
我用它来导入文本文件中的信息
Get-EventLog -LogName Security -ComputerName COMP -InstanceId 4740 -Newest 1 | Format-List >> $log
然后我用这个
If ((Get-Content $log) -match $name ) { Unlock-ADAccount -Identity $Account_Name }
现在, $Account_Name
必须与第一个命令(export eventlog)中列出的用户名相同。 我怎样才能做到这一点? 当然用户名每次都会有所不同,所以我想知道我是怎么做到的。 让一些用户自动解锁将帮助我很大的时间!
像batch file中的%USERNAME%。
我如何正确地做到这一点?
而不是这种方法,使用Search-ADAccount cmdlet来查找locking的帐户,并pipe理列表中的任何帐户可能更有意义:
Search-ADAccount -LockedOut | where { $ListOfUsersToUnlock -contains $_.Name } | Unlock-ADAccount
通过parsing和祈祷工作风格(对象 – >文本 – >parsing – >对象),使其变得更加困难。
BartekB的答案绝对是被问到的原始问题的一个很好的答案。 但是,不得不持续地对AD进行轮询,以locking帐户,以便在发生被locking时select性地解锁子集,这对于根本问题似乎是一个非常糟糕的解决scheme。
在这一天结束的时候,听起来好像你想有一个你的用户的一个不能把他们的密码locking的子集。 那么为什么不在用户的子集上使用细粒度的密码策略 ,以防止他们被locking在第一位呢? 不需要脚本,也没有轮询AD。 只需创build您的密码设置对象(PSO),即可删除locking设置,并将其locking在包含您不想locking的用户的组上。