我在我的电脑上为不同的用户运行相同的python脚本(windows 10)。此脚本必须获取实际登录的用户。例如,getpass.getuser()不起作用,因为它只返回运行python脚本的用户。我怎么才能拿到这个?谢谢你的帮助!

最佳答案

整个运行点…是模拟另一个用户的环境,因此,自然地,当您查询用户名时(这实际上得到%USERNAME%env的值)。变量)您将得到运行脚本的那个变量。
要获取当前登录的用户,您需要生成当前会话,为此,至少需要查询wmic(或直接访问win32 api)。类似于:

import subprocess

def get_session_user():
    res = subprocess.check_output(["WMIC", "ComputerSystem", "GET", "UserName"],
                                  universal_newlines=True)
    _, username = res.strip().rsplit("\n", 1)
    return username.rsplit("\\", 1)

请注意,这将返回一个包含当前登录用户的系统/域和用户名本身的元组,因此将其称为:
system, username = get_session_user()

两者兼得。

关于python - python-获取 session 用户,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47737123/

10-11 22:47
查看更多