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

2024-04-26 03:51:51 发布

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

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

我已经尝试过getpass.getuser()/os.environ['username']/win32api.GetUserName() 但都返回计算机名,而不是用户名

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

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


Tags: 应用程序os计算机environusername用户名subprocesspopen
1条回答
网友
1楼 · 发布于 2024-04-26 03:51:51

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

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

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

相关问题 更多 >