Python получить имя пользователя windows

Как получить имя текущего пользователя Windows (AD или локального) с помощью Python?

Как я могу получить имя текущего вошедшего в систему пользователя, используя скрипт python? Функция должна работать независимо от того, является ли она пользователем домена/ad или локальным пользователем.

5 ответов

Я пишу простой пакетный скрипт для извлечения всех сетевых интерфейсов на Windows. Но мне нужно только имя локального соединения. Имя интерфейса подключения по локальной сети не используется по умолчанию. Есть ли способ получить только имя локального соединения в виде строки с помощью пакетного.

Я создал пользователя с административной страницы openfire. Я ввел имя пользователя, NAME, email, пароль. Я пишу клиенту в Android. Как я могу получить NAME текущего пользователя? Я пытался: (1) connection.getuser()-он возвращается: peter@www.abc.com / smack (2) самостоятельно сделать визитную.

Это должно сделать работу.

Доступность: Unix, Windows

Примечание » эта функция просматривает значения различных переменных среды, чтобы определить имя пользователя. Поэтому на эту функцию не следует полагаться в целях контроля доступа (или, возможно, в любых других целях, поскольку она позволяет любому пользователю выдавать себя за любого другого). «

по крайней мере, определенно предпочтительнее, чем getenv .

Я знаю, что вы можете получить имя пользователя с помощью чего-то вроде System.getProperty(user.name) , но я ищу способ получить имя и фамилию текущего пользователя. Есть ли нативная библиотека Java, которая делает это? Или вы должны подключиться к Windows API? Или, может быть, вам нужно вытащить.

Я хотел бы отобразить имя Пользователя в моем приложении WPF, где он должен получить имя пользователя от текущего пользователя, вошедшего в систему? Итак, мой вопрос: как мы можем получить имя пользователя windows, вошедшего в систему пользователя из приложения WPF ?

Я не знаю Python , но для windows основной api является GetUserNameEx, я предполагаю, что вы можете назвать это в Python, если os.environ.get( «USERNAME» ) не говорит вам всего, что вам нужно знать.

Довольно старый вопрос, но чтобы обновить ответ на исходный вопрос «Как я могу получить имя текущего вошедшего в систему пользователя, используя скрипт python?» использовать:

Per Python documentation: getlogin-возвращает имя пользователя, вошедшего в систему управления terminal процесса.

Похожие вопросы:

У меня есть веб-приложение PHP в интрасети, которое может извлечь IP и имя хоста текущего пользователя на этой странице, но мне было интересно, есть ли способ получить/извлечь их имя пользователя.

Есть ли способ в Python/Django, чтобы получить имя пользователя, вошедшего в систему пользователя, Windows, из приложения, которое не работает локально? UPDATE: извините, чтобы уточнить, под этим я.

Возможный Дубликат : Как прочитать Windows вошедшее имя пользователя с PHP/IIS Я работаю над инструментом php, который генерирует уровень доступа к данным и генерирует некоторые папки и файлы для.

Я пишу простой пакетный скрипт для извлечения всех сетевых интерфейсов на Windows. Но мне нужно только имя локального соединения. Имя интерфейса подключения по локальной сети не используется по.

Читайте также:  Права доступа для групп linux

Я создал пользователя с административной страницы openfire. Я ввел имя пользователя, NAME, email, пароль. Я пишу клиенту в Android. Как я могу получить NAME текущего пользователя? Я пытался: (1).

Я знаю, что вы можете получить имя пользователя с помощью чего-то вроде System.getProperty(user.name) , но я ищу способ получить имя и фамилию текущего пользователя. Есть ли нативная библиотека.

Я хотел бы отобразить имя Пользователя в моем приложении WPF, где он должен получить имя пользователя от текущего пользователя, вошедшего в систему? Итак, мой вопрос: как мы можем получить имя.

Мне нужно получить имя пользователя текущего зарегистрированного пользователя windows. Это может быть легко сделано?

Возможный Дубликат : Использование windows аутентификации с php? Я создал веб-приложение интрасети php, которое позволяет пользователям показывать свою информацию, хранящуюся в Active Directory. мое.

Полное имя пользователя Windows (в домене) с использованием Python

Я хочу получить полное имя пользователя компьютера с Windows в Python.

Я нашел эквивалентную пакетную команду:

который возвращает полное имя (например, Full Name John Doe ).

Я сделал следующий способ, используя subprocess но мне интересно, есть ли более естественный способ сделать это с некоторыми модулями Python.

1 ответ 1

