如何使用Python为Windows和Linux获取用户登录/注销时间?

2024-04-19 13:58:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试开发一个脚本或工具来告诉每个用户占用计算机的时间,以便管理和平衡资源。至于用户名,Python提供了清晰的方法os.getlogin操作系统(). 但是,我搜索了一下,却找不到一个简洁的pythonapi方法来获取该特定用户的登录和注销时间。对于Windows,我必须“查询用户”,这在windowsxp上不起作用。对于Linux,我不得不承认我并不擅长。你们知道一种跨平台和pythonapi方法来实现这一点吗?。在

非常感谢! Di公司


Tags: 工具方法用户脚本pythonapioslinuxwindows
1条回答
网友
1楼 · 发布于 2024-04-19 13:58:56

在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

你可以用

^{pr2}$

例如,确定您所在的操作系统,并对每个操作系统使用单独的方法

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)

相关问题 更多 >