Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Выгрузка данных о пользователях из AD (http://forum.oszone.net/showthread.php?t=309300)

Elven 17-12-2015 11:44 2585658

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

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

Elven 17-12-2015 12:39 2585682

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

Код:

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 можно считать датой последней смены пароля?

Kazun 17-12-2015 12:45 2585686

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

Код:

[datetime]::FromFileTime($_.pwdLastSet)

Iska 17-12-2015 12:58 2585700

Elven, лучше напрямую перечислите потребные Properties, как правило, будет быстрее.
Цитата:

Цитата Elven
Скажите, whenChanged можно считать датой последней смены пароля? »

Разумеется, нет. Это время последнего изменения объекта AD. К дате смены пароля отношения не имеет.

Script to list all AD users' passwords date - PasswordLastChanged attribute

Elven 17-12-2015 15:20 2585770

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
}


Iska 17-12-2015 16:21 2585791

Цитата:

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

Разумеется. См. ниже.

Цитата:

Цитата Elven
конечный вариант: »

Вы меня не поняли. В:
Цитата:

Цитата Elven
Get-ADUser -server DCname -Properties * »

укажите получать не весь огромный перечень свойств. а только потребные. А дальше — всё по Вашему коду.

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


Время: 11:28.

Время: 11:28.
© OSzone.net 2001-