2017-08-01 16 views
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

答えて

0

は、「ユーザーパスワードを変更することはできませんが」によって決定されますuserAccountControl属性のADS_UF_PASSWD_CANT_CHANGE(0x40)ビットではなく、ユーザーアカウントのアクセス制御エントリ。詳細については、https://msdn.microsoft.com/en-us/library/aa746448.aspxを参照してください。PowerShellコマンドレットは、非常に賢明であり、あなたのために多大な労力を費やしています。

+0

この場合、 'ADS_UF_PASSWD_CANT_CHANGE'は操作できません。なぜ私が2つの異なる結果を得たのかを説明することができればうれしいです。そして、 'userAccountControl'も同様に複製されます。 – Ender

関連する問題