Verification: a143cc29221c9be0

Php active directory информация о пользователе

Php active directory информация о пользователе

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

Для использования модуля RSAT-AD-PowerShell нужно запустить консоль PowerShell с правами администратора и импортировать модуль командой:

Import-Module activedirectory

В Windows Server 2012 и выше модуль RSAT-AD-PowerShell устанавливается по-умолчанию при развертывании на сервере роли Active Directory Domain Services (AD DS). Для установки модуля на рядовом сервере домена нужно выполнить команду:

Install-WindowsFeature -Name "RSAT-AD-PowerShell" –IncludeAllSubFeature

Установка модуля RSAT-AD-PowerShell

В десктопных версия Windows (например, в Windows 10) для работы коммандера Get-AdUser нужно установить соответствующую версию RSAT и включить в Панели Управления компонент Active Directory Module for Windows PowerShell (Remote Server Administration Tools -> Role Administration Tools -> AD DS and AD LDS Tools -> AD DS Tools).

RSAT включить модуль Active Directory Module for Windows PowerShell

Вы можете установить модуль AD из PowerShell:

Add-WindowsCapability –online –Name “Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0”

Полный список всех аргументов командлета Get-ADUser можно получить так:

help Get-ADUser

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

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

Get-ADUser -filter *

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

Get-ADUser -filter вывести всех пользователей домена

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

В выводе командлета отсутствует информация о времени последней смены пароля пользователя.

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

Get-ADUSer –Server DC01.winitpro.loc –Identity tstuser

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

Get-ADUser -identity tuser -Properties *

Get-ADUser -Properties * - вывести список всех атрибутов и значения доменного пользователя

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

Попробуем изменить параметры команды Get-ADUser, чтобы вывести только нужные нам атрибуты пользователя. Можно вывести сразу несколько атрибутов пользователя:

  • PasswordExpired
  • PasswordLastSet
  • PasswordNeverExpires
  • lastlogontimestamp

Выполните команду:

Get-ADUser tuser -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires, lastlogontimestamp

Get-ADUser вывести дату смены пароля (PasswordLastSet) и время последнего входа в домен (lastlogontimestamp)

Теперь в информации о пользователе есть данные о статусе аккаунта (Expired:True/False), дате смены пароля и времени последнего входа в домен (lastlogontimestamp). Представим информацию в более удобном табличном виде и уберем все лишние атрибуты с помощью Select-Object –Property или Format-Table:

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Get-ADUser вывести атрибуты пользователей в табличном виде

Получение пользователей из нескольких OU с помощью Get-ADUser

Чтобы вывести пользователей только из определенного контейнера домена (OU), воспользуйтесь параметром SearchBase:

Get-ADUser -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’ -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

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

$OUs = "OU=Moscow,DC=winitpro,DC=local","OU=SPB,DC=winitpro,DC=loc"
$OUs | foreach {Get-ADUser -SearchBase $_ -Filter * |select Name, Enabled}

Получить Email адреса пользователей из AD

Email пользователя это один из атрибутов в Active Directory. Чтобы вывести список email адресов пользователей, вы должны добавить поле EmailAddress в выбираемые поля командлета Get-ADUser.

Get-ADUser -filter * -properties EmailAddress -SearchBase ‘OU=MSK,DC=winitpro,DC=loc’| select-object Name, EmailAddress

Get-ADUser список email адресов

Вывести список активных учёток с почтовыми адресами:

Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Format-Table

Список пользователей, у которые нет email адреса:

Get-ADUser -Filter * -Properties EmailAddress | where -Property EmailAddress -eq $null

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

Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $env:temp\mail_list.csv

Get-ADUser: экспорт пользователей домена в текстовый или CSV/Excel файл

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

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires > C:\temp\users.txt

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

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | select Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires | Export-csv -path c:\temp\user-password-expires-2019.csv -Append -Encoding UTF8

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

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

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

Get-AdUser -Filter "(Name -like '*Dmitry*') -and (Enabled -eq 'True')" -Properties * |select name,enabled

