1
ユーザーがパスワードを変更できるかどうかを確認する方法は2通りあります。最初にCMDLETを使用してクエリを実行しましたが、そのうちの12人がパスワードを変更できませんでした。次に、matching rule bit and
を使用してLDAP検索を使用し、何も返されませんでした。理由は何ですか?ユーザーアカウント制御とプロパティ
1. Get-ADUser -Filter * -Properties CannotChangePassword| where {$_.CannotChangePassword} | sort-object {$_.samAccountName} | Select samAccountName
合計ユーザーがパスワードを変更することはできませんです:12
2.
$domain = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()
$ADSearch = New-Object System.DirectoryServices.DirectorySearcher
$ADSearch.SearchRoot ="LDAP://$domain"
$ADSearch.SearchScope = "subtree"
$ADSearch.PageSize = 100
$ADSearch.Filter = "(&(objectCategory=person)(objectClass=user))"
$properies [email protected](
"sAMAccountName",
"userAccountControl"
)
foreach($pro in $properies)
{
$ADSearch.PropertiesToLoad.add($pro)| out-null
#the name of property of the object, search will load the name in an array #properties
}
$userObjects = $ADSearch.FindAll()
forEach ($user In $userObjects)
{
$accountDis= $user.Properties.Item("userAccountControl")[0]
$global:sam = $user.Properties.Item("sAMAccountName")[0]
if($accountDis -band 64){
$passChange ="Not allowed"
"""$accountDis","$passChange"
}
}
合計ユーザーがパスワードを変更することはできませんです:ADアカウントの場合は0
この場合、 'ADS_UF_PASSWD_CANT_CHANGE'は操作できません。なぜ私が2つの異なる結果を得たのかを説明することができればうれしいです。そして、 'userAccountControl'も同様に複製されます。 – Ender