Задача:

Нужно получить список локальных пользователей с датой и временем последнего входа пользователя в систему. Учётных записей, примерно, 300 штук.

Решение:

нужно создать файл lastlogon.vbs и в него добавить следующее содержимое:

Option Explicit
Dim objWMIService, colItems, WshNetwork, strComputer
Dim objUser, objItem, dtmLastLogin, strLogonInfo
' Объявляем две переменные для работы с файлами
Dim fso, tf
' Создаем объект для работы с файловой системой
Set fso = CreateObject("Scripting.FileSystemObject")
' создаем файл
Set tf = fso.CreateTextFile("c:\temp\lastlogin.txt", True)
Set WshNetwork = CreateObject("Wscript.Network")
strComputer = WshNetwork.ComputerName

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery _
("Select * from Win32_UserAccount Where Domain = '" & strComputer & "'")

For Each objItem in colItems
  dtmLastLogin = ""
  On Error Resume Next
  Set objUser = GetObject("WinNT://" & strComputer _
      & "/" & objItem.Name & ",user")
  dtmLastLogin = objUser.lastLogin
  On Error Goto 0

  strLogonInfo = strLogonInfo & vbCrLf & objItem.Name & ": " & dtmLastLogin
Next
' Дальше идёт закомментированная строчка, которая выводит информацию в виде информационного окна (можно использовать, если пользователей мало, я решил выводить инфоромацию в файл)
' MsgBox strLogonInfo, vbOKOnly + vbInformation, "Информация о последнем входе в систему"

' Сохраняем информацию в созданный ранее файл
tf.Write (strLogonInfo)

MsgBox "Операция завершена!", vbOKOnly + vbInformation, "Информация о последнем входе пользователей в систему"

 

Готовый скрипт, в виде файла, вы можете скачать здесь

Обратите внимание! Скрипт при 300 пользователях выполняется, примерно, 15 минут. Поэтому после запуска скрипта ждите пока не появится информационное сообщение, сообщающее о завершении операции.