Как получить имя текущего пользователя Windows (AD или локальный) с помощью Python?
Как я могу получить имя пользователя, который в настоящее время вошел в систему, используя скрипт на Python? Функция должна работать независимо от того, является ли она пользователем домена/объявления или локальным пользователем.
Поделиться Источник 22 сентября 2008 в 19:36
5 ответов
import os; print os.environ.get( "USERNAME" )
Это должно сработать.
Поделиться 22 сентября 2008 в 19:42
import getpass getpass.getuser()
Наличие: Unix, Windows
Примечание: эта функция смотрит на значения различных переменных среды для определения имени пользователя. Поэтому эта функция не должна полагаться на целях контроля доступа (или, возможно, на любую другую цель, так как она позволяет любому пользователю выдавать себя за любого другого). «
по крайней мере, определенно предпочтительнее, чем getenv .
Поделиться 09 июля 2014 в 09:25
win32api.GetUserName() win32api.GetUserNameEx(. )
Поделиться 02 января 2010 в 21:31
Я не знаю Python, но для Windows основной API — GetUserNameEx, я предполагаю, что вы можете вызвать его в Python, если os.environ.get( «USERNAME») не говорит вам все, что вам нужно знать.
Поделиться 22 сентября 2008 в 19:48
Довольно старый вопрос, но чтобы обновить ответ на исходный вопрос «Как получить имя пользователя, который в данный момент вошел в систему, с помощью скрипта на Python?» используйте:
import os print (os.getlogin())
Согласно документации Python: getlogin — Возвращение имени пользователя, вошедшего в систему, в контрольном терминале процесса.
Найти имя компьютера — Python
Существует несколько способов найти имя компьютера на Python. Модуль «socket» в Python обеспечивает доступ к интерфейсу сокетов BSD . Он доступен для всех современных Unix-систем: Windows, Mac OS X, BeOS, OS / 2 и, возможно, дополнительных платформ. Чтобы получить имя хоста компьютера, вы можете использовать функцию сокета и его функцию gethostname(). Gethostname() возвращает строку , содержащую имя хоста машины , на которой интерпретатор Python в настоящее время выполняется.
import socket print(socket.gethostname())
import socket print(socket.gethostbyaddr(socket.gethostname())[0])
Как получить полное имя хоста?
Gethostname() не всегда возвращает полное доменное имя. Функция socket.getfqdn ([name]) возвращает полное доменное имя для имени. Если имя опущено или пустое, оно интерпретируется как локальный хост.
import socket print (socket.getfqdn("209.191.88.254"))
d.mx.mail.yahoo.com
Модуль платформы в Python включает инструменты для просмотра информации о версии аппаратного обеспечения, операционной системы и интерпретатора платформы, где работает программа. Функция platform.node() возвращает сетевое имя компьютера.
import platform print(platform.node())
Любые решения, использующие переменные среды HOST или HOSTNAME, не являются переносимыми. Даже если он работает в вашей системе при запуске, он может не работать при работе в специальных средах, таких как cron.
Как получить имя пользователя компьютера Python
Модуль os в Python предоставляет переносимый способ использования функциональных возможностей, зависящих от операционной системы. Команда os.uname() возвращает 5-кортеж, содержащий информацию, идентифицирующую текущую операционную систему, но она доступна только в Unix-подобных системах.
import os myhost = os.uname()[1] print(myhost)
Как узнать имя накопителя, на котором стоит ОС
Ну хорошо, а если мне надо открыть какой-то файл из папки «Документы», при этом подставив название диска, то как реализовать это?
7 фев 2023 в 16:01
А «Документы» вообще не в appdata. Про выяснение расположения пользовательских папок я писал здесь: Как получить пути к стандартным папкам пользователя (Рабочий стол, Загрузки и т.п.)?
7 фев 2023 в 16:21
В пути вижу упоминание временного каталога. Он хранится в переменной %TMP% , если что.
8 фев 2023 в 0:04
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
В моем случае помогло os.path.expanduser(‘~’) . Пример использования:
x = os.path.expanduser('~') print(x)
C:\Users\KakaBik
Насколько я понял, работает это одинаково и на Linux, и на MacOS. Только пути будут разные
Отслеживать
ответ дан 8 фев 2023 в 14:49
45 5 5 бронзовых знаков
В вопросе одно, в комментариях другое, в ответе третье. Бардак какой-то. Ну и каталог пользователя может находиться не на системном диске
8 фев 2023 в 14:52
Нет, каталог пользователя не может быть перемещён. Он всегда будет только на том диске, где система. Могут быть перемещены только папки в каталоге например: «Рабочий стол», «Загрузки» и другие. Спасибо за ссылку на ваш ответ, очень информативно
8 фев 2023 в 15:25
Может-может, хотя делать это и не рекомендуется. Вот упоминание такого перемещения на сайте Microsoft есть, например learn.microsoft.com/en-US/troubleshoot/windows-server/…
Как узнать полное имя владельца текущей учетной записи?
На работе у каждого своя учетная (windows) запись в домене.
Я для своей программы хочу выводить ФИО автоматически, благо каждая учетка подписана.
Но все способы которые нашел выдают только имя аккаунта, а как получить имя владельца учетки?
import win32api import win32net user_properties = win32net.NetUserGetInfo(None, win32api.GetUserName(), 20)
но он выдает ошибку:
user_properties = win32net.NetUserGetInfo(None, win32api.GetUserName(), 20) pywintypes.error: (2221, 'NetUserGetInfo', 'Не найдено имя пользователя.')
Я так понимаю, что проблема в том, что на самом ПК такого юзера нет, а берется он из домена.
- Вопрос задан более года назад
- 198 просмотров
1 комментарий
Простой 1 комментарий