如何通过Python来获取用户的登录/注销时间适用于Windows和Linux?(How to ge

2019-10-29 19:55发布

我试图建立一个脚本或工具来告诉每个用户多长时间占用电脑,以便管理和平衡资源。 作为用户名,Python提供干净的方式通过os.getlogin得到它()。 不过,我搜索,但没有找到一个整洁的Python API方法来获取特定用户的登录和退出时间。 对于Windows,我不得不“查询用户”,这并不适用于Windows XP的工作。 而对于Linux的,我得承认我不擅长。 难道你们知道一个跨平台和Python API的方式来做到这一点?

非常感谢! 迪

Answer 1:

的Windows解决方案(应在XP中工作)

>>> import win32net,time
>>> users,nusers,_ = win32net.NetUserEnum(None,2)
>>> for user in users:
...    print "%-20s %s"%(user['name'],time.ctime(user['last_logon']))
...
Administrator        Sat Oct 06 04:59:59 2012
Bob                  Mon Nov 05 10:03:17 2012
Guest                Wed Dec 31 16:00:00 1969
joran                Fri May 10 08:04:36 2013
SophosSAUNEREUS0     Fri May 10 13:31:26 2013
Umläut               Tue Nov 13 16:21:49 2012

您可以使用

import platform
platform.uname() 

以确定是其中OS和使用一个单独的方法为每个OS,例如

import platform
os_name = platform.uname()[0].lower()
if os_name == "windows":
   get_win_login_time()
elif os_name.endswith("nix"):
   get_nix_login_time()
....

回答你再网络用户的问题

import win32net, win32netcon, platform

win32net.NetUserEnum(win32net.NetGetDCName(),2,win32netcon.FILTER_NORMAL_ACCOUNT)


文章来源: How to get the user login/logoff time by Python for both Windows & Linux?