Мне нужно экспортировать список всех пользователей нашего домена, и я не знаком с DSQUERY или DSGET?

Я действительно изо всех сил пытаюсь создать запрос, который будет экспортировать следующее: Account FirstName LastName OU, в котором находится пользователь

В идеале мне бы хотелось, чтобы он был CSV. У меня нет доступа к контроллеру домена, но я могу запустить DSQUERY/DSGET/ и т.д. с моего компьютера.

2 ответа

Решение

В зависимости от ваших инструментов, вы можете сделать

dsquery user dc=contoso,dc=com | dsget user -samid -fn -ln -dn > names.csv 

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

Преобразование его в настоящий CSV требует немного больше работы.

$userList=dsquery user dc=contoso,dc=com | dsget user -samid -fn -ln -dn
foreach ($user in $userList) {
    $outstring=$user.trim(" ") -replace('\s+',',')
    write-host  `"$outstring`"
}

Что даст вам вывод, как

"samid","fn","ln","dn"
"jarey.boe","jarey","boe","cn=jarey.boe,ou=users,dc=contoso,dc=com"

dsquery работает, но преобразование в CSV путем разделения на один или несколько пробелов (\s+) является незначительным. Любое значение атрибута со встроенными пробелами будет сдвигать оставшиеся значения вправо. Также по умолчанию dsquery остановится после вывода 100 объектов; "-limit 0" выдаст все результаты.

Правильный способ сделать это через командную строку - использовать csvde:

csvde -f names.csv -r "(&(objectClass=user)(objectCategory=user))" -l samAccountName,givenName,sn

Обязательный метод PowerShell:

$a = [adsisearcher]'(&(objectClass=user)(objectCategory=user))'
$a.PageSize = 1000
$a.PropertiesToLoad.AddRange(@('samAccountName','givenName','sn','distinguishedName'))
$a.FindAll() | ForEach-Object {
    $b = $_.properties
    $op = '' | select DN,sAMAccountName,sn,givenName
    $op.DN = $b.distinguishedname[0]
    if ($b.samaccountname) { $op.samAccountName = $b.samaccountname[0] }
    if ($b.givenname) { $op.givenName = $b.givenname[0] }
    if ($b.sn) { $op.sn = $b.sn[0] }
    $op
} | Export-Csv names3.csv -NoTypeInformation
Другие вопросы по тегам