getpass.getuser / os.environ['username'] returns 计算机名而不是用户名

getpass.getuser / os.environ['username'] returns computer name and not username

我使用 python 创建了一个服务,它将使用 subprocess.popen 调用使用 pyinstaller 制作的这个应用程序。它调用 getpass.getuser() 但不是用户名,而是 return 计算机名称。

我试过了 getpass.getuser() / os.environ['username'] / win32api.GetUserName() 但所有 return Computer-Name 而不是 username.

顺便说一句,计算机名是指"DESKTOP-Q...",用户名是登录人的用户名(这里是"wasim")

有什么方法可以获取用户名而不是计算机名?

好的,我解决了!不是通过使用 getpass,而是通过使用 psutil。 因此该服务默认在 LOCAL SYSTEM 帐户下运行,这意味着它 运行 在完全不同的环境中。 我的情况要求我在 LOCAL SYSTEM 帐户中使用服务 运行 而不是用户帐户,因为系统用户可能会更改(从 AD 开始)。 为了实现这一目标,我做到了...

>>> import psutil
>>> psutil.users()[0].name

psutil.users() returns 登录用户列表