Более прямой способ сделать это — запросить Active Directory. Вы выполняете поиск пользователя, а затем получаете атрибут displayName . (Это соответствует Full Name отображаемому в Windows.)

У вас есть два варианта здесь:

Использование библиотеки Python AD, например, pyad

Это очень специфично для Windows и требует библиотеки pywin32 . Он опирается на API-интерфейсы ADSI, поэтому будет работать только на Windows.

Как вы получите имя пользователя, зависит от вас. Вы можете использовать getpass.getuser() , os.environ[«USERNAME»] (только для Windows) и т.д.

Использование библиотеки Python LDAP, например, ldap3

Это соответствует стандартному протоколу LDAP с чистой реализацией Python, поэтому должен работать с любой клиентской ОС.

Использование необработанных запросов LDAP гораздо сложнее, чем абстракции ADSI. Я предлагаю вам прочитать документацию (в которой есть достойные учебные пособия) и найти дополнительные учебные пособия по взаимодействию с Microsoft AD через ldap3.

Обратите внимание, что одной из возможных проблем является то, что поиск по имени пользователя (CN) может привести к неправильному объекту. Можно иметь несколько объектов с одним и тем же CN в нескольких подразделениях. Если вы хотите быть более точным, вы можете использовать уникальный идентификатор, такой как SID.

Есть ли портативный способ получить текущее имя пользователя в Python?

Существует ли переносимый способ получить имя пользователя текущего пользователя в Python (т. Е. Тот, который работает как в Linux, так и в Windows, по крайней мере). Это будет работать как os.getuid :

Я гуглил вокруг и был удивлен, что не нашел окончательного ответа (хотя, возможно, я просто плохо гуглил). Модуль pwd обеспечивает относительно простой способ добиться этого, скажем, в Linux, но его нет в Windows. Некоторые результаты поиска показали, что получение имени пользователя в Windows может быть сложным в определенных обстоятельствах (например, запуск в качестве службы Windows), хотя я этого не проверял.

12 ответов

Посмотрите на модуль getpass

Доступность: Unix, Windows

ps В комментариях ниже «эта функция просматривает значения различных переменных среды для определения имени пользователя. Поэтому на эту функцию не следует полагаться в целях контроля доступа (или, возможно, в любых других целях, поскольку она позволяет любому пользователю выдавать себя за любое другое).«

Читайте также:  Windows не обнаружила подключенные диски

Лучше всего было бы объединить os.getuid() с pwd.getpwuid() :

Обратитесь к документации по pwd для более подробной информации:

Вы также можете использовать:

Вы, вероятно, можете использовать:

Но это не будет безопасным, потому что переменные среды могут быть изменены.

Это может сработать. Я не знаю, как они ведут себя при работе в качестве службы. Они не являются переносимыми, но для этого предназначены выражения «os.name» и «if».

Если вам это нужно, чтобы получить домашний каталог пользователя, ниже можно считать переносимым (по крайней мере, win32 и linux), частью стандартной библиотеки.

Также вы можете проанализировать такую ​​строку, чтобы получить только последний компонент пути (т. Е. Имя пользователя).

Для меня с помощью os модуль выглядит лучше для переносимости: лучше всего работает как на Linux, так и на Windows.

Дом пользователя Dir: C:\Users\myuser

имя пользователя: myuser

имя пользователя: root

Нет необходимости устанавливать какие-либо модули или расширения.

Комбинированный pwd а также getpass подход, основанный на других ответах:

Для UNIX, по крайней мере, это работает.

редактировать: я только что посмотрел, и это работает на Windows и UNIX:

В UNIX он возвращает ваше имя пользователя, но в Windows он возвращает группу вашего пользователя, косую черту, ваше имя пользователя.

UNIX возвращает: «имя пользователя»

Windows возвращает: «домен / имя пользователя»

Это интересно, но, вероятно, не идеально, если вы все равно что-то не делаете в терминале. в этом случае вы, вероятно, будете использовать os.system начать с. Например, некоторое время назад мне нужно было добавить своего пользователя в группу, что я и сделал (это в Linux, заметьте)

Мне кажется, что это легче читать, и вам не нужно импортировать pwd или getpass.

Я также чувствую, что наличие «домен / пользователь» может быть полезным в некоторых приложениях в Windows.

Есть ли портативный способ получить текущее имя пользователя в Python?

Существует ли портативный способ получить имя пользователя текущего пользователя в Python (т. Е. Тот, который работает как в Linux, так и в Windows, по крайней мере). Это будет работать так os.getuid :

