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

Компьютерный форум OSzone.net » Серверные продукты Microsoft » Windows Server 2012/2012 R2 » 2012 R2 - [решено] Выгрузка пользователей через DSQUERY

Ответить
Настройки темы
2012 R2 - [решено] Выгрузка пользователей через DSQUERY

Новый участник


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

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


Изменения
Автор: SkyNezu
Дата: 17-06-2015
Есть задача: выгрузить всех пользователей, кто не менял пароль больше 45 дней и тех, кто не заблокирован.
У меня получилось следующее: dsquery user -stalepwd 45 -limit 0

Только мне нужно чтобы он вывел мне определенные поля: ФИО, подразделение, номер телефона, дата когда он последний раз менял пароль. И я никак не пойму что нужно добавить в запрос. Кто может помочь с этим?

UPD-1: Понял в чем затупил. Теперь команда выглядит вот так dsquery user -stalepwd 45 -limit 0 | dsget user -samid -display -dept -company -pwdneverexpires -disabled -acctexpires >D:\test.csv

И ошибку выдает вот такую: dsget ошибка:Недопустимый формат значения "Целевой объект этой команды". введите dsget /? для получения справки.

Отправлено: 13:00, 17-06-2015

 

Старожил


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

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


Воспользуйтесь powershell, ощутимо проще будет:
Код: Выделить весь код
$date=(Get-Date).AddDays(-45)
Get-ADUser -SearchBase "OU=Users,DC=domain,DC=local" -f {(enabled -eq $true) -and (pwdlastset -lt $date)} -properties *| select givenname, surname, initials, department, mobile, passwordlastset
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:07, 17-06-2015 | #2



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

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


Новый участник


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

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


nokogerra,
При работе с AD использую RSAT, локально работать на сервере возможности нет.

