Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Время входа в систему

Ответить
Настройки темы
CMD/BAT - Время входа в систему

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток!
Подскажите плз как получить время входа в систему?

Отправлено: 01:48, 28-02-2010

 


Moderator


Сообщения: 53373
Благодарности: 15478

Профиль | Отправить PM | Цитировать


Jeesus, если VBS устроит:
Код: Выделить весь код
Set wshNetwork = CreateObject("WScript.Network")
strUser = LCase(wshNetwork.UserDomain & "\" & wshNetwork.UserName)

strComputer = "."
Set objWMI = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colSession = objWMI.ExecQuery("SELECT * FROM Win32_LogonSession" _
  & " WHERE LogonType = 2 OR LogonType = 10")

For Each objSession In colSession
  Set colUser = objWMI.ExecQuery("ASSOCIATORS OF" _
    & " {Win32_LogonSession.LogonId=" & objSession.LogonId & "}" _
    & " WHERE AssocClass=Win32_LoggedOnUser Role=Dependent")

  For Each objUser In colUser
    If LCase(objUser.Domain & "\" & objUser.Name) = strUser Then
      Wscript.Echo "Время входа: " & WMIDateStringToDate(objSession.StartTime)
    End If
  Next
Next

Function WMIDateStringToDate(dtmStart)
  WMIDateStringToDate = CDate( _
    Mid(dtmStart, 5, 2) & "/" & _
    Mid(dtmStart, 7, 2) & "/" & _
    Left(dtmStart, 4) & " " & _
    Mid (dtmStart, 9, 2) & ":" & _
    Mid(dtmStart, 11, 2) & ":" & _
    Mid(dtmStart, 13, 2))
End Function
Если имелось в виду время запуска системы:
Код: Выделить весь код
strComputer = "."
Set objWMI = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colOS = objWMI.ExecQuery("SELECT LastBootUpTime FROM Win32_OperatingSystem")
For Each objOS In colOS
  Wscript.Echo "Время запуска ОС: " & WMIDateStringToDate(objOS.LastBootUpTime)
Next

Function WMIDateStringToDate(dtmStart)
  WMIDateStringToDate = CDate( _
    Mid(dtmStart, 5, 2) & "/" & _
    Mid(dtmStart, 7, 2) & "/" & _
    Left(dtmStart, 4) & " " & _
    Mid (dtmStart, 9, 2) & ":" & _
    Mid(dtmStart, 11, 2) & ":" & _
    Mid(dtmStart, 13, 2))
End Function

Последний раз редактировалось Petya V4sechkin, 28-02-2010 в 13:20.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:38, 28-02-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


то же самое через CMD:
Код: Выделить весь код
@Echo Off

For /F "Skip=1 Delims=" %%i In ('WMIC Path Win32_LoggedOnUser GET') Do CALL :PARSE %%i
Exit

:PARSE
For /F "UseBackQ Skip=1 Tokens=1* Delims=." %%i In (
`2^>Nul WMIC LOGON Where 'LogonId^="%~6" And ^(LogonType^=2 Or LogonType^=10^)' Get StartTime`
) Do If Not "%%j"=="" Set STime=%%i

If Defined STime ^
Echo %STime:~6,2%.%STime:~4,2%.%STime:~0,4% %STime:~8,2%:%STime:~10,2%:%STime:~12,2%  %~2\%~4
Set STime=& GoTo :EOF
P.S. по ходу обнаружил, что одновременно могут висеть несколько интерактивных сеансов (LogonType=2), поэтому и пришлось оставить вывод списком - может кто в курсе что бы это значило?.. машина XP в домене, так что переключение пользователей не должно влиять...
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:06, 01-03-2010 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


на сервере можно определить через Query User/QUser, эту утилиту можно скопировать и на станцию:
Код: Выделить весь код
@Echo Off

For /F "Skip=1 Tokens=1*" %%i In ('Query User "%UserName%"') Do Set $L=%%j
Echo %$L:~-16%

Отправлено: 12:52, 01-03-2010 | #4


Старожил


Сообщения: 426
Благодарности: 108

Профиль | Отправить PM | Цитировать


Цитата amel27:
на сервере можно определить через Query User/QUser, эту утилиту можно скопировать и на станцию: »
У меня почему-то это давно не работает.

а список из LogonType у меня 0,2,3,5 - 10 го нет.

-------
Как сказало Дерево Дровосеку: "я - пень".


Отправлено: 14:47, 01-03-2010 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата NiOl:
У меня почему-то это давно не работает. »
не сталкивался, в чем это выражается - не работает утилита или не показывает дату?

Цитата NiOl:
10 го нет »
это удаленные терминальные подключения, для XP их нет

Отправлено: 03:29, 02-03-2010 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Время входа в систему

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] раскладка при вводе пароля во время входа в систему Ingolder Microsoft Windows Vista 2 02-07-2009 16:13
Ошибка - Проблема входа в систему UZzR Microsoft Windows 2000/XP 3 09-12-2008 09:43
Автоматизация входа в систему AnGel_of_Death Microsoft Windows 2000/XP 3 29-05-2006 12:44
Способ входа в систему lvpav Microsoft Windows 2000/XP 3 08-02-2006 16:33
Лог входа в систему Guest Microsoft Windows 95/98/Me (архив) 20 19-02-2004 09:54




 
Переход