0

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

非常感谢!迪

4

1 回答 1

2

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() 

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

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)
于 2013-05-10T21:01:22.553 回答