Задача:
Нужно получить список локальных пользователей с датой и временем последнего входа пользователя в систему. Учётных записей, примерно, 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 минут. Поэтому после запуска скрипта ждите пока не появится информационное сообщение, сообщающее о завершении операции.