0

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

我试过 getpass.getuser() / os.environ['username'] / win32api.GetUserName() 但都返回Computer-Name而不是username

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

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

4

1 回答 1

0

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

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

psutil.users()返回登录用户列表

于 2020-04-13T12:27:41.767 回答