Filter командлета Get-AdUser, множественная фильтрация

Дополнительно с помощью sort-object вы можете отсортировать полученный список пользователей по определенному атрибуту. Кроме того, для выборки пользователей можно использовать командлет where. Здесь также можно использовать сразу несколько критериев фильтрации.

Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’| where {$_.name –like “*Dmitry*” -and $_.Enabled -eq $true} | sort-object PasswordLastSet | select-object Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires

Get-ADUser фильтр с помощью where-object

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

Добавление нового пользователя

Вы можете создать пользователя с помощью портала Azure Active Directory.

Примечание

Свойства имени пользователя и адреса электронной почты не могут содержать диакритические знаки.

Чтобы добавить нового пользователя, выполните следующие действия:

  1. Войдите на портал Azure с ролью администратора пользователей для организации.

  2. Найдите и выберите Azure Active Directory на любой странице.

  3. Выберите пункт Пользователи, а затем нажмите Новый пользователь.

    Добавление пользователя в разделе "Пользователи — Все пользователи" в Azure AD

  4. На странице Пользователь введите сведения для этого пользователя:

    • Имя. Обязательный. Имя и фамилия нового пользователя. Например, Мэри Паркер.

    • Имя пользователя. Обязательный. Имя нового пользователя. Например, mary@contoso.com.

      В доменной части имени пользователя должно использоваться либо начальное доменное имя по умолчанию, .onmicrosoft.com, либо имя личного домена, например contoso.com. Дополнительные сведения о создании имени личного домена см. в статье Добавление имени личного домена на портале Azure Active Directory.

    • Группы. При необходимости можно добавить пользователя к одной или нескольким существующим группам. Вы также можете добавить пользователя в группы позже. Дополнительные сведения о добавлении пользователей в группы см. в разделе Создание простой группы и добавление в нее участников с помощью Azure Active Directory.

    • Роль каталога. Чтобы предоставить пользователю права администратора Azure AD, ему можно присвоить роль Azure AD. Вы можете назначить пользователю права глобального администратора или одну или несколько ограниченных ролей администратора в Azure AD. Дополнительные сведения о назначении ролей см. в разделе Назначение ролей пользователям.

    • Сведения о задании: вы можете добавить дополнительные сведения о пользователе здесь или сделать это позже. Дополнительные сведения о добавлении информации о пользователе см. в разделе How to add or change user profile information (Как добавлять и изменять сведения в профиле пользователя).

  5. Скопируйте автоматически созданный пароль в поле Пароль. Передайте этот пароль пользователю для первого входа в систему.

  6. Щелкните Создать.

Пользователь создан и добавлен к вашей организации Azure AD.

Добавление нового гостевого пользователя

Вы также можете пригласить нового гостевого пользователя для совместной работы с вашей организацией, выбрав Пригласить пользователя на странице Новый пользователь. Если параметры совместной работы со сторонним пользователями в вашей организации настроены таким образом, что вы можете приглашать гостей, пользователю по электронной почте будет отправлено приглашение, которое необходимо принять, чтобы начать совместную работу. Дополнительные сведения о приглашении пользователей для совместной работы B2B см. в статье Приглашение пользователей B2B в Azure Active Directory

Добавление пользователя-потребителя

Иногда необходимо вручную создать учетные записи потребителей в каталоге Azure Active Directory B2C (Azure AD B2C). Дополнительные сведения о создании учетных записей потребителей см. в разделе Создание и удаление пользователей-потребителей в Azure AD B2C.

Добавление нового пользователя в гибридной среде

Если у вас есть среда с Azure Active Directory (облако) и Windows Server Active Directory (локально), можно добавить новых пользователей путем синхронизации существующих данных учетной записи пользователя. Дополнительные сведения о гибридных средах и пользователях см. в статье Интеграция локальных каталогов с Azure Active Directory.

Удаление пользователя

Вы можете удалить существующего пользователя с помощью портала Azure Active Directory.

