Note: You should run this VBScript code on a machine with windows Active Directory domain.
Summary
- VBScript to Disable AD User Account by UserName
- VBScript to Disable AD User by UserName as Dynamic input
VBScript to Disable Active Directory User by UserName
1. Copy the below example vbscript code and paste it in notepad or a VBScript editor.
2. Change the value for strUserName with your own user’s name or samAccountName to disable.
3. Save the file with a .vbs extension, for example: DisableADUserByUserName.vbs
4. Double-click the vbscript file (or Run this file from command window) to disable AD user.
Click to get vbscript code as a file Download DisableADUserByUserName.vbs
' DisableADUserByUserName.vbs
' Sample VBScript to disable AD user .
' Author: https://www.morgantechspace.com/
' ------------------------------------------------------'
Option Explicit
Dim adoCommand, adoConnection
Dim varBaseDN, varFilter, varAttributes
Dim objRootDSE, varDNSDomain, strQuery, adoRecordset,strUserDN
Dim strUserName,objUser
' Setup ADO objects.
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
Set adoCommand.ActiveConnection = adoConnection
' Search entire Active Directory domain.
Set objRootDSE = GetObject("LDAP://RootDSE")
varDNSDomain = objRootDSE.Get("defaultNamingContext")
varBaseDN = "<LDAP://" & varDNSDomain & ">"
strUserName="LTest"
' Filter on user objects.
varFilter = "(&(objectCategory=person)(objectClass=user)(|(name="& strUserName &")(samaccountname="& strUserName &")))"
' Comma delimited list of attribute values to retrieve.
varAttributes = "samaccountname,distinguishedname"
' Construct the LDAP syntax query.
strQuery = varBaseDN & ";" & varFilter & ";" & varAttributes & ";subtree"
adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 1000
adoCommand.Properties("Timeout") = 20
adoCommand.Properties("Cache Results") = False
' Run the query.
Set adoRecordset = adoCommand.Execute
' Enumerate the resulting recordset.
IF(adoRecordset.EOF<>True) Then
' Retrieve values and display.
strUserDN = adoRecordset.Fields("distinguishedname").value
Set objUser = GetObject("LDAP://"& strUserDN)
objUser.AccountDisabled = True
objUser.SetInfo
WScript.Echo "The user '"& strUserName &"' disabled successfully..."
Else
WScript.Echo "No user found with the name '"& strUserName &"'"
End if
' close ado connections.
adoRecordset.Close
adoConnection.Close
VBScript to Disable Active Directory User by UserName as Dynamic input
1. Copy the below example VBScript code and paste it in notepad or a VBScript editor.
2. Save the file with a .vbs extension, for example: DisableADUserByDynamicUserName.vbs
3. Double-click the vb script file (or Run this file from command window) to disable AD user.
4. Enter the name or samAccountName of the user in the input text box and click OK to proceed.
Click to get vbscript code as a file Download DisableADUserByDynamicUserName.vbs
' DisableADUserByDynamicUserName.vbs
' Sample VBScript to disable AD user by Dynamic UserName .
' Author: https://www.morgantechspace.com/
' ------------------------------------------------------'
Option Explicit
Dim adoCommand, adoConnection
Dim varBaseDN, varFilter, varAttributes
Dim objRootDSE, varDNSDomain, strQuery, adoRecordset,strUserDN
Dim strUserName,objUser
' Asks user name from user.
Do
strUserName = InputBox ("Please enter an UserName to disable")
If strUserName = "" then
Msgbox "No user name entered"
end if
Loop Until strUserName <> ""
' Setup ADO objects.
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
Set adoCommand.ActiveConnection = adoConnection
' Search entire Active Directory domain.
Set objRootDSE = GetObject("LDAP://RootDSE")
varDNSDomain = objRootDSE.Get("defaultNamingContext")
varBaseDN = "<LDAP://" & varDNSDomain & ">"
' Filter on user objects.
varFilter = "(&(objectCategory=person)(objectClass=user)(|(name="& strUserName &")(samaccountname="& strUserName &")))"
' Comma delimited list of attribute values to retrieve.
varAttributes = "samaccountname,distinguishedname"
' Construct the LDAP syntax query.
strQuery = varBaseDN & ";" & varFilter & ";" & varAttributes & ";subtree"
adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 1000
adoCommand.Properties("Timeout") = 20
adoCommand.Properties("Cache Results") = False
' Run the query.
Set adoRecordset = adoCommand.Execute
' Enumerate the resulting recordset.
IF(adoRecordset.EOF<>True) Then
' Retrieve values and display.
strUserDN = adoRecordset.Fields("distinguishedname").value
Set objUser = GetObject("LDAP://"& strUserDN)
objUser.AccountDisabled = True
objUser.SetInfo
WScript.Echo "The user '"& strUserName &"' disabled successfully..."
Else
WScript.Echo "No user found with the name '"& strUserName &"'"
End if
' close ado connections.
adoRecordset.Close
adoConnection.Close
