Меню

Вывести отсортированный список пользователей

Как через Powershell получить список пользователей AD с Get-ADUser

01 августа 2019

Get-ADUser команда, которая возвращает список пользователей AD в Powershell. На самом деле командлет мало чем отличается от тех, которые мы рассматривали раннее с приставкой «Get-AD».

Для работы с командой нам понадобится Powershell Active Directory Module.

Так мы вернем всех пользователей AD:

Если нам нужно найти по имени, сделайте так:

Где вместо Adminis имя вашей учетной записи. Звездочки позволяют искать вхождение где справа и слева могут быть еще символы.

Для получения сведений об одной учетной записи AD есть ключ Identity:

Кроме этого у нас есть дополнительный ключ Properties, который выводит дополнительные свойства у объекта пользователя:


Если мы хотим выполнить Get-ADUser в OU, то для этого есть дополнительный ключ, который может искать в организационных единицах и контейнерах. В моем случае я ищу в OU Moscow и домене domain.local:

Если вам нужно искать в контейнере — используйте CN. Примеры с множеством OU смотрите ниже.

Навигация по посту

Поиск и фильтрация списка пользователей AD в Powershell Get-ADUser -Filter

Мы можем фильтровать по одному или множеству свойств. Для того что бы увидеть все свойства нужно сделать:

В области 1 выделены все имена, по которым мы можем фильтровать. В области 2 тип данных с которыми мы можем сравнивать. Т.е. если тип данных у области 2 string (строка), то это плохая идея сравнивать с числом (int). Нужно сразу отметить, что те свойства, которые мы получаем благодаря ключу Properties мы не можем применять в Filter.

Примеры с Get-Member мы уже рассматривали раньше.

Для примера так мы можем получить всех пользователей, у которых указан город Moscow:

А теперь найдем всех пользователей, которые неверно вводили пароль более одного раза и в они включены:

Т.к. BadLogonCount — это свойство от ключа Properties оно должно проверятся через конвейер в Where.

Еще один пример, но теперь нужно найти пользователя имя которого содержит 0001 и он активен:

Получение списка пользователей Active Directory в Powershell Get-User из нескольких OU

В команде нет встроенных средств поиска в нескольких объектах сразу. Мы можем объявить переменную, содержащую этот список и затем передать через цикл. На моем пример используется контейнер Users и OU Moscow:

Если бы у меня была OU Ekaterinburg в которой находилось OU Marketing написать стоило бы так:

Выгрузка пользователей из AD в Excel с Powershell

Экспорт и выгрузка может быть во множество форматов, но для выгрузки в Excel есть специальный формат CSV. Для того что бы сделать выгрузку достаточно выполнить следующее:

Если мы хотим выгрузить только определенные свойства, то в поле SELECT -Property нужно их перечислить:

Получение Email пользователя AD в Powershell

Нужное свойство мы можем получить через соответствующий ключ Properties. Так я получу почту у конкретного пользователя Administrator:

Выгрузим в CSV имена только тех пользователей у которых нет почты:

Получение списка пользователей чей срок действия пароля истек в Powershell

Для того что бы увидеть все свойства относящиеся к паролям выполните:

И затем, по этому свойству, отфильтруем пользователей:

Источник

Как вывести список пользователей в Linux

Вы когда-нибудь хотели перечислить всех пользователей в вашей системе Linux или подсчитать количество пользователей в системе? Есть команды для создания пользователя, удаления пользователя, вывода списка пользователей, вошедших в систему, но какова команда для вывода списка всех пользователей в Linux?

Это руководство покажет вам, как составить список пользователей в системах Linux.

Получите список всех пользователей с помощью файла /etc/passwd

Информация о локальном пользователе хранится в /etc/passwd . Каждая строка в этом файле представляет информацию для входа в систему для одного пользователя. Чтобы открыть файл, вы можете использовать cat или less :

