我正在尝试运行一个脚本来搜索配置为Password_not_required(544)的AD用户帐户,并将其更改为password_req(512)。
我不能完全弄清楚SearchBase
上的部分,因为我只想将搜索限制为2 OU,我将它们放在变量$OU
中并引用了它,但是脚本失败。任何帮助将不胜感激。
# log file
if ($logfile -eq $null)
{
$logfile = "C:\test\ADUsersChangedPWNOTREQD.txt"
New-Item $logfile -ItemType File
}
#OU Information
$ous = 'OU=Standard users,DC=x1,DC=contoso,DC=com','OU=Standard users,DC=x2,DC=contoso,DC=com'
# set flag PasswordNotRequired to false
$UsersNoPwdRequired = Get-ADUser -Properties Name,distinguishedname,useraccountcontrol,objectClass -SearchBase $ous -LDAPFilter "(&(userAccountControl:1.2.840.113556.1.4.803:=32)(!(|(userAccountControl:1.2.840.113556.1.4.803:=2)(userAccountControl:1.2.840.113556.1.4.803:=65536)(IsCriticalSystemObject=TRUE))))"
foreach($user in $UsersNoPwdRequired )
{
Set-ADAccountControl $user -PasswordNotRequired $false
Add-Content $logfile "$User"
}
答案 0 :(得分:2)
只需:
$ous = 'OU=Standard users,DC=x1,DC=contoso,DC=com','OU=Standard users,DC=x2,DC=contoso,DC=com'
$ous | ForEach-Object {
$UsersNoPwdRequired = Get-ADUser -Properties Name,distinguishedname,useraccountcontrol,objectClass -SearchBase $_ -LDAPFilter "(&(userAccountControl:1.2.840.113556.1.4.803:=32)(!(|(userAccountControl:1.2.840.113556.1.4.803:=2)(userAccountControl:1.2.840.113556.1.4.803:=65536)(IsCriticalSystemObject=TRUE))))"
foreach($user in $UsersNoPwdRequired )
{
Set-ADAccountControl $user -PasswordNotRequired $false
Add-Content $logfile "$User"
}
}
答案 1 :(得分:0)
谢谢你们,我会做的,我希望通过在有更多时间的时候将Get-aduser移出For-each循环来提高效率。