Примечание

Чтобы удалять пользователей в организации, необходима роль глобального администратора или администратора пользователей. Глобальные администраторы могут удалять всех пользователей, включая других администраторов. Администраторы пользователей могут удалять пользователей, не являющихся администраторами, администраторов службы поддержки и других администраторов пользователей. Дополнительные сведения см. в статье Разрешения роли администратора в Azure AD.

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

  1. Войдите на портал Azure, используя учетную запись администратора пользователей для организации.

  2. Найдите и выберите Azure Active Directory на любой странице.

  3. Найдите и выберите пользователя, которого нужно удалить из клиента Azure AD. Например, Мэри Паркер.

  4. Выберите Удалить пользователя.

    Страница "Пользователи — Все пользователи" с выделенным вариантом "Удалить пользователя"

Пользователь удален и больше не отображается на странице Пользователи — Все пользователи. Пользователь может отображаться на странице Удаленные пользователи в течение 30 дней. В этот период его можно восстановить. Дополнительные сведения о восстановлении пользователя см. в разделе Восстановление или удаление недавно удаленного пользователя с помощью Azure Active Directory.

При удалении пользователя все лицензии, используемые этим пользователем, становятся доступными для других пользователей.

Примечание

Для обновления удостоверения, контактных данных или сведений о должности для пользователей, чьим главным источником является Windows Server Active Directory, необходимо использовать Windows Server Active Directory. Изменения будут отображаться после следующего цикла синхронизации.

Настройка

Во избежании потери данных при перезаписи их менеджером настройки рекомендуется все настройки производить в файле conf/local.protected.php.

Возможно потребуется установить как минимум следующие опции:

 // общие настройки DokuWiki
  $conf['useacl']         = 1;
  $conf['disableactions'] = 'register';
  $conf['authtype']       = 'ad';
 
  // настройки Active Directory
  $conf['auth']['ad']['account_suffix']     = '@my.domain.org';
  $conf['auth']['ad']['base_dn']            = 'DC=my,DC=domain,DC=org';
  $conf['auth']['ad']['domain_controllers'] = 'srv1.domain.org, srv2.domain.org'; //через запятую можно перечислить 
                                                                                  //несколько контроллеров домена

Можно указать дополнительные параметры:

  $conf['auth']['ad']['ad_username']        = 'root';
  $conf['auth']['ad']['ad_password']        = 'pass';
  $conf['auth']['ad']['sso']                = 1;
  $conf['auth']['ad']['real_primarygroup']  = 1;
  $conf['auth']['ad']['use_ssl']            = 1;
  $conf['auth']['ad']['use_tls']            = 1;
  $conf['auth']['ad']['debug']              = 1;
  $conf['auth']['ad']['recursive_groups']   = 1; // Если в AD содержится много групп, переключение этого параметра 
                                                 // в 0 улучшит скорость работы, но неявное членство в группах перестанет работать

ad_username и ad_password необходимы для реализации подписки на изменения. Этот аккаунт используется для запроса информации о пользователе из AD.

Для установки прав суперпользователя можно использовать следующую конструкцию:

$conf['manager']   = '@LDAPGROUPNAME';
$conf['superuser'] = '@LDAPGROUPNAME';

Любые другие настройки, указанные в $conf['auth']['ad'], напрямую передаются в библиотеку adldap. Детальное описание этих настроек можно получить в документации по adLDAP.

В комбинации с аутентификацией Single-Sign-On также можно добавить настройки домена Windows. То есть проводить аутентификацию на разных AD в зависимости от домена NTLM или Kerberos конкретного пользователя. Для этого надо использовать название домена (в нижнем регистре) как подключ в $conf['auth']['ad']. Т.е. для того, чтобы идентифицировать всех пользователей, пришедших из домена Windows Foobar через сервер AD, отличный от сервера по умолчанию, нужно добавить следующие строчки в конфигурационный файл:

