Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Выгрузка данных о пользователях из AD

Ответить
Настройки темы
PowerShell - [решено] Выгрузка данных о пользователях из AD

Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Прошу прощения за такую задачу, но нужно срочно (так бы сам разобрался), а с PS я не особенно дружу.
Нужно следующее:
выгрузить пользователей из Active Directory с указанием логина; ФИО; даты создания; статуса учетной записи (включен/отключен); даты последней смены пароля; даты последнего логина.
Выгрузить нужно в csv.

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

Отправлено: 11:44, 17-12-2015

 

Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


пока получилось как-то так

Код: Выделить весь код
PROCESS 
{ 
    $csvreportfile = "d:\ADUsers.csv" 
     
    Import-Module ActiveDirectory 
     
                  Get-ADUser -server DCname -Properties * -Filter * |  
                  Select-Object @{Label = "Logon Name";Expression = {$_.sAMAccountName}},
                  @{Label = "Display Name";Expression = {$_.DisplayName}}, 
                  @{Label = "Created";Expression = {$_.whenCreated}}, 
                  @{Label = "Account Status";Expression = {if (($_.Enabled -eq 'TRUE')  ) {'Enabled'} Else {'Disabled'}}}, 
                  @{Label = "Last Changed";Expression = {$_.whenChanged}}, 
                  @{Label = "Last LogOn Date";Expression = {$_.lastlogondate}} |  
                   
                  Export-Csv -Path $csvreportfile -NoTypeInformation -Encoding utf8 
}
Скажите, whenChanged можно считать датой последней смены пароля?

Отправлено: 12:39, 17-12-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


whenChanged - нет нельзя, воспользоваться pwdLastSet.

Код: Выделить весь код
[datetime]::FromFileTime($_.pwdLastSet)

Последний раз редактировалось Kazun, 17-12-2015 в 12:55.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:45, 17-12-2015 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Elven, лучше напрямую перечислите потребные Properties, как правило, будет быстрее.
Цитата Elven:
Скажите, whenChanged можно считать датой последней смены пароля? »
Разумеется, нет. Это время последнего изменения объекта AD. К дате смены пароля отношения не имеет.

Script to list all AD users' passwords date - PasswordLastChanged attribute
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:58, 17-12-2015 | #4


Аватара для Elven

Ветеран


Сообщения: 992
Благодарности: 268

Профиль | Сайт | Отправить PM | Цитировать


Iska, пробовал, но почему-то они выводились не в том порядке, который я задавал, а в каком-то своем.
Kazun, спасибо, самое то.
конечный вариант:
Код: Выделить весь код
PROCESS 
{ 
    $csvreportfile = "d:\ADUsers.csv" 
     
    Import-Module ActiveDirectory 
     
                  Get-ADUser -server DCname -Properties * -Filter * |  
                  Select-Object @{Label = "Logon Name";Expression = {$_.sAMAccountName}},
                  @{Label = "Display Name";Expression = {$_.DisplayName}}, 
                  @{Label = "Created";Expression = {$_.whenCreated}}, 
                  @{Label = "Account Status";Expression = {if (($_.Enabled -eq 'TRUE')  ) {'Enabled'} Else {'Disabled'}}}, 
                  @{Label = "Last Changed Password";Expression = {[datetime]::FromFileTime($_.pwdLastSet)}}, 
                  @{Label = "Last LogOn Date";Expression = {$_.lastlogondate}} |  
                   
                  Export-Csv -Path $csvreportfile -NoTypeInformation -Encoding utf8 
}

Отправлено: 15:20, 17-12-2015 | #5


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Elven:
Iska, пробовал, но почему-то они выводились не в том порядке, который я задавал, а в каком-то своем. »
Разумеется. См. ниже.

Цитата Elven:
конечный вариант: »
Вы меня не поняли. В:
Цитата Elven:
Get-ADUser -server DCname -Properties * »
укажите получать не весь огромный перечень свойств. а только потребные. А дальше — всё по Вашему коду.

P.S. Зачем нужен «-Filter *» так же не понял.

Отправлено: 16:21, 17-12-2015 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Выгрузка данных о пользователях из AD

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - Записать информацию о пользователях в AD из текстового файла. dasgespenst Скриптовые языки администрирования Windows 2 29-07-2014 09:53
PowerShell - PowerShell: импорт данных в AD из файла Perersmeshnik Скриптовые языки администрирования Windows 2 20-02-2014 09:44
VBS/WSH/JS - выгрузка из AD информации пользователя Uranich Скриптовые языки администрирования Windows 1 14-02-2013 16:01
Выборочная загрузка и выгрузка данных из формы в таблицу MySQL dima1981 Вебмастеру 8 25-08-2008 18:02
выгрузка данных о пользователях skipperTT Microsoft Windows NT/2000/2003 1 29-11-2007 08:26




 
Переход