Показать полную графическую версию : [решено] Выгрузка данных о пользователях из AD
Прошу прощения за такую задачу, но нужно срочно (так бы сам разобрался), а с PS я не особенно дружу.
Нужно следующее:
выгрузить пользователей из Active Directory с указанием логина; ФИО; даты создания; статуса учетной записи (включен/отключен); даты последней смены пароля; даты последнего логина.
Выгрузить нужно в csv.
Сколь мне известно в PS это делается едва ли не в один командлет, впрочем если решение будет на другом языке - ни разу не обижусь.
пока получилось как-то так
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 можно считать датой последней смены пароля?
whenChanged - нет нельзя, воспользоваться pwdLastSet.
[datetime]::FromFileTime($_.pwdLastSet)
Elven, лучше напрямую перечислите потребные Properties, как правило, будет быстрее.Скажите, whenChanged можно считать датой последней смены пароля? »
Разумеется, нет. Это время последнего изменения объекта AD. К дате смены пароля отношения не имеет.
Script to list all AD users' passwords date - PasswordLastChanged attribute (https://social.technet.microsoft.com/Forums/scriptcenter/en-US/be4e6b5d-4eba-457f-8eab-99a08b526a6a/script-to-list-all-ad-users-passwords-date-passwordlastchanged-attribute?forum=ITCG)
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, пробовал, но почему-то они выводились не в том порядке, который я задавал, а в каком-то своем. »
Разумеется. См. ниже.
конечный вариант: »
Вы меня не поняли. В:
Get-ADUser -server DCname -Properties * »
укажите получать не весь огромный перечень свойств. а только потребные. А дальше — всё по Вашему коду.
P.S. Зачем нужен «-Filter *» так же не понял.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.