List all User Accounts in Windows using VBA
In vba use this code to get windows user account names & their domain names.
Copy paste this code into your Excel vba project module.
Run the code by pressing F5. You will get a complete list of use account names and additional details in worksheet1.
Sub GetAllUsers()
Dim iSh As Worksheet
Dim i As Double
Set iSh = ThisWorkbook.Sheets(1)
On Error Resume Next
i = 1
iSh.Cells(i, 1) = "Account Type"
iSh.Cells(i, 2) = "Caption"
iSh.Cells(i, 3) = "Description"
iSh.Cells(i, 4) = "Disabled"
iSh.Cells(i, 5) = "Domain"
iSh.Cells(i, 6) = "Full Name"
iSh.Cells(i, 7) = "Local Account"
iSh.Cells(i, 8) = "Lockout"
iSh.Cells(i, 9) = "Name"
iSh.Cells(i, 10) = "Password Changeable"
iSh.Cells(i, 11) = "Password Expires"
iSh.Cells(i, 12) = "Password Required"
iSh.Cells(i, 13) = "SID"
iSh.Cells(i, 14) = "SID Type"
iSh.Cells(i, 15) = "Status"
sComputerName = "."
Set oWMIsvc = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & sComputerName & "\root\cimv2")
Set oWMICUserAcctDetails = oWMIsvc.ExecQuery _
("Select * from Win32_UserAccount Where LocalAccount = True")
For Each oAcct In oWMICUserAcctDetails
i = i + 1
iSh.Cells(i, 1) = oAcct.AccountType
iSh.Cells(i, 2) = oAcct.Caption
iSh.Cells(i, 3) = oAcct.Description
iSh.Cells(i, 4) = oAcct.Disabled
iSh.Cells(i, 5) = oAcct.Domain
iSh.Cells(i, 6) = oAcct.FullName
iSh.Cells(i, 7) = oAcct.LocalAccount
iSh.Cells(i, 8) = oAcct.Lockout
iSh.Cells(i, 9) = oAcct.Name
iSh.Cells(i, 10) = oAcct.PasswordChangeable
iSh.Cells(i, 11) = oAcct.PasswordExpires
iSh.Cells(i, 12) = oAcct.PasswordRequired
iSh.Cells(i, 13) = oAcct.SID
iSh.Cells(i, 14) = oAcct.SIDType
iSh.Cells(i, 15) = oAcct.Status
Next
End Sub
The above code uses Windows Management Instrumentation Command (WMIC). You can use this services to query some of the Windows OS related details.
Luckily this can be used within Vba also.
Here is a complete reference to know more about this routines: Technet Microsoft website
This page has a vbscript code. We converted this code into Vba & also tested it.