А вот ошибка при попытке запуска скрипта:
Цитата:
Get-ADUser : Объект каталога не найден
D:\test.ps1:2 знак:11
+ Get-ADUser <<<< -SearchBase "OU=Users,DC=lol,DC=com" -f {(enabled -eq $true)
-and (pwdlastset -lt $date)} -properties *| select givenname, surname, initial
s, department, mobile, passwordlastset
+ CategoryInfo : ObjectNotFound: ( [Get-ADUser], ADIdentityNotF
oundException
+ FullyQualifiedErrorId : Объект каталога не найден,Microsoft.ActiveDirect
ory.Management.Commands.GetADUser
Где я затупил?

Отправлено: 14:24, 17-06-2015 | #3


Старожил


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

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


нет нужды работать локально.
Хм, я -searchbase для примера привел. Если вы собираетесь искать пользователей во всем домене, то -searchbase можно не указывать. Если хотите указать дефолтный OU "USers", то он вовсе не OU, а CN, т.е. выглядеть будет так:
Get-ADUser -SearchBase "CN=Users,DC=domain,DC=local" -f {(enabled -eq $true) -and (pwdlastset -lt $date)} -properties *| select givenname, surname, initials, department, mobile, passwordlastset
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:31, 17-06-2015 | #4


Новый участник


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

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


Я уже понял, что натупил.

Сделал просто:

Код: Выделить весь код
$date=(Get-Date).AddDays(-45)
Get-ADUser -SearchBase "DC=lol,DC=com" -f {(enabled -eq $true) -and (pwdlastset -lt $date)} -properties *| select givenname, surname, initials, department, mobile, passwordlastset
Есть возможность выгрузить результат в нормальную таблицу? А то он мне выдал вот в таком формате:
Код: Выделить весь код
givenname: Иван Иванович
surname: Иванов
initials: 
department: Центр подготовки идиотов
mobile: 
passwordlastset : 17.01.2012 14:55:55
А хотелось бы без гемора в Excel таблицу собрать. Все-таки dsquery здесь как-то симпатичнее был.

Отправлено: 14:43, 17-06-2015 | #5


Старожил


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

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


В таблицу для каких целей? Для удобочитаемости можете сделать так:
get-aduser ....... | ft givenname, surname... -auto
Если нужно именно exel, то можно использовать export-csv, например:
get-aduser ..... | select givenname.... | export-csv c:\1.csv
и потом конвертировать в xls. Стоит прочитать справку командлета export-csv (get-help export-csv -full), возможно придется использовать определенную кодировку.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:54, 17-06-2015 | #6


Новый участник


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

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


Спасибо большое, почитаю.

Но тут еще один косяк вылез. Некоторые поля (ФИО) просто пустые оказались. У меня таких учеток нет. Где-то что-то пошло не так. Буду разбираться.

А поля givenname, surname, initials и другие где взять? Если я захочу поменять выводимые данные? Они не совпадают с полями dsquery. Или я что-то путаю?

Отправлено: 15:02, 17-06-2015 | #7


Старожил


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

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


Изображения
Тип файла: png Безымянный.png
(23.8 Kb, 6 просмотров)

givenname, surname и initials вполне могут быть пустыми. Посмотрите скриншот, причем стоит учесть что name и displayname могут отличаться. Сам логин, а точнее то, что вы видите на вкладке "Учетная запись" в поле "Имя входа пользователя" - это samaccountname.
Вообще посмотреть все свойства объекта пользователя можно так:
Код: Выделить весь код
get-aduser userx -properties *
или
Код: Выделить весь код
get-aduser userx -properties * | get-member -membertype property
Но, как будет видно, это не все атрибуты, которые есть в "Редакторе атрибутов" пользователя. На сколько я знаю, неиспользуемые атрибуты вообще не записываются в объекте posh, т.е. если значение нулевое. Например пустая строка - это не нулевое значение. Если интересуют все-все атрибуты пользователя, можно посмотреть на Msdn например: https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx или сделать запрос к схеме о классе "user" (никогда не делал).
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:30, 18-06-2015 | #8


Новый участник


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

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


Все получилось. Большое спасибо!

Теперь мой скрипт выглядит вот так:
Код: Выделить весь код
$date=(Get-Date).AddDays(-45)
Get-ADUser -SearchBase "DC=lol,DC=com" -f {(enabled -eq $true) -and (pwdlastset -lt $date)} -properties *| select displayname, sAMAccountName, pwdLastSet, company, department, description, telephoneNumber, l, distinguishedName | export-csv  -Encoding UTF8 D:\test.csv

Сейчас осталось решить 3 проблемы:
1. Поле pwdLastSet вот в таком виде отображается "130747725964343885". Не получается пока его привести в нормальный вид.
2. Пока не нашел свойства "Срок действия пароля не ограничен", как его в вывод сделать.
3. Не нашел свойства, заблокирована ли учетка пользователя или нет в данный момент.

Отправлено: 14:06, 18-06-2015 | #9


Старожил


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

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


Код: Выделить весь код
get-aduser userx -properties *| select passwordlastset, passwordneverexpires, enabled
p.s. а по поводу интересного отображения даты посмотрите эту тему https://social.technet.microsoft.com...orum=scrlangru

Последний раз редактировалось nokogerra, 18-06-2015 в 16:01.

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

Отправлено: 15:48, 18-06-2015 | #10



Компьютерный форум OSzone.net » Серверные продукты Microsoft » Windows Server 2012/2012 R2 » 2012 R2 - [решено] Выгрузка пользователей через DSQUERY

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 - Идентификация пользователей по атрибуту комната(office) с помощью dsquery dogtown Windows Server 2008/2008 R2 7 12-02-2013 19:11
2008 R2 - Не работает dsquery ekzarh Windows Server 2008/2008 R2 10 21-11-2012 15:45
CMD/BAT - [решено] dsquery | dsget вывод пользователей с почтой exo Скриптовые языки администрирования Windows 4 17-03-2009 10:22
Драйвер - Загрузка и выгрузка dll через CMDline borison Microsoft Windows 2000/XP 2 29-02-2008 17:50
Dsquery Помогите плиз.. minion Microsoft Windows NT/2000/2003 9 15-01-2008 09:18




 
Переход