getpass.getuser / os.environ ['username'] возвращает имя компьютера, а не имя пользователя - PullRequest
0 голосов
/ 07 апреля 2020

Я создал сервис с python, который будет вызывать это приложение, созданное с помощью pyinstaller, используя subprocess.popen. Он вызывает getpass.getuser (), но вместо имени пользователя возвращает имя компьютера.

Я пробовал getpass.getuser () / os.environ ['username'] / win32api.GetUserName () но все возвращают имя компьютера , а не имя пользователя .

Кстати, имя компьютера относится к "DESKTOP-Q ...", а имя пользователя - это имя пользователя лица, вошедшего в систему (здесь «wasim»)

Любой способ получить имя пользователя, а не имя компьютера?

1 Ответ

0 голосов
/ 13 апреля 2020

Хорошо, я решил это! не используя getpass, а используя psutil. поэтому служба по умолчанию работает под учетной записью LOCAL SYSTEM, что означает, что она работает в совершенно другой среде. Моя ситуация требовала, чтобы я работал в учетной записи LOCAL SYSTEM, а не в учетной записи пользователя, поскольку пользователь системы может измениться (из AD). Для этого я сделал ...

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

psutil.users () возвращает список зарегистрированных пользователей

...