Каждая строка в файле содержит семь полей, разделенных двоеточиями, которые содержат следующую информацию:

  • Имя пользователя.
  • Зашифрованный пароль ( x означает, что пароль хранится в /etc/shadow ).
  • Идентификационный номер пользователя (UID).
  • Идентификационный номер группы пользователя (GID).
  • Полное имя пользователя (GECOS).
  • Домашний каталог пользователя.
  • Оболочка входа (по умолчанию /bin/bash ).

Если вы хотите отображать только имя пользователя, вы можете использовать команды awk или cut для печати только первого поля, содержащего имя пользователя:

Получите список всех пользователей с помощью команды getent

Команда getent отображает записи из баз данных, настроенных в файле /etc/nsswitch.conf , включая базу данных passwd , которую можно использовать для запроса списка всех пользователей.

Чтобы получить список всех пользователей Linux, введите следующую команду:

Как видите, вывод такой же, как и при отображении содержимого файла /etc/passwd . Если вы используете LDAP для аутентификации пользователей, getent отобразит всех пользователей Linux как из файла /etc/passwd и из базы данных LDAP.

Читайте также:  Как вывести с мебели запах детской мочи

Вы также можете использовать awk или cut для печати только первого поля, содержащего имя пользователя:

Проверить, существует ли пользователь в системе Linux

Теперь, когда мы знаем, как составить список всех пользователей, чтобы проверить, существует ли пользователь в нашем Linux-сервере, мы можем просто отфильтровать список пользователей, передав его по конвейеру команде grep .

Например, чтобы узнать, существует ли в нашей системе Linux пользователь с именем jack мы можем использовать следующую команду:

Если пользователь существует, приведенная выше команда распечатает информацию для входа в систему. Нет вывода, что означает, что пользователь не существует.

Мы также можем проверить, существует ли пользователь, не используя команду grep как показано ниже:

Как и раньше, если пользователь существует, команда отобразит информацию для входа в систему.

Если вы хотите узнать, сколько учетных записей пользователей у вас в системе, getent passwd вывод getent passwd команде wc :

Как видно из вышеприведенного вывода, в моей системе Linux 33 учетных записи пользователей.

Системные и обычные пользователи

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

Обычные пользователи — это пользователи, созданные пользователем root или другим пользователем с привилегиями sudo. Обычно у обычного пользователя есть настоящая оболочка входа в систему и домашний каталог.

У каждого пользователя есть числовой идентификатор пользователя, называемый UID. Если не указан при создании нового пользователя с помощью команды useradd , UID будет автоматически выбран из файла /etc/login.defs зависимости от UID_MIN и UID_MIN .

Чтобы проверить значения UID_MIN и UID_MIN в вашей системе, вы можете использовать следующую команду:

Из выходных данных выше мы видим, что все обычные пользователи должны иметь UID от 1000 до 60000. Знание минимального и максимального значения позволяет нам запрашивать список всех обычных пользователей в нашей системе.

Команда ниже перечислит всех обычных пользователей в нашей системе Linux:

UID_MIN и UID_MIN вашей системы могут отличаться, поэтому более общая версия приведенной выше команды будет:

Если вы хотите распечатать только имена пользователей, просто направьте вывод в команду cut :

Выводы

В этом руководстве вы узнали, как составлять список и фильтровать пользователей в вашей системе Linux, а также каковы основные различия между системными и обычными пользователями Linux.

Те же команды применимы для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint.

Не стесняйтесь оставлять комментарии, если у вас есть вопросы.

Источник

Список пользователей в Linux

How to List Users in Linux

Из этого руководства вы узнаете, как составить список пользователей в системах Linux.

Вы когда-нибудь хотели перечислить всех пользователей в вашей системе Linux или подсчитать количество пользователей в системе? Существуют команды для создания пользователя, удаления пользователя, просмотра списка зарегистрированных пользователей, но что это за команда для вывода списка всех пользователей в Linux?

Получить список всех пользователей, использующих /etc/passwd файл

Информация о локальном пользователе хранится в /etc/passwd файле. Каждая строка в этом файле представляет регистрационную информацию для одного пользователя. Чтобы открыть файл, вы можете использовать cat или less :

