' ============================================================
' GetUserAccountReportToFile.vbs
'
' Reports Local User Accounts via WMI (Win32_UserAccount) and writes the results to a
' timestamped text file next to this script.
'
' Usage: cscript GetUserAccountReportToFile.vbs
' ============================================================

Option Explicit

Dim objWMIService, colItems, objItem
Dim objFSO, objFile, strOutPath, itemCount

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("SELECT Name, FullName, Disabled, Lockout, LocalAccount FROM Win32_UserAccount")

Set objFSO = CreateObject("Scripting.FileSystemObject")
strOutPath = objFSO.GetParentFolderName(WScript.ScriptFullName) & "\useraccount-report_" & _
             Replace(FormatDateTime(Now, 2), "/", "-") & ".txt"
Set objFile = objFSO.CreateTextFile(strOutPath, True)

itemCount = 0
For Each objItem In colItems
        objFile.WriteLine "Name: " & objItem.Name
        objFile.WriteLine "FullName: " & objItem.FullName
        objFile.WriteLine "Disabled: " & objItem.Disabled
        objFile.WriteLine "Lockout: " & objItem.Lockout
        objFile.WriteLine "LocalAccount: " & objItem.LocalAccount
        objFile.WriteLine String(40, "-")
        itemCount = itemCount + 1
Next

objFile.Close

WScript.Echo itemCount & " Local User Accounts written to: " & strOutPath