Назад | Перейти на главную страницу

Как получить все время входа в систему определенной учетной записи пользователя

Я знаю, как использовать программу просмотра событий, чтобы проверить, кто и когда вошел в систему. Но я пытаюсь выяснить для конкретной учетной записи локального пользователя, скажем администратора, каковы дата и время входа в систему для этого конкретного пользователя на этой машине. Я использую этот сценарий, и он показывает мне общее количество входов в систему, но не когда все. Сценарий приведен ниже.

'Get our list of logons
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_NetworkLoginProfile",,48)

'Converts to a readable logon date and time function ConvertTime(sTime)
if (sTime="**************.******+***") then
ConvertTime = "Unknown"
else
if (Trim(sTime)="") then
sTime="Unknown"
else
 sYear = Mid(sTime,1,4)
 sMonth = Mid(sTime,5,2)
 sDay = Mid(sTime,7,2)
 sHour = Mid(sTime,9,2)
 sMin = Mid(sTime,11,2)
 sSec = Mid(sTime,13,2)
end if 
ConvertTime = sMonth & "/" & sDay & "/" & sYear & " (" & sHour & ":" & sMin & ":" & sSec & ")"
end if
end function

'Loops through our logon items and only pulls out the 
'user accounts...not system accounts that are used
'internally by windows

For Each objItem in colItems
 if (objItem.UserType = "Normal Account") then
 Wscript.Echo objItem.Name & vbCrLf
 Wscript.Echo " Last Logon: " & ConvertTime(objItem.LastLogon)
 Wscript.Echo " Number of Logons: " & objItem.NumberOfLogons 
  if (objItem.Privileges=0) then
   WScript.Echo " (Guest Account)"
  else if (objItem.Privileges=1) then
   WScript.Echo " (Standard User Account)"
   else if (objItem.Privileges=2) then
    WScript.Echo " (Administrator Account)"
   end if
 end if
end if
WScript.Echo vbCrLf
end if  
Next

Отредактировано, чтобы показать ожидаемый результат

Username: LocalPC\Administrator
Logon time: ------
Username: LocalPC\Administrator
Logon time: ------

Может кто-нибудь, пожалуйста, скажите мне, как я могу изменить этот скрипт или есть какой-либо другой способ проверить то же самое самым простым способом как можно скорее? Заранее спасибо.

Я не могу помочь со сценарием, но если вам нужна информация в спешке, и если вы используете Server 2012 или Server 2012R2, есть функция под названием IPAM. Часть функции IPAM позволяет вам искать информацию, собранную из AD, DNS и DHCP. вы можете искать по имени пользователя, имени компьютера или IP-адресу. он может дать вам все, что вам нужно. IPAM предназначен для управления DHCP, но имеет функцию, называемую отслеживанием IP-адресов. https://technet.microsoft.com/en-us/library/jj878332.aspx эта статья TechNet объясняет это, она показывает время событий. Также, если у вас есть доступ к управлению групповой политикой, вы можете использовать результаты групповой политики, чтобы посмотреть на подключенный к домену компьютер и узнать, кто вошел в систему. отчет включает информацию о том, когда произошел последний вход в систему.

В Technet есть много таких скриптов:

Журнал безопасности Logon / Logoff Event Reporter Этот сценарий читает журнал безопасности, а затем отображает хронологическую запись локальных и удаленных операций входа и выхода, включая неудачные попытки, если они включены в групповой / локальной политике. При желании он позволяет вводить диапазон дат и имя удаленного хоста.

https://gallery.technet.microsoft.com/Log-Parser-to-Identify-8aac36bd

Многие сценарии PowerShell, подобные этому История входа в систему PDXCAT после конвейера для выбора конкретного пользователя.