|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Поиск пользователя в AD |
|
|
PowerShell - [решено] Поиск пользователя в AD
|
Старожил Сообщения: 208 |
Доброго времени суток.
Задача написать скрипт который выключал бы учётные записи найденные по информации из .csv файла. Файл .csv следующего содержания (поля могут добавляться, но я думаю, что этих двух полей для идентификации нужного пользователя хватит): Name;JobTitle Иванов Иван Иванович;бухгалтер Петров Пётр Петрович;менеджер Полю Name из файла в AD соответствует поле Display name Вопрос, возможно ли по данной информации найти пользователя во всём домене, а не в конкретном OU? Есть вот тестовый код: cls Import-Module ActiveDirectory $Users = Import-Csv "D:\scripts\ps\users.csv" -Delimiter ";" #$Global:count = 0 function disableUser ($UserName, $JobTitle) { Write-Host ('User: ' + $UserName) Write-Host ('JobTitle: ' + $Jobtitle) Get-ADUser $UserName | Set-ADUser -Enabled $false #$Global:count = $Global:count + 1 } function main { foreach($User in $Users) { disableUser $User.Name $User.JobTitle } } main #Write-Host ('count: ' + $Global:count) Цитата:
|
||
Отправлено: 10:38, 23-10-2013 |
Старожил Сообщения: 280
|
Профиль | Отправить PM | Цитировать Добрый день.
Все можно. Но для простоты я бы посоветовал бы вам поставить коммандлеты от Queest.com И пользователей все таки лучше искать по logonname а не по displayname(или name). |
Отправлено: 13:33, 23-10-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 208
|
Профиль | Отправить PM | Цитировать Цитата Molchune:
Цитата Molchune:
|
||
Отправлено: 13:52, 23-10-2013 | #3 |
Старожил Сообщения: 280
|
Профиль | Отправить PM | Цитировать Цитата pogo:
Для простоты использования и работы в АД. коммандлеты от Quest делают очень хорошо помогают. К сожалению нет АД под рукой. ![]() Находит пользователя? А вообще какого-нить пользователя находит? |
|
Отправлено: 14:10, 23-10-2013 | #4 |
Старожил Сообщения: 208
|
Профиль | Отправить PM | Цитировать Нет, вываливается ошибка такая же как и в моём первом посте.
|
|
Отправлено: 14:57, 23-10-2013 | #5 |
Старожил Сообщения: 280
|
Профиль | Отправить PM | Цитировать а вообще кого-нить находит?
судя по всему Get-ADuser по умолчанию использует SamAccountName . Поэтому ничего и не находит Но повторюсь все мои догадки. Так как нет AD В принципе тут расписано что и как искать P.S. ну и без "*" попробуйте тоже. |
Отправлено: 15:13, 23-10-2013 | #6 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Get-ADUser -Filter 'DisplayName -eq "$UserName"'
PS. Модуль ActiveDirectory не поддерживает регулярные выражение и оператор -match,только wildcard(Get-ADuser -Filter 'Name -like "*Иван*"'). |
Последний раз редактировалось Kazun, 23-10-2013 в 19:18. Отправлено: 19:12, 23-10-2013 | #7 |
Старожил Сообщения: 208
|
Профиль | Отправить PM | Цитировать Спасибо.
Модифицированный вариант: $login = (Get-ADUser -Filter {DisplayName -eq $userName -and Title -eq $jobTitle}).SamAccountName Так мы получаем SamAccountName, т.е. логин, найденного по двум условиям пользователя. Подскажите пожалуйста, для удаления этого пользователя из разных групп, я могу как то сразу через Set-ADUser удалить у пользователя группы в которых он состоит или мне надо искать все группы в которых он состоит и удалять уже из них, что то вроде Get/Set-ADGroupMember? |
Отправлено: 11:25, 24-10-2013 | #8 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Используйте Remove-ADGroupMember:
$user = Get-ADUser -Filter {DisplayName -eq $userName -and Title -eq $jobTitle} "gr1","gr2" | Foreach {Remove-ADGroupMember -Identity $_ -Members $user -Confirm:$false} |
Отправлено: 12:01, 24-10-2013 | #9 |
Старожил Сообщения: 208
|
Профиль | Отправить PM | Цитировать Если я правильно понимаю, то gr1 и gr2 - это названия групп, из которых надо удалить пользователя. Но в моём варианте это не очень подходит, т.к. у одного пользователя может быть 2 группы, в которых он состоит, у другого 6 (это не предел), причём 4-5 из них разные, а перечислять все группы, в которые могу входить пользователи, это будет очень большой список...
Подскажите что значит Цитата Kazun:
|
|
Отправлено: 12:35, 24-10-2013 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Создание пользователя AD | garbals | Скриптовые языки администрирования Windows | 7 | 22-11-2013 13:12 | |
Поиск принтеров через AD (проблема) | -KeyMaster- | Microsoft Windows NT/2000/2003 | 12 | 29-06-2012 11:41 | |
PowerShell - Поиск в определенной группе конкретного пользователя | ejik_off | Скриптовые языки администрирования Windows | 1 | 26-12-2011 10:15 | |
PowerShell - [решено] Создания пользователя в AD | ejik_off | Скриптовые языки администрирования Windows | 7 | 09-12-2011 07:20 | |
Права пользователя без AD | goshargh | Microsoft Windows 2000/XP | 6 | 02-08-2006 10:28 |
|