تحديد كم من الوقت المستخدم هو تسجيل الدخول إلى Windows

StackOverflow https://stackoverflow.com/questions/13578

  •  08-06-2019
  •  | 
  •  

سؤال

نشأت حاجة في منتجاتنا ، لتحديد كم من الوقت الحالي المستخدم تسجيل الدخول إلى Windows (على وجه التحديد, Vista).يبدو أنه لا يوجد على التوالي إلى الأمام API وظيفة هذا وأنا لا يمكن أن تجد أي شيء ذات الصلة مع WMI (على الرغم من أنني لست خبيرا مع WMI لذا قد غاب عن شيء).

أي أفكار ؟

هل كانت مفيدة؟

المحلول

الناس لم تكن مألوفة مع WMI (مثلي) ، وهنا بعض الروابط:

وهنا مثال الاستعلام عن Win32_Session من VBS:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set sessions = objWMIService.ExecQuery _
   ("select * from Win32_Session")

For Each objSession in sessions
   Wscript.Echo objSession.StartTime
Next

فإنه ينبه 6 دورات الكمبيوتر الشخصي, ربما يمكنك التصفية حسب LogonType فقط قائمة الحقيقي ("التفاعلية") المستخدمين.لم أستطع أن أرى كيف يمكنك اختيار الدورة من "المستخدم الحالي".

[تحرير] وهنا النتيجة من جوجل مشكلتك: http://forum.sysinternals.com/forum_posts.asp?TID=3755

نصائح أخرى

في Powershell WMI التالية من سطر واحد الأمر بإرجاع قائمة الكائنات تظهر للمستخدم والوقت الذي قام بتسجيل الدخول.

Get-WmiObject win32_networkloginprofile | ? {$_.lastlogon -ne $null} | % {[PSCustomObject]@{User=$_.caption; LastLogon=[Management.ManagementDateTimeConverter]::ToDateTime($_.lastlogon)}}

التفسير:

  • استرداد قائمة تسجيل في المستخدمين من WMI
  • تصفية أي غير تفاعلية للمستخدمين (فعال يزيل NT AUTHORITY\SYSTEM)
  • تنسيقه المستخدم و تسجيل الدخول وقت القراءة

المراجع:

في WMI القيام به:"حدد * من Win32_Session" هناك سيكون لديك "StartTime" قيمة.

على أمل أن يساعد.

باستخدام WMI ، Win32Session هو بداية رائعة.كما تجدر الإشارة إلى أنه إذا كنت على شبكة يمكنك استخدام Win32_NetworkLoginProfile الحصول على جميع أنواع المعلومات.

Set logins = objWMIService.ExecQuery _
   ("select * from Win32_NetworkLoginProfile")
For Each objSession in logins
   Wscript.Echo objSession.LastLogon
Next

أجزاء أخرى من المعلومات التي يمكن أن تجمع تشمل اسم المستخدم الماضي تسجيل الخروج, وكذلك الشخصية المختلفة ذات الصلة الأشياء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top