1

これについて皆さんにもう 1 つ質問があります。これで、スクリプトが完了したことを願っています。

このスクリプトの「objUser.AccountDisabled = False」行で、Active Directory でアカウントを有効にすることになっていますが、常に無効なアカウントが作成されます。コマンドの後に「objUser.SetInfo」を追加しようとしましたが、エラー (30, 2) (null): The specified directory service attribute or value does not exist. が表示されました。

アカウントの作成を有効にするために試みることができる他のアイデアはありますか?

返信ありがとうございます。

Dim strCode,strID,StrFName,strLName,strFirm,strPwd,strIPGM,strServer,strLMS,strSql,strLMSV,strDisplay

trCode = "za"
strID = "zademo1"
strFName = "Demo"
strLName = "Tester"
strFirm = "Demo"
strPwd = "za1234"
strServer = "rkasp01"
strDisplay = strFName & strLName
strIPGM = "lms" & strCode

Set objOU = GetObject("LDAP://cn=users,dc=asp,dc=rippe,dc=com")

Set objUser = objOU.Create("User", "cn=" & strID)
objUser.Put "sAMAccountName", strID

objUser.Put "givenName", strFName
objUser.Put "sn", strLName
objUser.Put "displayName", strLName
objUser.Put "homedirectory", "\\rkpdc\" & strFirm & "\" & strID
objUser.Put "scriptpath", strFirm & ".bat"
objUser.SetInfo

objUser.SetPassword strPwd
objUser.Put "PasswordExpired", CLng(1)
objUser.AccountDisabled = False  <---------------
'objUser.SetInfo

Set objOU = GetObject("LDAP://cn=users,dc=asp,dc=rippe,dc=com")
Set objGroup = objOU.Create("Group", "cn=" & strFirm)
objGroup.Put "sAMAccountName", strFirm


objGroup.Add objUser.ADSPath
4

2 に答える 2

2

有効/無効の状態を設定しようとするobjUser.SetInfoに、アカウントへの変更を保存するために実行したことを確認することで、アカウントを有効にすることができました。

すなわち

objuser.setpassword "swSDD"
OBJUSER.SETINFO
objuser.AccountDisabled=False

とは対照的に

objuser.setpassword "swSDD"
objuser.AccountDisabled=False
于 2014-08-11T12:49:28.500 に答える
0

userAccountControlアカウントの属性を直接変更してみてください。属性はuserAccountControlビットマスクであり、各ビットまたはフラグは、アカウントの有効化/無効化ステータス、パスワード要件、パスワードの期限切れステータス、およびその他の多くのものをここに記載されているように制御します。

アカウントを有効にするXORには、既存の値の有効/無効フラグ (16 進数の 0x002) をマスクして、無効になっているアカウントを効果的に有効にする必要があります。アカウントが有効になっている場合にアカウントが無効にならないようにするために、アカウントが有効になっているかどうかを事前に確認できます。

変更されたスクリプトの例:

Dim strCode,strID,StrFName,strLName,strFirm,strPwd,strIPGM,strServer,strLMS,strSql,strLMSV,strDisplay,intUAC

trCode = "za"
strID = "zademo1"
strFName = "Demo"
strLName = "Tester"
strFirm = "Demo"
strPwd = "za1234"
strServer = "rkasp01"
strDisplay = strFName & strLName
strIPGM = "lms" & strCode

Set objOU = GetObject("LDAP://cn=users,dc=asp,dc=rippe,dc=com")

Set objUser = objOU.Create("User", "cn=" & strID)
objUser.Put "sAMAccountName", strID

objUser.Put "givenName", strFName
objUser.Put "sn", strLName
objUser.Put "displayName", strLName
objUser.Put "homedirectory", "\\rkpdc\" & strFirm & "\" & strID
objUser.Put "scriptpath", strFirm & ".bat"

'removed duplicate SetInfo

objUser.SetPassword strPwd
objUser.Put "PasswordExpired", CLng(1)

'get existing value of userAccountControl
intUAC = objUser.Get("userAccountControl")
'AND the current value and the enable/disable flag (0x0002)
If intUAC AND 2 Then
    objUser.Put "userAccountControl", intUAC XOR 2
End If

'set the updated properties
objUser.SetInfo

Set objOU = GetObject("LDAP://cn=users,dc=asp,dc=rippe,dc=com")
Set objGroup = objOU.Create("Group", "cn=" & strFirm)
objGroup.Put "sAMAccountName", strFirm

objGroup.Add objUser.ADSPath
于 2013-01-05T01:47:08.370 に答える