Как видно из приведенного выше вывода, каждая строка имеет семь полей, разделенных двоеточиями, которые содержат следующую информацию:

  • Имя пользователя
  • Зашифрованный пароль ( x означает, что пароль хранится в /etc/shadow файле)
  • Идентификационный номер пользователя (UID)
  • Идентификационный номер группы пользователя (GID)
  • Полное имя пользователя (GECOS)
  • Домашний каталог пользователя
  • Оболочка входа (по умолчанию /bin/bash )

Если вы хотите, чтобы отобразить только имя пользователя вы можете использовать либо awk или cut команды для печати только первое поле, содержащее имя пользователя:

Получить список всех пользователей с помощью команды getent

Команда getent отображает записи из баз данных, настроенных в /etc/nsswitch.conf файле, включая passwd базу данных, которую мы можем использовать для запроса списка всех пользователей.

Чтобы получить список всех пользователей Linux, введите следующую команду:

Как видите, вывод такой же, как и при отображении содержимого /etc/passwd файла. Если вы используете LDAP для аутентификации пользователей, то getent все пользователи Linux будут отображаться как из /etc/passwd файлов, так и из базы данных LDAP.

Вы также можете использовать awk или cut для печати только первое поле, содержащее имя пользователя:

Проверьте, существует ли пользователь в системе Linux

Теперь, когда мы знаем, как составить список всех пользователей, чтобы проверить, существует ли пользователь в нашем окне Linux, мы можем просто отфильтровать список пользователей, отправив список по команде grep.

Читайте также:  Губка для замши как ее чистить

Например, чтобы узнать, существует ли пользователь с именем jack в нашей системе Linux, мы можем использовать следующую команду:

Если пользователь существует, команда, приведенная выше, напечатает информацию для входа в систему. Если нет вывода, это означает, что пользователь не существует.

Мы также можем проверить, существует ли пользователь, не используя grep команду, как показано ниже:

Как и раньше, если пользователь существует, команда отобразит информацию для входа в систему.

Если вы хотите узнать, сколько учетных записей пользователей в вашей системе, перенаправьте getent passwd вывод в wc команду:

Как видно из приведенного выше вывода, моя система Linux имеет 33 учетных записи.

Системные и обычные пользователи

Обычные пользователи — это пользователи, созданные пользователем root или другим пользователем с привилегиями sudo. Обычно у обычного пользователя есть настоящая оболочка для входа и домашний каталог.

У каждого пользователя есть числовой идентификатор пользователя, называемый UID. Если не указано при создании нового пользователя с useradd командой, то UID будет автоматически выбрано из /etc/login.defs файла в зависимости от UID_MIN и UID_MIN значений.

Для проверки UID_MIN и UID_MIN значения на вашей системе, можно использовать следующую команду:

Из приведенного выше вывода видно, что все обычные пользователи должны иметь UID от 1000 до 60000. Зная минимальное и максимальное значение, мы можем запросить список всех обычных пользователей в нашей системе.

Команда ниже перечислит всех обычных пользователей в нашей системе Linux:

Ваша система UID_MIN и UID_MIN значения могут отличаться, поэтому более общая версия команды выше:

Если вы хотите напечатать только имена пользователей, просто передайте вывод в cut команду:

Вывод

Из этого руководства вы узнали, как составлять список и фильтровать пользователей в вашей системе Linux и каковы основные различия между системными и обычными пользователями Linux.

Те же команды применяются для любого дистрибутива Linux, включая Ubuntu, CentOS, RHEL, Debian и Linux Mint.

Источник

PowerShell: системное администрирование и программирование

Всё о PowerShell в Windows и на Linux. Системное администрирование Windows

Get-ADUser: поиск сведений о пользователях и фильтр пользователей по их свойствам в Active Directory

