Get-ADUser это один из основных командлетов PowerShell, который можно использовать для получения различной информации о пользователях Active Directory и их атрибутах. С помощью командлета Get-ADUser можно получить значение любого атрибута учетной записи пользователя AD, вывести список пользователей в домене с нужными атрибутами и экспортировать их в CSV, и использовать различные критерии для выборки доменных пользователей.
Комадлет Get-ADUser доступен начиная с PowerShell 2.0 и входит в специальный модуль для работы с Active Directory — Active Directory Module for Windows PowerShell (представлен в Windows Server 2008 R2). Командлеты модуля RSAT-AD-PowerShell позволяют выполнять различные операции с объектами каталога AD.
В этом примере мы покажем, как с помощью командлета PowerShell Get-ADUser получить информацию о времени последней смены пароля пользователя, когда истекает срок действия пароля и другие данные пользователей.
- Как найти пользователя в AD и вывести его свойства с помощью Get-ADUser?
- Получение пользователей из нескольких OU с помощью Get-ADUser
- Получить Email адреса пользователей из AD
- Get-ADUser: экспорт пользователей домена в текстовый или CSV/Excel файл
- Get-ADUser –Filter: Сортировка и фильтрация списка пользователей AD
- Get-ADUser: разные примеры использования
Как найти пользователя в 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
В десктопных версия 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).
Вы можете установить модуль AD из PowerShell:
Add-WindowsCapability –online –Name “Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0”
Import-Module "C:\PS\ADPoSh\Microsoft.ActiveDirectory.Management.dll"
Import-Module "C:\PS\ADPoSh\Microsoft.ActiveDirectory.Management.resources.dll"
Полный список всех аргументов командлета Get-ADUser можно получить так:
help Get-ADUser
Чтобы вывести список всех учетных записей домена, выполните команду:
Get-ADUser -filter *
По-умолчанию командлет Get-ADUser возвращает только 10 основных атрибутов (из более чем 120 свойств учетных записей пользователей): DistinguishedName, SamAccountName, Name, SID, UserPrincipalName, ObjectClass, статус аккаунта (Enabled: True/False согласно атрибуту UserAccountControl), и т.д.
В выводе командлета отсутствует информация о времени последней смены пароля пользователя.
Get-ADUSer –Server DC01.winitpro.loc –Identity tstuser
Чтобы вывести полную информации обо всех доступных атрибутах пользователя tuser, выполните команду:
Get-ADUser -identity tuser -Properties *
Командлет Get-ADUser с параметром Properties * вывел список всех атрибутов пользователя AD и их значения.
Попробуем изменить параметры команды Get-ADUser, чтобы вывести только нужные нам атрибуты пользователя. Можно вывести сразу несколько атрибутов пользователя:
- PasswordExpired
- PasswordLastSet
- PasswordNeverExpires
- lastlogontimestamp
Выполните команду:
Get-ADUser tuser -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires, lastlogontimestamp
Теперь в информации о пользователе есть данные о статусе аккаунта (Expired:True/False), дате смены пароля и времени последнего входа в домен (lastlogontimestamp). Представим информацию в более удобном табличном виде и уберем все лишние атрибуты с помощью Select-Object –Property или Format-Table:
Get-ADUser -filter * -properties PasswordExpired, PasswordLastSet, PasswordNeverExpires | ft Name, PasswordExpired, PasswordLastSet, PasswordNeverExpires
Получение пользователей из нескольких 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 -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
Дополнительно с помощью 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
Таким образом, можно построить таблицу с любыми необходимыми атрибутами пользователей Active Directory.
Get-ADUser: разные примеры использования
Далее приведем еще несколько полезных вариантов запросов о пользователях Active Directory с помощью различных фильтров. Вы можете их комбинировать для получения необходимого списка пользователей домена:
Вывод пользователей AD, имя которых начинается с Roman:
Get-ADUser -filter {name -like "Roman*"}
Чтобы подсчитать общее количество всех аккаунтов в Active Directory:
Get-ADUser -Filter {SamAccountName -like "*"} | Measure-Object
Список всех активных (не заблокированных) учетных записей в AD:
Get-ADUser -Filter {Enabled -eq "True"} | Select-Object SamAccountName,Name,Surname,GivenName | Format-Table
Вывести дату создания учётной записи пользователя в домене:
get-aduser -Filter * -Properties Name, WhenCreated | Select name, whenCreated
Вывести всех пользователей, которые были созданы за последние 24 часа (пример отсюда):
$lastday = ((Get-Date).AddDays(-1))
Get-ADUser -filter {(whencreated -ge $lastday)}
Список учетных записей с истекшим сроком действия пароля (срок действия пароля настраивается в доменной политике):
Get-ADUser -filter {Enabled -eq $True} -properties name,passwordExpired | where {$_.PasswordExpired}|select name,passwordexpired
Задача: для списка учетных записей, которые хранятся в текстовом файле (по одной учетной записи в строке), нужно получить телефон пользователя из AD и выгрузить информацию в текстовый csv файл (для дальнейшего формирования отчета в Exсel).
Import-Csv c:\ps\usernsme_list.csv | ForEach {
Get-ADUser -identity $_.user -Properties Name, telephoneNumber |
Select Name, telephoneNumber |
Export-CSV c:\ps\export_ad_list.csv -Append -Encoding UTF8
}
Пользователи, которые не меняли свой пароль в течении последних 90 дней:
$90_Days = (Get-Date).adddays(-90)
Get-ADUser -filter {(passwordlastset -le $90_days)}
Чтобы получить фотографию пользователя из Active Directory и сохранить ее в jpg файл:
$user = Get-ADUser winadmin -Properties thumbnailPhoto
$user.thumbnailPhoto | Set-Content winadmin.jpg -Encoding byte
Список групп, в которых состоит учетная запись пользователя
Get-AdUser winadmin -Properties memberof | Select memberof -expandproperty memberof
Вывести список пользователей из OU, которые состоят в определенной группе безопасности:
Get-ADUser -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’ -Filter * -properties memberof | Where-Object {($_.memberof -like “*WKS admins*”)}
Вывести список компьютеров домена, на которые разрешено входить пользователю (ограничение через атрибут LogonWorkstations):
Get-ADUser AIvanov -Properties LogonWorkstations | Format-List Name, LogonWorkstations
Ох і довжина команд
OU=Moskow аж режет глаз
Да, спасибо поправил. Торопился 🙂
а Excel не режет??
А как сделать выборку польлзователей не всего домена, а конкретного контейнера/папки этого домена?
Т.е. к примеру, есть домен REGION, под ним папки-контейнеры с названием каждого региона и его пользователей, как сделать выборку пользователей контейнера, на пример, SAMARA?
В статье описано как фильтровать пользователей по контейнерам Active Directory (OU), для этого воспользуйтесь аргументом SearchBase, например так:
Get-ADUser -SearchBase ‘OU=Samara,DC=company,DC=com’ -filter *
Добрый день. Вопрос касательно OU, если есть в каталоге самара под папки
копютеры, пользователи. А в папке пользователи есть папки с отделами. И как подсчитать каждую папку отдела по отдельности
Заранее благодарю
Оказалось очень просто. Get-ADUser -SearchBase ‘OU=X… … OU=3,OU=2,OU=1,OU=Samara,DC=company,DC=com’ -filter *
Примечение OU=X … … 3,2,1 Это подкаталоги samara.
Поделюсь примером скрипта, когда на входе подается список учетных записей AD из csv файла, а на выходе нужно получить значение поля Компания (Company):
Import-Csv c:\install\ps\sap_user.csv | ForEach {
Get-ADUser -identity $_.user -Properties Name, company |
Select Name, company |
Export-CSV c:\install\ps\export_ad_info.csv -Append -Encoding UTF8
}
Добрый день!
А как сделать выборку пользователей, кто давно не логинился в домене?
Извиняйте за поздний отв
ет.
get-aduser -filter {enabled -eq "True"} -properties LastlogonDate | ? {$_.lastlogondate -le (get-date).adddays(-90)}
где 90 количество дней.
Здравствуйте, подскажите пожалуйста а как выгрузить в CSV?
Учетные записи созданные. допустим с 01.01.2015. Удалось получить список учеток командой
$MDate = ((Get-Date).AddDays(-299)).Date
Get-ADUser -Filter {whenCreated -ge $MDate} -property whencreated|sort name|ft name,samaccountname,whencreated -AutoSize
а выгрузить в ехсель не получается.
Попробуйте добавить в конце второй строки: | Out-File c:\scripts\aduser.csv
Спасибо большое. Помогло
$MDate = ((Get-Date).AddDays(-300)).Date
Get-ADUser -Filter {whenCreated -ge $MDate} -property whencreated|sort name|ft name,samaccountname,whencreated –AutoSize |out-file “C:\Temp\users.csv”
Здравствуйте, подскажите есть ли возможность просмотреть кто из админов менял пароль юзера с датой конечно.
С помощью Get-ADUser этого сделать не получится, т.к. данная информация в AD не хранится. Единственный способ поиска учетки, из-под которой был сброшен пароль пользователя, поиск в журнале безопансоти контроллеров домена (всех DC!!!, т.к. журналы независимы)событий с Event ID:
4738: A user account was changed
4724: An attempt was made to reset an accounts password
Это будет рабоать при условии, что включена политика аудита Windows Settings → Security Settings → Local Policies → Audit Policy:
Audit account management
Спасибо.
Помогите пожалуйста, очень нужно.
Как сделать выгрузку в csv по параметрам:
Общие=> (имя; выводимое имя; Описание )
Организация => ( Организация )
Учётная запись => ( Имя входа пользователя ; параметры учётной записи => Запретить смену пароля пользователем, срок действия пароля не ограничен; Срок действия учётной записи задавать или ставить «Никогда»)
Или хотя бы ссылки на материал где можно это быстро просмотреть.
Оч нужно.
Строка для получения данного списка из определенной OU домена
Get-ADUser -SearchBase ‘OU=Users,OU=London,DC=winitpro,DC=ru’ -filter * -properties displayName, company, sAMAccountName, userAccountControl | ft displayName, company, sAMAccountName, userAccountControl | Export-csv -path c:\temp\users2016.csv
Расшифровать данные флагов поля userAccountControl можно с помощью статьи https://winitpro.ru/index.php/2018/05/14/convertaciya-atributa-useraccountcontrol-v-ad/
Подскажите почему при экспорте в csv полей CN и Name в результате вместо имен одни вопросительные значки в полученном csv.
Проблема с русской кодировкой. В качетсве аргумента функции Export-csv добавьте -Encoding UTF8
Мне выдал результат поиска по началу имени только последние 16 УЗ. Как получить все остальное?
Показывайте команду 🙂
Здравствуйте!
Вставляю команду «Список всех активных (не заблокированных) учетных записей в AD», а мне выдают тех пользователей, которые отключены(т.е. не активны).
А как получить кол-во (и список) юзеров с сортировкой по полю Company?
Выбрать пользователей и сортировать по полю company
get-aduser -filter {Enabled -eq "true"} -properties company | select name,company | sort company
Посчитать сколько пользователей в каждой из кампаний работает.
get-aduser -filter {enabled -eq "true"} -properties company | select company | Group-Object company | select count,name | sort count,name
Народ подскажите как можно из Ad выгрузить пароли пользователей.
Пароли из AD выгрузить не получится. В открытом виде они не хранятся, в базе есть только их кеши.
Впрочем при наличии хорошего словаря, пароли все-таки можно добыть: https://winitpro.ru/index.php/2016/09/20/audit-active-directory-password/
Добрый!
Есть возможность выгрузить из АД инфу о последнем времени, когда юзер логинился для получения почты?
Для получения данных о входе в ящик придется воспользоваться командлетом Exchange — Get-MailboxStatistics. Вам нужно поле LastLogonTime.
Пример комбинации команд:
(Get-ADUser petrov).SamAccountName|Get-MailboxStatistics
Добрый день. Подскажите пожалуйста, как правильно составить команду:
вывести пользователей по списку значений атрибута из файла. т.е., как в цикле прогнать команду, подставляя в каждый прогон фильтра следующее значение из файла. Спасибо
Т.е. нужно для каждого значения из файла выпонить команду?
Попробуйте такой скрипт. В файле Users.txt содержится список пользователей
$Users = gc «c:\PS\Users.txt»
foreach ($User in $Users) {
Get-ADUser -Identity $User -Properties *|select-object company
}
Товарищи, подскажите, как вывести имя ПК по последнему входу учетной записи.
Т.е. есть учетка в АД и по ней надо найти ласт логон на ПК или все ПК неа которые учетка логинилась после её создания.
Спасибо.
Добрый день! из-за чего атрибуту Enabled не присваивается значение? Точнее он не меняется при отключении подключении уч.записи.
из-за этого команда
Список всех активных (не заблокированных) учетных записей в AD:
Get-ADUser -Filter {Enabled -eq «True»} | Select-Object SamAccountName,Name,Surname,GivenName | Format-Table
работает неверно.
все оказалось просто. Ps -нужно запускать с правами Администратора.
Подскажите как выгрузить список всех пустых контейнеров (OU) содержащихся в заданном контейнере (OU) ?
Вопрос не по теме, но коль уж спросили
Get-ADOrganizationalUnit -Filter {name -like «*moscow*»}| Where-Object {-not ( Get-ADObject -Filter * -SearchBase $_.Distinguishedname -SearchScope OneLevel -ResultSetSize 1 )}
Добрый день. Есть множество примеров запросов как выбрать пользователей из определенного OU и входящих в определенную группу. Подскажите пожалуйста как выбрать пользователей из OU кто НЕ входит в определенную группу (к примеру «Student»). Спасибо.
Добрый день! Я бы сделал так:
Выбираем список пользователей определенной OU, фильтруем по атрибуту memberof. Условие — пользователь не должен состоять в указаннйо группе.
Get-ADUser -SearchBase ‘OU=Users,OU=HQ,DC=corp,DC=winitpro,DC=ru’ -Filter * -properties memberof | Where-Object {!($_.memberof -like «*domain-admins*»)}
Лучшая статья
Добрый день.
Есть ли какие-нибудь командлеты, что собирать ту же информацию о пользователях(локальных) , НО компы не домене.
Доброго дня.
Именно в таком виде не получится, конечно. Как минимум, практически никто не указывает никакую информацию для локальных учетных записей.
В теории можно с помощью PowerShell обойти список ПК по списку и собрать информацию о всех локальных учетных записях и сохранить ее в csv/excel файл.
Попробуйте посмотреть в сторону командлета Get-LocalUser (PowerShell 5.0):
Invoke-Command -ComputerName remotePc1 -ScriptBlock {get-localuser}
Либо через CIM :
get-ciminstance win32_useraccount | Select Name,Description,Status,Disabled,AccountType
Доброе время суток форумчане. Возникла не тривиальная задача. И поскольку я в этом совершенно ничего не смыслю вынужден просить вашей помощи. Есть группа пользователей. Необходимо автоматизировать добавление каждому сотруднику этой группы компьютеров из определенной OU в поле LogonWorkstations. Полагаю для начала надо выгрузить список компьютеров из OU, после чего в запросе подтягивать загрузку из файла.
Get-ADComputer -filter * -SearchBase "OU=Dema,OU=DopOffice_Ufa,OU=update,DC=bksb,DC=ru" | Where-Object {$_.enabled -eq $true} | Select-Object -Property Name | Export-csv -path C:\Temp\OUcomputers.csv -NoTypeInformation -Encoding UTF8
.Далее результат добавить в конец запроса
Get-ADGroupMember -Identity "BuhgalterKassir" -Recursive | Set-ADUser -LogonWorkstations
Попробовал конструкцию типа
Import-Module ActiveDirectory
$complist = Import-Csv -Path "C:\Temp\OUcomputers.csv" | ForEach-Object {$_.NetBIOSName}
foreach ($comp in $complist) {
Set-ADUser -Identity username -LogonWorkstations $comp
}
Запрос отработал, но в результате в Logon to прописан доступ все так же на все компьютеры.
У вас почти все получилось. Немного допилил ваши запросы. У меня получился такой код для добавления компьютеров из указаной OU в поле LogonWorkstations всем пользователям из группы UnixAdmin:
$ws="0"
Get-ADComputer -filter * -SearchBase "ou=servers,DC=winitpro,DC=loc" | Where-Object {$_.enabled -eq $true} |
ForEach-Object {
$ws=$ws + ","+ $_.Name
}
Get-ADGroupMember -Identity "UnixAdmin" -Recursive | Set-ADUser -LogonWorkstations $ws
Еще несколько примеров использования атрибута LogonWorkstations для управления доступом пользователей к компьютерам здесь:
https://winitpro.ru/index.php/2018/08/07/kak-razreshit-zapretit-polzovatelyam-vxod-na-kompyutery-v-domene/
Все это будет работать, если вы захотите добавить в список разрешенных не более 64 ПК. На поле LogonWorkstationsесть жесткое ограничение Active Directory — не более 64 элементов.
Забыл добавить, у меня несколько OU откуда нужно подтягивать компьютеры.
изменить значение атрибута rangeUpper CN=User-Workstations схемы на 8192
Скрипт отрабатывает, но прописывает ко всему прочему 0 в начало списка.
По идее надо затирать первую строку в виде 0, далее добавлять компьютеры.
Можно ли одним запросом выбрать пользователей определенной OU у которых одинаковый атрибут email?
Попробуйте так: Get-ADUser -SearchBase ‘OU=Clients,DC=mydomain,DC=ru’ -Filter {mail -like ‘*’}
Добрый день!
Какой командой можно узнать логины пользователей зная их ФИО (список)?
В каком атрибуте пользователя в AD у вас хранится ФИО? Или речь о нескольких атрибутах (givenName, middleName, sn)?
ФИО на русском и нужно ли делать транслитерацию?
По одной записи удается получить информацию командой get-aduser -filter {displayname — lake «ФИО»} | select*, а получение инфы по списку трудности. givenName — имя, .sn — фамилия. ФИО — список на русском.
Как-то так:
В текстовом файле user_list.txt хранится список ФИО. Для каждой строки из файла выполняем поиск в AD по полю displayName и выводим displayName и имя учетной записи.
$Users = gc "C:\ps\user_list.txt"
foreach ($User in $Users) {
Get-ADUser -Filter {displayName -like $User} -Properties * |select-object displayName,sAMAccountName
}
Благодарю за помощь.
Как с удаленного ПК выгрузить security log за определенную прошедшую дату и ограниченный временной интервал?
Проще всего это сделать через PowerShell. Используется командлет Get-EventLog:
Get-EventLog -ComputerName msk-server1 -LogName Security -After 08/08/2018 -Before 12/09/2018
Или так:
Get-EventLog -ComputerName msk-server1 -LogName Security -After (Get-Date -Date 08/08/2018 14:31:00′) -Before (Get-Date -Date ’12/09/2018 15:00:00’)
Добрый день! Вопрос: как зная учетные записи пользователей (name, список) и целевую маску групп в AD (например, group*) на выходе получить выборку сотрудников (список), которые находятся в указанных группах?
Как-то так (список учеток в тектсовом файле):
$group = «CN=group,ou=russia,dc=winitpro,dc=ru»
$users=get-content (c:\ps\users.list)
Foreach ($user in $users) {
if ((Get-ADUser $user -Properties memberof).memberof -like $group )
{
# Если в группе
echo $user
}
Else
# Не входит в группу
{
echo «False»
}
}
Почему данная конструкция с -contains не работает?
Мне нужны имена и телефоны активных пользователей, которые являются членами определенной группы Х
Get-ADUser -SearchBase «атата» -Filter {(officephone -ne «null») -and (Enabled -eq «true») -and (Memberof -contains «Х»)} -properties Name, officephone | sort-object Name | select-object Name, officephone
Скажите а как выбрать пользователей у которых в поле Name только русские символы, чтобы отсеять служебные учетные записи?
Вопрос снят.
И как вы фильтровали по русским символам? Почему-то мне кажется, что проще выгрузить все в Excel и отфильтровать. Либо переместить служебные учетки в отдельную OU — обчыно это рекомендуется делать.
Прошу прощения только сейчас увидел сообщение, для отсева использовал фильтр вида:
-Displayname "[А-Я]*"
Что-то у меня в .csv какая то билибирда выходит в скрипте:
Get-Content .\users.txt | ForEach {
if($_ -match $regex)
{
Get-ADUser -identity $_ -Properties CanonicalName,emailaddress | ft name,SamAccountName,EmailAddress,CanonicalName | Export-CSV .\users.csv -Append -Encoding UTF8
}
}
выходит:
#TYPE Microsoft.PowerShell.Commands.Internal.Format.FormatStartData
ClassId2e4f51ef21dd47e99d3c952918aff9cd,»pageHeaderEntry»,»pageFooterEntry»,»autosizeInfo»,»shapeInfo»,»groupingEntry»
033ecb2bc07a4d43b5ef94ed5a35d280,,,,»Microsoft.PowerShell.Commands.Internal.Format.TableHeaderInfo»,
9e210fe47d09416682b841769c78b8a3,,,,,
27c87ef9bbda4f709f6b4002fa4af63c,,,,,
4ec4f0187cb04f4cb6973460dfe252df,,,,,
cf522b78d86c486691226b40aa69e95c,,,,,
033ecb2bc07a4d43b5ef94ed5a35d280,,,,»Microsoft.PowerShell.Commands.Internal.Format.TableHeaderInfo»,
9e210fe47d09416682b841769c78b8a3,,,,,
27c87ef9bbda4f709f6b4002fa4af63c,,,,,
4ec4f0187cb04f4cb6973460dfe252df,,,,,
cf522b78d86c486691226b40aa69e95c,,,,,
оказалось | ft не совместим с Export-CSV
Добрый день, вместо ft дайте в «трубу» селект.
| select Name, extensionAttribute2, Enabled | Export-Csv -Path "D:\managers.csv" -NoTypeInformation -Delimiter ";" -Encoding UTF8
пытаюсь получить список активных сотрудников с номерами телефонов и других идентификаторов,
Get-ADUser -Filter {Enabled -eq "True"} | Select-Object DisplayName,HomePhone | Format-Table
но ничего не выводится, хотя если запустить команду о сущ. полях,
Get-ADUser -identity tuser -properties *
по конкретному пользователю, то выводятся все поля корректно и эти поля тоже заполнены там.
DisplayName,HomePhone
Судя по всему вы в первой команде забыли указать
-properties *
:Get-ADUser -Filter {Enabled -eq "True"} -properties *| Select-Object DisplayName,HomePhone | Format-Table
Спасибо, вы правы, параметр помог)
А как найти всех пользователей AD, которые могут менять пароль хотя бы одному другому (т.е. не себе) пользователю AD?
Доброго времени суток, у меня возникла проблема с выводом пользователей из определенной группы в AD. Задача следующая, необходимо вывести список пользователей в данной группе, а так же вывести остальные группы в которых состоят эти пользователи.
Get-ADUser -Filter {Memberof -eq "CN=Analyst,OU=DKO,OU=Roles,OU=ZOE,OU=werbi,DC=portal,DC=my,DC=ru"} -Server portal.my.ru -Properties Name, SamAccountName, MemberOf | select Name, SamAccountName, @{Name='MemberofGroup'; e={ ($_.MemberOf | Get-AdGroup | sort name | foreach {$_.name}) } }
Сценарий взят на просторах инета, и допилян под свои нужды. Можете подсказать что значит конструкция: @{Name=’MemberofGroup’; e={ ($_.MemberOf | Get-AdGroup | sort name | foreach {$_.name}) }
Так как, если выполняю данную конструкцию, то список групп не выводится
Попробуйте так:
$groupDN = Get-ADGroup -Identity 'Domain Admins' | Select-Object -ExpandProperty DistinguishedName
Get-ADUser -Filter { Memberof -eq $groupDN} -Properties Name, SamAccountName, MemberOf | select Name, SamAccountName, @{Name='MemberofGroup'; e={ ($_.MemberOf | Get-AdGroup | sort name | foreach {$_.name}) } }
Спасибо помогло, есть ещё один вопрос. Есть группа(универсальная) в ней состоят несколько пользователей из разных доменов(есть так называемый лес) выполняю команду типа:
Get-ADGroupMember -Identity 'Domain Admins' | Where {$_.distinguishedName -match "DC=vip,DC=site,DC=ru";"DC=portal,DC=site,DC=ru" -and $_.objectClass -eq "user"} | select name, samaccountName | sort name, samaccountName
Выводит список пользователей, но проблема в том что, нужно вывести список групп в которых они состоят,
но к сожалению командлет Get-ADGroupMember ничего не знает про memberOf.
Скорее всего нужно так же присваивать переменные через $ правильно я понимаю?
Так же нашел командлет: get-adprincipalgroupmembership -Identity Administrators -ResourceContextServer my.ru -ResourceContextPartition «DC=my,DC=ru»
Но она ничего не выводит.
Заранее спасибо, где у вас тут кнопка поблагодарить?
Коллеги помогите в следующей задаче. Нужно экспортировать всех активных пользователей из АД в csv фаил со следующими параметрами: логин , пароль, email, должность, и в какой группе OU он относится.
Пароль пользователя не получится получить из AD. Все остальное:
Get-ADUser -Filter {(Enabled -eq "true")} -Properties sAMAccountName,mail,title,distinguishedName | Select-Object sAMAccountName,mail,title,distinguishedName| Export-csv -path c:\ps\users.csv
Добрый день! Подскажите пожалуйста как выгрузить список пользователей, которые не логинились 90 дней с ограниченным сроком пароля.
Что вы иметее под «с ограниченным сроком пароля» — пользователи, у которых не включена галка «Password never expires»? В этом случае можно такую команду на выборку:
$90_Days = (Get-Date).adddays(-90)
get-aduser -Filter {(passwordNeverExpires -eq "false") -and (Enabled -eq "true") -and (LastLogonTimeStamp -le $90_Days)} -properties Name, PasswordNeverExpires,LastLogonTimeStamp
Да, Вы правильно поняли. Огромное спасибо!
Появилась еще одна хотелка. В последнее время большая текучка, поэтому часто приходится переделывать журнал паролей. Поэтому можно ли формировать список пользователей с групировкой по отделами и сортировкой по ФИО?
Т.е. нужно получить список вида:
Отдел1
ФИО сотрудника1 Логин1
ФИО сотрудника2 Логин2
Отдел2
ФИО сотрудника3 Логин3
ФИО сотрудника4 Логин4
В идеале вообще в формате ворда. Хотя насколько я понял такое не реально.
Пока сделал так:
# получаем список ФИО пользователей с указанием отдела и кабинета, с сортировкой сначала по отделу, потом по ФИО
#подключаем оснастку для работы с AD
Add-pssnapin Quest.ActiveRoles.ADManagement
cls #очищаем экран
get-QADUser -SearchRoot 'CN=Users,DC=cityarch,DC=local' -Displayname "[А-Я]*" | sort-object Department, DisplayName | Select-Object `
DisplayName, Department, physicalDeliveryOfficeName | Export-CSV -delimiter ";" -path "C:\ADUsers_list.csv" -Encoding UTF8
Вы используете командлет get-QADUser — он не стандартный (из довольно старого и уже не поддерживаемого модуля от Quest sowtware). В принципе все тоже самое может и стандартный get-aduser.
Добрый день!
Подскажите пожалуйста, нужно сохранить сформированный список пользователей в AD каждого пользователя(имя, должность, фото) в отдельный файл?
Как реализовать?
Как я понял нужно сохранить фото каждого пользователя в отдельный jpg файла, и информации о имени и должности в другой файл с именем пользователя. Вот простой вариант:
$ADusers=Get-ADUser -Filter {.................} -Properties *
foreach ($ADuser in $ADusers) {
$photofilename = $ADuser.SamAccountName + ".jpg"
$userinfoname = $ADuser.SamAccountName + ".txt"
$ADuser.displayName + " ; " + $ADuser.title | Out-File c:\ps\$userinfoname
}
Спасибо! Вариант отличный, а можно объединить фото и юзера в один файл HTML?
В скрипте PowerShell формируйте HTML строку , которую вы хотите сохранить в файл, В тег
поместите путь к файлу с фото пользователя.
Потом делайте | Out-File в файл с расширением html.
Здравствуйте! Подскажите почему командлет Get-ADUser не возвращает значение некоторых параметров, например mailNickname или msExchHideFromAddressLists. Эти параметры были добавлены при расширении схемы для управления пользователями в Office 365
Добрый день.
Вот так пробовали?
get-aduser username -properties *| select mailNickname, msExchHideFromAddressLists
Домен без Office365, но с Exchange — все атрибуты присутствуют.
Попробовал — возвращает пустые значения. Хотя в оснастке в поле mailNickname есть значение, а msExchHideFromAddressLists — TRUE
проверял нескольких пользователей
У вас настроена синхронизация AD с Azure? Эти атрибуты синхронизируются?
Попробуйте изменить атрибут так и проверить, изменится ли он в AD:
$user = Get-ADUser usvername –properties *
$user.msExchHideFromAddressLists = “True”
Set-ADUser –instance $user
Синхронизация настроена в одностороннем порядке и эти атрибуты работают, то-есть собственно говоря пользователь из списка контактов в оутлуке пропадает. Все изменения проводятся только в AD «на земле» При попытке изменить что-то в облаке (как через веб интерфейс так и через Powershell) заканчиваются ошибкой.
«Этот пользователь синхронизирован с вашей локальной службой Active Directory. Некоторые сведения можно изменить только в локальной службе Active Directory.»
надоело руками каждый раз искать эти атрибуты в редакторе, дай думаю скриптик сделаю в три строчки… и уткнулся в стену) как обычно в принципе))
Прошу прощения за свою невнимательность и несообразительность — все оказалось до безобразия просто — достаточно запустить сеанс PS с правами администратора — тогда эти параметры и читаются без проблем и соответственно заменяются. С толку сбило то, что остальные параметры читаются без повышенных привилегий, а вышеописанные возвращались пустыми, без ошибок. Спасибо!
по департаментку :Get-ADUser -Filter {department -eq «ХХХХХХХХ» -and enabled -eq $true}
Как выгрузить список сотрудников у которых установлен определённый принтер
Здесь вам Get-AdUser поможет только получить список пользвоателей.
Вам в любом случае придется перебирать все компьютеры в домене или OU (Get-Adcomputer). Потом для каждого компьютера получить список установленных принтеров: через (WMI ) или (Invoke-Command + командлет Get-Printer: get-printer |where {$_.name -like «*print-server1*»}). Потом для полученных компьютеров получить список пользовалелей.
Добрый день а как залить в AD свойство mail из CSV файла. Я тут вроде сделал шаблон, но выдает ошибку. Не может импортировать файл. вид файла UserActiveToAD_3.csv:
Name,mail
«Имя__ Фамллл1″,»логин1@домен»
«Имя__ Фамллл2″,»логин2@домен»
«Имя__ Фамллл3″,»логин3@домен»
И сам скрипт
$data = Import-CSV -Path «D:\Temp\UserActiveToAD_3.csv»
Foreach ($user in $data){
Get-ADUser -Filter “Name -eq ‘$($user.Name)’” | Set-ADUser -Replace @{mail = “$($user.mail)”}
}
ошибка в 1 строке 19 символ…
Данные в файле на русском? Проверьте, что кодировка UTF8 и указан правильный путь. Судя по ошибке у вас именно в 1 строке проблема.
Добрый день! Делаю запрос:
PS C:\Users\aaa> Get-ADUser -filter {name -like «admin*»} | Select Name, Description
Учетки выводит, а в описании пусто, хотя в консоли AD описание заполнено. Помогите, пожалуйста.
Description — это дополнительный атрибут, нужно добавить
-properties *
:Get-ADUser -filter {name -like "*admin*"} -properties * | Select Name, Description
Спасибо вам, добрый человек )
Добрый день! Вот какая проблема: в течение почти каждого месяца различные отделы (бухи, HR или маркетинг) по выходным (раза 2-3) выходят что-то там работать. Приходится открывать им доступ на эти дни. Немного напрягает. А есть ли возможность с помощью скрипта PS заводить указанных в приказе на работу пользователей, а не лазать по оснастке АД Пользователи и ПК и ставить время входа? И еще хорошо бы время входа тоже заводить (они, бывает, часа на 3-4 выходят, а не на полный день.
Т.е. у вас для всех пользователей заполнен атрибут logonHours. На самом деле возможность AD ограничения по времени входу пользователя используется довольно редко.
Можно проставлять новое время logonHours скриптом (ниже), а в понедельник менять обратно. Главное неудобство — битовый формат времени — придется с ним разобраться.
Получить текущее значение:
get-aduser user -property logonhours | select-object -expand logonhours
Получите нужный формат рабочего времени у настроенного тестового пользователя, а потом примените его для всех по списку из текстового файла:
[byte[]]$hours = @(1,0,0,0,248,255,1,248,255,1,248,255,1,248,255,1,248,255,1,248,255)
$Users =get-content C:\ps\user_list.txt
foreach ($User in $Users) {
set-aduser -identity $User -replace @{logonhours = $hours}
}
Как выбрать всех юзеров кроме админов?
Так не выходит
Get-ADUser -SearchBase ‘OU=Moscow,DC=winitpro,DC=loc’ -Filter * -properties memberof | Where-Object {($_.memberof -notlike “*admin*”)}
Так?
$Users = Get-ADUser -filter * -properties memberOf
ForEach ($User In $Users)
{
$Groups = -join @($User.memberOf)
If ($Groups -notlike '*Domain Admins*')
{
$User.Name
}
}
Добрый день!
Как можно выгрузить список пользователей домена с принадлежностью к группам?
То есть:
Пользователь 1:
Группа 1
Группа 2
———
Группа n
Пользователь 2:
Группа 1
Группа 2
———
Группа n
Попробуйте так:
Get-aduser -filter *| Get-ADPrincipalGroupMembership | select name
Спасибо — работает! Будем пытаться допилить!
Добрый день!
Хочу сделать временно всем юзерам бессрочный пароль:
Get-AdUser -Filter * | Set-ADUser -PasswordNeverExpires $true
команда выводит- Set-ADUser : Отказано в доступе
Все доступа есть, что может быть или есть какая то другая команда?
У учетной записи, из-под которой вы запускаете команду нет прав на какие-то учетные записи. Вероятно встроенного administrator и прочее.
Делегируйте себе права управления учетками на OU с пользователями (https://winitpro.ru/index.php/2018/12/29/active-directory-delegirovanie-admin-prav/) и включите бессрочный пароль для пользователей из OU:
Get-AdUser -SearchBase ‘OU=Users,OU=RU,DC=winitpro,DC=loc’ -Filter * | Set-ADUser -PasswordNeverExpires $true
Добрый день!
Подскажите как мне в вывести все активные учетки(не заблокированы) где реквизит empoeeid не заполнен?
Как-то странно командлет работает с пустыми значениями null. У меня получилось только так:
Get-AdUser -Filter "Enabled -eq 'True'" -Properties * |where employeeID -eq $null|select name,enabled,employeeID
Добрый день! Помогите, пожалуйста!
Необходимо с определенного OrganizationalUnit в AD вывести значение и экспортировать *.csv.
Значение атрибутов вывести в табличном виде в разрезе:
displayName; userPrincipalName; employeeID; employeeNumber
*Примечание: Атрибут [employeeNumber ] — отобрать только с не заданным значением
В статье все рецепты есть. Соберите их вместе. Или хотя бы покажите, что конкретно у вас не получается.
Для выбора OU используется
-SearchBase
Для фильтра
-Filter {(employeeNumber -ne "123123")
Добрый день! не подскажете как можно отфильтровать сотрудников в AD и вытащить список не входящие в три группы то есть вытащить список имен сотрудников в формате CSV и при этом они не должны входить в группу n1,n2,n3 ?
Если не заморачиваться со сложным скриптом, наверное проще и быстрее сделать 3 CSV списка:
$DomainGroup = (Get-ADGroup 'Domain Admins').DistinguishedName
Get-ADUser -LDAPFilter "(!(memberof=$DomainGroup))"|Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $env:temp\mail_list.csv
Потом сливаем 3 CSV файла в один Excel и если пользователь в итоговом списке встречается 3 раза, значит он не входит ни в одну из групп.
А допустим можно выгрузить список сотрудников в CSV по такому примеру ФИО и перечисление в какие группы он входит по разному перебирал не получилось а потом в Excel отсортирую ?
1) ФИО; группа1: группа2:группа N
2) ФИО: группа1: группа2:группа N
Добрый день, товарищи!
подскажите, пожалуйста, как в шелле вывести список пользователей с их OU ?
Get-ADUser -filter * -SearchBase ‘…’ а дальше как, подскажите.
Буду очень благодарен
В AD у пользователя нет атрибута в котором указано его родительский OU, наверно проще всего взят за основу distinguishedName
$Users = Get-ADUser -Filter {Enabled -eq $True}
ForEach ($User In $Users)
{
$DN = $User.distinguishedName
$OU = ($DN -Split 'cn=')[1]
$OU
}
спасибо, да, не учёл distinguishedName.
в итоге попробовал сделать через canonicalname:
Get-ADUser -filter * -SearchBase ‘……..’ -properties canonicalname | Select-Object Name, canonicalname | Export-csv -Encoding Unicode -path c:\ps\users.csv
получившийся csv импортирую в эксель и при импорте показываю, что после каждого «/» в документе — делать разбивку в столбец. В итоге получаем ФИО/OU/ФИО. Лишний столбец с ФИО потом удалить в самой эксель
Добрый день, подскажите пожалуйста есть атрибут title в нем содержится русскоязычный текст и при экспорте получаю все значения в виде ??????????, можно ли получить в cvs вывод русского языка?
Прошу прощения поторопился нашел -Encoding utf8
Доброго времени суток.
Подскажите пожалуйста, как можно отобразить только тех пользователей, у которых пароль истекает через 2 дня? Что то не нашел готового ответа а сам додуматься не могу. Спасибо заранее!
Вот статья про получение инфы о дате истечении пароля в ad https://winitpro.ru/index.php/2020/02/25/ad-user-password-expiration/
См. пример в секции «PowerShell скрипт для email-уведомления об истечении срока действия пароля» — там я получа.ю список пользователей, у которых пароль истекает в течении 7 дней
Добрый день! Как получить имена ПК на которых логинился пользователь за последние 30 дней например.
Нет, встроенными средствами это не решается.
Нужно какую то дополнительную систему или скрипты. За основу можно взять вот такое решение https://winitpro.ru/index.php/2019/08/13/set-adcomputer-powershell/
Добрый вечер. Как добавить статический список в разрешённые воркстейшены по ou-шкам или домену — это изи и это работает. Но есть задача чуть сложнее, вожусь долго и без вашей помощи никак не могу сообразить что к чему)
Есть OU с магазинами. Есть пользователи магазинов. Примерно, одна учётка на 3-5 девайсов (ноутбуки, складские пк etc). Им необходимо разрешить доступ к рдс ферме (список session hosts как раз статический, с этим проблем нет) и к самому ноутбуку с которого работает магазин для того, чтобы они смогли залогинеться в свой ноутбук
Есть идея, но не знаю как реализовать — дать отделу тех поддержки задачку запускать скрипт поша для прописывания статического списка, но не знаю как добавить в этот пош скрипт чтобы «выскакивало окно» с запросом ввода ещё одного поле — собсно чтобы в нём указать поле текущего ноутбука
Не понимаю вашу проблему. Или вы неправильно изъяснились.
Доступ к RDS хостам ограничивается через группу доступа в домене (на уровне самого терминального сервера, вам не нужно править для этого LogonWorkstations пользователя). На каждом хосте можно использовать свою группу, если вам так надо.
Про ограничение входа на компы см. здесь https://winitpro.ru/index.php/2018/08/07/kak-razreshit-zapretit-polzovatelyam-vxod-na-kompyutery-v-domene
Обычно создаются обычные группы доступа, туда распихиваются пользователи. В рдс доступ прибивется по группам, например к приложениям, хостам и т.п. Если я правильно понял и на опрделенные машины нужно дать доступ только «кругу ограниченных» — то самый быстрый вариант это тот , что привели выше, Log on to во вкладке Account свойств пользователя.
Добрый вечер, может кто то подсказать, в чем разница между LastLogonTimeStamp и LastLogon и почему эти данные отличаются? Или где можно прочитать описание описание этих параметров.
Эти данные в дальнейшем использую для поиска неактивных учетных записей.
Спасибо.
Значение Lastlogon обновляется только на DC, который выполнил аутентфикацию пользователя. Это атрибут не реплицируется.
Атрибут LastLogontimestamp реплицируется, но не часто (по умолчанию только если его значение более чем 14 дней старше, чем предыдущее значение)
Т.е. если вам нужны актуальные данные у вас один DC в сайте, используйте Lastlogon (либо запрашивайте данные у всех DC).
С помощью LastLogontimestamp получать информацию о метках менн 14 дней давности нет смысла.
Спасибо за разъяснения, но в этом и проблема, так как сперва использовал именно LastLogon, но в итоге заметил, что в пул попадают активные учетные записи, при том что в этой же учетке LastLogonTimeStamp более актуален чем LastLogon.
Пример:
lastlogon 15.09.2020 13:00:18
lastlogontimestamp 28.09.2020 9:51:17
и другая учетка
lastlogon 08.08.2020 9:42:02
lastlogontimestamp 30.09.2020 9:00:05
и получается, что вторая учетка попадает под отключение (берутся учетки неактивные больше 30 дней), а первая на грани)
может стоит сортировать их по другому значению?
Добрый день.
Подскажите, необходимо сделать выгрузку всех пользователей с атрибутом компании «Тест», а так же данные по этим пользователям (компания Тест) — последний раз заходили 120 дней назад. Делаю запрос такого вида, но выдает всех пользоватлей. Спасибо!
Get-ADUser -Filter {company -like «Тест»} -Searchbase «OU=User Accounts Vista,OU=User Accounts,OU=User Directory,DC=1,DC=com» | get-aduser -filter {enabled -eq «True»} -properties LastlogonDate | ? {$_.lastlogondate -le (get-date).adddays(-120)} | Export-Csv -Path C:\1\users.csv
Как-то так должно работать:
Get-ADUser -Filter {(company -like "Тест") -and (enabled -eq "True")} -Searchbase "OU=User Accounts Vista,OU=User Accounts,OU=User Directory,DC=1,DC=com" -properties LastlogonDate | ? {$_.lastlogondate -le (get-date).adddays(-120)} | Export-Csv -Path C:\1\users.csv
Добрый день!
Существуют несколько групп безопасности содержащих в имени «adm».
Подскажите, пожалуйста, как вывести список пользователей, которые являются одновременно членами двух и более таких групп?
т.е. так:
Get-ADUser -Filter {Enabled -eq «True»} -properties memberof | Where-Object {($_.memberof -like «*adm*»)} | sort-object name | ft name
увижу всех не заблокированных пользователей, которые являются членом хотя бы одной группы безопасности, содержащей в имени «adm». Но как не включать в этот список пользователей, который являются членом только одной из групп, содержащей в имени «adm»?
День добрый! Прошу подскажите, необходимо сделать выгрузку всех пользователей с атрибутом, PasswordLastSet, PasswordNeverExpires, lastlogontimestamp, PasswordExpired. Сделал выгрузку командой, но lastlogontimestamp в виде простого набора цифр, как его преобразовать в дату?
Заранее спасибо
get-aduser -filter * -properties PasswordLastSet, PasswordNeverExpires, lastlogontimestamp, PasswordExpired |ft Name, lastlogontimestamp, PasswordLastSet, PasswordNeverExpires,PasswordExpired
Это время в формате timestamp. Для преобразования можно использовать:
Get-ADUser vilenin -Properties Name,lastLogonTimeStamp |
Select-Object Name,@{n='lastLogonTimeStamp';e={[DateTime]::FromFileTime($_.lastLogonTimeStamp)}}
Добрый день
подскажите как сделать выгрузку из Ад в текстовой файл таблицей сотрудников, которые меняли пароль позже 22.12.
Позже это до или после?
Если имеется в виду после, то как-то так:
$setday = Get-Date -Date "12/22/2020"
Get-ADUser -filter {(passwordlastset -ge $setday)} * -properties PasswordLastSet| select Name,PasswordLastSet| Export-csv -path c:\temp\user-password-2020.csv -Append -Encoding UTF8
PS. В статье есть вся инфа, я думаю можно и самому по этой статье и комментариях запилить powershell скрипт. Готовый результат не так ценен 🙂
Добрый день.
Вижу много реальных ответов. Респект и уважуха за это !!!
Добрый день!
Подскажите как выгрузить список учетных записей у которых имеется срок действия, например Иванов Иван и у этой учетки срок до 25.06.2021.
Вам нужно свойство accountExpires
Get-ADuser -properties accountExpires -filter *| FT Name, @{N='accountExpires'; E={[DateTime]::FromFileTime($_.accountExpires)}} -AutoSize
Подскажите как выгрузить список пользователей с ФИО, когда имеется список учетных записей пользователей в файле txt.
Здравствуйте. Помогите с решением задачи, пожалуйста. Есть некий список пользователей, по фамилиям которых я хотел бы провести поиск в AD. Не могу понять как правильно передать список команде get-aduser. Пишу нечто типа:
Import-Csv «C:\Users\itusr.txt» | ForEach-Object {Get-ADUser -Filter «Name -like ‘*$_.*'» -Properties EmailAddress}
На выходе хочу видеть список фамилий из листа itusr.txt и их EmailAddress.