$conf['auth']['ad']['foobar']['account_suffix']     = '@foobar.domain.org';
$conf['auth']['ad']['foobar']['base_dn']            = 'DC=foobar,DC=domain,DC=org';
$conf['auth']['ad']['foobar']['domain_controllers'] = 'otherad.domain.org';
$conf['auth']['ad']['foobar']['ad_username']        = 'otherroot';
$conf['auth']['ad']['foobar']['ad_password']        = 'otherpass';

Если в организации используется система из нескольких контроллеров домена с единым родительским контроллером, может потребоваться указать порт 3268, вместо порта по умолчанию 389. В противном случае DokuWiki может не получить информации о группах пользователей дочернего домена. Самый простой способ сделать это - исправить исходники adLDAP.php, так как все вызовы к ldap_connect содержат порт в качестве отдельного аргумента функции. 5

Изменение профиля пользователя и пароля

devel:develonly

Пользователи могут изменить их настройки (имя, почтовый адрес и пароль) используя кнопку «Профиль». Это может потребовать выделения соответствующих привилегий для пользователя, от имени которого DokuWiki работает с AD (этот пользователь указан в настройках ad_username и ad_password). При этом изменение пароля доступно только через SSL или TLS соединение. См. раздел LDAP over SSL в документации на библиотеку adLDAP.

Также необходимо помнить, что автоматически создаваемые DokuWiki пароли не удовлетворяют политикам безопасности, использованным по умолчанию в Active Directory. В таком случае либо исправьте соответствующие политики AD, либо выключите функцию «Напомнить пароль» в DokuWiki в настройках config:disableactions.

Имена пользователей и групп

Имена пользователей и групп при экспорте автоматически преобразуются в формат DokuWiki и могут отличаться от указанных на сервере Active Directory. Пробелы заменяются символом подчёркивания, а символы \ и # удаляются.

Пример: Domain Users станет Domain_Users в DokuWiki. Если необходимо отредактировать файл с ACL вручную, нужно помнить, что правильная форма: Domain%5fUsers. Где «%5f» символ подчёркивания.

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

Как узнать дату создания пользователя в Active Directory?

Вы можете получить дату созданию любого объекта Active Directory (пользователя, компьютера или группы) через графическую консоль ADUC (не забудьте включить опцию Advanced Features в меню View).

  1. Найдите нужного пользователя в дереве AD вручную или с помощью поиска;
  2. Откройте свойства пользователя и перейдите на вкладку Object;
  3. Дата создания объекта в Active Directory указана в поле Created. консоль ADUC дата создания объекта в Active Directory

Это же значение можно получить из встроенного редактора атрибутов AD (атрибут whenCreated).

атрибут whencreated у объектов AD

Чтобы получить дату создания аккаунта пользователя через PowerShell, воспользуйтесь командлетом Get-ADUser из модуля AD PowerShell:

Get-ADUser a.novak –properties name,whencreated|select name,whencreated

Get-ADUser PowerShell - когда был создан пользователь в active directory - атрибут whencreated

Информацию о последней активности (входе) пользователя в домен можно получить из атрибутов атрибутов lastLogon или lastLogonTimpestamp. Историю входа пользователей в домен по логам DC можно получить так.

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

С помощью простого PowerShell скрипта вы можете вывести список пользователей, созданных недавно в Active Directory. Для этого нужно с помощью командлета Get-ADUser выбрать всех пользователей и отфильтровать их по значению атрибута whencreated. Например, следующий PowerShell код выведет пользователей, созданных в Active Directory за последние 24 часа:

$lastday = ((Get-Date).AddDays(-1))
$filename = Get-Date -Format yyyy.MM.dd
$exportcsv=”c:\ps\new_ad_users_” + $filename + “.csv”
Get-ADUser -filter {(whencreated -ge $lastday)} –properties whencreated | Select-Object Name, UserPrincipalName, SamAccountName, whencreated | Export-csv -path $exportcsv

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

Отчет со списком пользователей, созданных в Active Directory за последние 24 часа