Get-ADUser — это один из базовых командлетов PowerShell, который можно использовать для получения информации о пользователях домена Active Directory и их свойствах. Вы можете использовать Get-ADUser, чтобы просмотреть значение любого атрибута объекта пользователя AD, отобразить список пользователей в домене с необходимыми атрибутами и экспортировать их в CSV, а также использовать различные критерии и фильтры для выбора пользователей домена.

Командлет Get-ADUser доступен начиная с PowerShell 2.0 и является частью специального модуля Active Directory для Windows PowerShell (представленного в Windows Server 2008 R2). Командлеты RSAT-AD-PowerShell позволяют выполнять различные операции с объектами AD.

Примечание. Раньше для получения информации об атрибутах учётных записей пользователей AD приходилось использовать различные инструменты: консоль ADUC (включая сохранённые запросы AD), сценарии vbs, dsquery и так далее. Все эти инструменты теперь легко заменить командлетом Get-ADUser.

Рассмотрим пример, в котором мы расскажем, как получить информацию о последнем изменении пароля пользователя и дате истечения срока действия пароля с помощью командлета Get-ADUser PowerShell.

Как найти пользователя AD и вывести список свойств с помощью Get-ADUser

Чтобы использовать командлет Get-ADUser необходимо установить Модуль Active Directory для Windows PowerShell, в каких системах он уже присутствует и как его установить если он ещё не установлен, смотрите в статье «Как установить и использовать модуль Active Directory PowerShell». На рабочих станциях данный модуль вы можете установить следующей командой:

Чтобы использовать командлет Get-ADUser, вам не нужно запускать его под учётной записью с администратором домена или с делегированными разрешениями. Любой авторизованный пользователь домена AD может запускать команды PowerShell для получения значений большинства атрибутов объекта AD (кроме конфиденциальных, например, связанных со сменой пароля). Если вам нужно запустить команду Get-ADUser из другой учётной записи, используйте параметр -Credential.

Чтобы отобразить список всех учётных записей домена, выполните эту команду:

Важно: Не рекомендуется запускать эту команду в доменах с большим количеством учётных записей, поскольку контроллер домена, предоставляющий информацию, может быть перегружен.

Чтобы выполнить запрос AD на конкретном контроллере домена, используйте опцию -Server. Чтобы вывести информацию по определённому пользователю, укажите его имя после опции -Identity:

Чтобы изменить атрибуты пользователя, используйте командлет Set-ADUser.

По умолчанию командлет Get-ADUser возвращает только 10 основных атрибутов пользователя (из более чем 120 свойств учётной записи пользователя): DistinguishedName, SamAccountName, Name, SID, UserPrincipalName, ObjectClass, статус учётной записи (Enabled: True/False в соответствии с атрибутом UserAccountControl AD) и так далее. В этом случае вывод командлета не содержит информации о времени последней смены пароля пользователя.

Читайте также:  Пуховик как стирать автомат перо

Чтобы отобразить подробную информацию обо всех доступных пользовательских атрибутах, выполните эту команду:

Командлет Get-ADUser с опцией «-Properties *» отображает список всех пользовательских атрибутов AD и их значений.

Теперь мы перейдём к форматированию вывода Get-ADUser, чтобы отображались необходимые атрибуты пользователя. Вы можете отображать сразу несколько атрибутов пользователя:

  • PasswordExpired (Срок действия пароля истёк)
  • PasswordLastSet (Последний раз пароль установлен)
  • PasswordNeverExpires (Пароль никогда не истекает)
  • LastLogonTimestamp (Временная метка последнего входа)

Чтобы показать только выбранные атрибуты пользователя, выполните команду:

Теперь в пользовательских данных есть информация о статусе учётной записи (Истёк ли срок действия пароля: True/False), дате последней смены пароля и времени последнего входа пользователя в домен. Чтобы отобразить эту информацию в более удобном табличном виде и удалить все ненужные атрибуты, используйте Select-Object -Property или Format-Table:

Get-ADUser: поиск в нескольких подразделениях с помощью SearchBase

Чтобы отображать пользователей только из определённого контейнера домена (организационного подразделения), используйте опцию -SearchBase:

Если вам нужно выбрать пользователей из нескольких подразделений одновременно, используйте следующий скрипт PowerShell:

Работа с email адресами пользователей в Active Directory с помощью PowerShell

Адрес электронной почты пользователя — это один из атрибутов объекта пользователя в Active Directory. Чтобы перечислить адреса электронной почты пользователей, необходимо добавить поле EmailAddress в значение опции -Properties командлета Get-ADUser.

Чтобы составить список активных учётных записей пользователей с адресами электронной почты выполните:

Чтобы получить список пользователей Active Directory без адреса электронной почты:

Следующий пример позволяет экспортировать адресную книгу электронной почты компании из AD в файл CSV, который впоследствии можно импортировать в почтовые клиенты, такие как Outlook или Mozilla Thunderbird:

Get-ADUser: экспорт пользователей AD в CSV/TXT

Полученный список пользователей домена с атрибутами можно экспортировать в текстовый файл:

Или вы можете экспортировать список пользователей AD в файл CSV (который позже будет удобно импортирован в Excel):

Использование Get-ADUser с фильтрацией по атрибутам

Используя опцию -Filter, вы можете фильтровать список учётных записей пользователей по одному или нескольким атрибутам. В качестве аргументов этого параметра можно указать значение определённых атрибутов пользователей Active Directory. Если вы используете параметр -Filter, командлет Get-ADUser будет перечислять только тех пользователей, которые соответствуют критериям фильтра.

Например, я хочу перечислить активные (Enabled) учётные записи пользователей, имя которых содержит «Dmitry» (в приведённом ниже примере используется несколько фильтров; вы можете комбинировать условия, используя стандартные логические операторы сравнения PowerShell):

Кроме того, вы можете отсортировать полученный список пользователей по определённому атрибуту пользователя (столбцу) с помощью командлета Sort-Object. Вы также можете использовать командлет Where-Object для одновременного указания нескольких критериев фильтрации.

Таким образом, вы можете составить таблицу с любыми необходимыми атрибутами пользователей Active Directory.

Примеры использования Get-ADUser

Давайте покажем ещё несколько полезных примеров команд для запросов пользователей Active Directory с помощью различных фильтров. Вы можете объединить их, чтобы получить необходимый список пользовательских объектов AD:

Отобразить пользователей AD, имя которых начинается с Joe:

Вы можете использовать PowerShell для расчёта общего количества учётных записей пользователей в Active Directory:

Вывод списка пользователей и их свойств, размещённых в определённом организационном подразделении (контейнере) в данном случае это OU=Finance,OU=UserAccounts,DC=FABRIKAM,DC=COM:

Найти отключённые учётные записи пользователей Active Directory:

Вы можете проверить дату создания учётной записи пользователя Active Directory с помощью команды:

Вы можете получить список недавно добавленных пользователей Active Directory, созданных за последние 24 часа:

Вывести список учётных записей с просроченным паролем (вы можете настроить параметры истечения срока действия пароля в политике паролей домена):

Командлеты Get-ADUser и Add-ADGroupMember можно использовать для создания динамических групп пользователей AD (в зависимости от города, должности, отдела и прочего).

Задача: для списка учётных записей, которые хранятся в текстовом файле (по одной учётной записи в строке), вам необходимо получить название компании пользователя из AD и сохранить его в файл CSV (вы можете легко импортировать этот файл в Excel).

Пользователи, которые не меняли свои пароли в течение последних 90 дней:

Чтобы получить фотографию пользователя из Active Directory и сохранить её в файле jpg, выполните следующие команды:

Чтобы получить список групп AD, членом которых является учётная запись пользователя:

Перечислить пользователей из OU, которые являются членами определённой группы безопасности домена:

Перечислить компьютеры домена, на которых пользователю разрешён вход.

Чтобы искать компьютеры и фильтровать компьютеры по их свойствам в Active Directory, вы можете использовать другой командлет – Get-ADComputer.

Источник