---
updatedAt: 2025-08-14T13:53:46.000Z
agentTools:
  siteIndex: https://developer.n-able.com/llms.txt
  projectIndex: https://developer.n-able.com/n-sight/llms.txt
---

# Logon / Logoff Script

```powershell VB Script
' Log for the logins of users
' Test Passed on the Windows 7 Workstation 

on error resume next
	Dim  strComputer,objWMI 
	Dim  colSessions, objSession
	Dim  Text, colList, objItem
	Dim  dtmLogin, strlogin
	

strComputer = "."
Set objWMI = GetObject("winmgmts:" _
              & "{impersonationLevel=impersonate}!\\" _
								& strComputer & "\root\cimv2")
 
Set colSessions = objWMI.ExecQuery _
    ("Select * from Win32_LogonSession Where LogonType = 2 OR LogonType = 10")

If colSessions.Count = 0 Then
   Wscript.Echo "Users not found"
Else
	For Each objSession in colSessions
		If objSession.LogonType = 2 Then
			 Text= "                                      Logon type is Console"  + vbNewLine + vbcrlf 
			 Text=Text + "User" + space(25-len("User"))+ "FullName" + space(30-len("FullName")) + "Start time" + space(40-len("Session start time")) + "LogonId" + space(30-len("LogonId"))
        Else
			 Text= "                                Logon type is RDP/Terminal Server"  + vbNewLine + vbcrlf 
			 Text=Text  + "User" + space(25-len("User"))+ "FullName" + space(30-len("FullName")) + "Start time" + space(40-len("Session start time")) + "LogonId" + space(30-len("LogonId"))
        End If
	 
		Set colList = objWMI.ExecQuery("Associators of " _
						& "{Win32_LogonSession.LogonId=" & objSession.LogonId & "} " _
											& "Where AssocClass=Win32_LoggedOnUser Role=Dependent" )

		For Each objItem in colList
			dtmLogin = objSession.StartTime
			strlogin = Cstr(Mid(dtmLogin, 5, 2) & "/" & Mid(dtmLogin, 7, 2) & "/" & Left(dtmLogin, 4) _
			& " " & Mid (dtmLogin, 9, 2) & ":" & Mid(dtmLogin, 11, 2) & ":" & Mid(dtmLogin,13, 2))
			Text= Text + objItem.Name  + space(17-len(objItem.Name)) +  objItem.FullName+ "    "+  strlogin +  space(27-len(strlogin)) +  objSession.LogonId
		Next
    Next
End If

If err.number <> 0 Then
	WScript.Echo ("Script Check Failed") 
	Wscript.Quit 1001
Else
	wscript.Echo Text
	wscript.Echo "Successfully Passed"
	wscript.Quit(0) 
End If

	
```

```json Response Example
{"success":true}
```

# SCRIPT