簡體   English   中英

如何使用 LDAP 請求啟用或禁用 AD 用戶帳戶?

[英]How can I enable or disable an AD user account with an LDAP request?

到目前為止,我能夠在 LDAP 中找到用戶,但我不知道如何啟用或禁用它們。

作為第二個問題,如果我的帳戶具有域管理員權限,我是否能夠啟用或禁用來自 LDAP 的帳戶?

注意:這是關於在 Windows 2003 上運行的 Microsoft Active Directory。

我知道我可以通過以下方式檢查有效用途

(!(useraccountcontrol:1.2.840.113556.1.4.803:=2))

禁用用途:

(useraccountcontrol:1.2.840.113556.1.4.803:=2)

問題是我如何以不會丟失內部其他二進制標志的方式設置屬性。

您需要在這里使用一些邏輯。 因此,要禁用用戶,您可以設置禁用位 (2)。 所以:

const long ADS_UF_ACCOUNTDISABLE = 0x00000002;
long userAccountControl = //currentUacValue
long newUserAccountControl = (userAccountControl | ADS_UF_ACCOUNTDISABLE);

要啟用帳戶,我們需要清除禁用位:

long userAccountControl = //currentUacValue
long newUserAccountControl = (userAccountControl & ~ADS_UF_ACCOUNTDISABLE)

如果您在 Linux 上使用 ldapsearch 和 ldapmodify,並且您不深入了解 C 以理解上述答案,您也可以從當前值中減去 2。

$id="accountname"
USERCN=$(ldapsearch sAMAccountName=$id 2>/dev/null|grep "cn: " | sed 's/cn: //g')
USERDN="CN=${USERCN},CN=Users,DC=example,DC=com"

uac=$(ldapsearch sAMAccountName="$id" -LLL userAccountControl 2>/dev/null |grep userAccountControl: | awk '{print $2}')

uac="$(($uac-2))"
echo "dn: $USERDN
changetype: modify
replace: userAccountControl
userAccountControl: $uac" | ldapmodify -Q

當然,我們在這里使用 kerberos 對 AD 進行身份驗證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM