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

Ответить
Аватара пользователя
Elven

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

Сообщение Elven »

Прошу прощения за такую задачу, но нужно срочно (так бы сам разобрался), а с PS я не особенно дружу.

Нужно следующее:

выгрузить пользователей из Active Directory с указанием логина; ФИО; даты создания; статуса учетной записи (включен/отключен); даты последней смены пароля; даты последнего логина.

Выгрузить нужно в csv.



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

Re: PowerShell - [решено] Выгрузка данных о пользователях из AD

Сообщение Elven »

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





Код:

Код: Выделить всё

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

Re: PowerShell - [решено] Выгрузка данных о пользователях из AD

Сообщение Kazun »

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





Код:

Код: Выделить всё

[datetime]::FromFileTime($_.pwdLastSet)
Аватара пользователя
Iska

Re: PowerShell - [решено] Выгрузка данных о пользователях из AD

Сообщение Iska »

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



Скажите, whenChanged можно считать датой последней смены пароля?
PowerShell - [решено] Выгрузка данных о пользователях из AD




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



Script to list all AD users' passwords date - PasswordLastChanged attribute
Аватара пользователя
Elven

Re: PowerShell - [решено] Выгрузка данных о пользователях из AD

Сообщение Elven »

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

Re: PowerShell - [решено] Выгрузка данных о пользователях из AD

Сообщение Iska »

Цитата Elven:



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




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




Цитата Elven:



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




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


Цитата Elven:



Get-ADUser -server DCname -Properties *
PowerShell - [решено] Выгрузка данных о пользователях из AD




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



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

Вернуться в «Скриптовые языки администрирования Windows»