Я гуглил вокруг и был удивлен, что не нашел окончательного ответа (хотя, возможно, я просто плохо гуглил). Модуль pwd обеспечивает относительно простой способ достижения этого, скажем, в Linux, но его нет в Windows. Некоторые результаты поиска показали, что получение имени пользователя в Windows может быть сложным в определенных обстоятельствах (например, запуск в качестве службы Windows), хотя я этого не проверял.

Посмотрите на модуль getpass

Доступность: Unix, Windows

ps На комментарий ниже » эта функция просматривает значения различных переменных среды для определения имени пользователя. Поэтому на эту функцию не следует полагаться в целях контроля доступа (или, возможно, в любых других целях, поскольку она позволяет любому пользователю выдавать себя за любое другое ). «

Лучше всего было бы сочетать os.getuid() с pwd.getpwuid() :

Обратитесь к документации по pwd для более подробной информации:

Вы также можете использовать:

Вы, вероятно, можете использовать:

Но это не будет безопасным, потому что переменные среды могут быть изменены.

Читайте также:  У way для windows phone

Это может сработать. Я не знаю, как они ведут себя при работе в качестве службы. Они не переносимы, но для этого os.name и if нужны заявления.

Если вам это нужно, чтобы получить домашний каталог пользователя, ниже можно считать переносимым (по крайней мере, win32 и linux), частью стандартной библиотеки.

Также вы можете проанализировать такую ​​строку, чтобы получить только последний компонент пути (т.е. имя пользователя).

Для меня использование os модуля выглядит лучше всего для переносимости: лучше всего работает как на Linux, так и на Windows.

Дом пользователя Dir: C: \ Users \ myuser

имя пользователя: myuser

имя пользователя: root

Нет необходимости устанавливать какие-либо модули или расширения.

Совмещенный pwd и getpass подход, основанный на других ответах:

Для UNIX, по крайней мере, это работает .

редактировать: я только что посмотрел, и это работает на Windows и UNIX:

В UNIX он возвращает ваше имя пользователя, но в Windows он возвращает группу вашего пользователя, косую черту, ваше имя пользователя.

UNIX возвращает: «имя пользователя»

Windows возвращает: «домен / имя пользователя»

Это интересно, но, вероятно, не идеально, если вы все равно что-то делаете в терминале . в этом случае вы, вероятно, будете использовать os.system для начала. Например, некоторое время назад мне нужно было добавить своего пользователя в группу, что я и сделал (это в Linux, заметьте)

Мне кажется, что это легче читать, и вам не нужно импортировать pwd или getpass.

Я также чувствую, что наличие «домен / пользователь» может быть полезным в некоторых приложениях в Windows.

Как получить имя учётки

Как получить имя учётной записи в windows, как получить имя пк понятно, подскажите как получить имя пользователя

Как получить имя файла из формы
Здравствуйте! Есть форма, на основе некоторой модели в котором такое поле: file =.

Как в билдере получить с сервера (MySQL 5.1, имя базы «skola», имя table «info») имя столбцов и имя строк
Доброва времены суток Как в билдере получить с сервера (MySQL 5.1, имя базы «skola», имя table.

Получить имя моего процесса (получить имя меня)
Работает мой код. Мне нужно получить имя моего процесса — ***.exe

Как получить имя столбца
Подскажите пожалуйста как получить имя столбца таблицы, запроса и вывести его в Debug.Print

Решение

03.02.2021, 13:29 Как получить имя учётки
Комментарий модератора
Правила:
3.1 Уважительно относитесь к другим участникам форума.
3.2 Не втягивайтесь в конфликты между пользователями: в этом случае Вы станете их участником и понесете равную ответственность с зачинщиками конфликта.

Как получить имя кнопки?
Есть 5 кнопок, у всех 1 общее событие onClick, как с помощью его определить какая кнопка была.

Как Получить Имя Поля ?
Добрый день ! Помогите решить задачку. На форме много изменяемых полей Если пользователь удалит.

Как получить имя переменной?
Для отладки кода появилась необходимость получать имена переменных. Это я могу сделать но только.

Как получить имя компьютера
Как получить имя компьютера? Если указывать %UserName% выбивает ошибка вот код procedure.

Как получить имя файла?
Я загружаю файл на сервер. Как мне занести в переменную имя файла?

Как получить имя фотографии?
Добрый день подскажите пожалуйста как узнать имя фотографии? Проблема в следующем. Делаю фото.

Оцените статью