![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] AD - Добавление в группу на основе атрибутов |
|
|
PowerShell - [решено] AD - Добавление в группу на основе атрибутов
|
Пользователь Сообщения: 126 |
Добрый день, всем гуру PowerSell'a!
Прошу помощи в написании скрипта, цель которого будет следующей: В зависимости от того как заполнен атрибут "Организация" в AD у пользователя, добавлять его в соответствующую группу. Т.е., я так понимаю, надо как-то сначала задать какая организация будет приравниваться какой группе (например для Организации "Организация 1" должна быть добавлена группа "Пользователи-1" если она еще не добавлена и т.д. Заранее огромное спасибо... |
|
Отправлено: 19:13, 12-09-2012 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $users = Get-ADUser -Filter * -Properties organization foreach($user in $users) { switch($user.Organization) { "Org1" {Add-ADGroupMember -Identity Group1 -Members $user;break} "Org2" {Add-ADGroupMember -Identity Group2 -Members $user;break} "Org3" {Add-ADGroupMember -Identity Group3 -Members $user;break} "Org4" {Add-ADGroupMember -Identity Group4 -Members $user;break} } } |
Отправлено: 08:58, 13-09-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Спасибо. Небыло времени еще разобраться, но мысль ясна. Позже отпишусь.
|
Отправлено: 08:44, 19-09-2012 | #3 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Супер, все отлично работает. Только атрибут organization сменил на company.
Возник следующий вопрос: Можно ли исключить пользователя сразу из нескольких групп по маске? Игрался с командлетом "Remove-ADGroupMember -Identity Group -Members $user -Confirm:$False", так ничего и не вышло... |
Отправлено: 08:08, 01-10-2012 | #4 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $user.memberof |Where {!($_ -like "Of*")} | Remove-ADGroupMember -Members $user
|
|
Отправлено: 09:04, 01-10-2012 | #5 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Супер! Ну а для того чтобы совсем автоматизировать процесс... как бы сделать так, чтобы не плодить условия, а поставить в цикл из расчета компаний и групп?
Что имеем на текущий момент, условие для одной компании и группы: |
Последний раз редактировалось rudimko, 01-10-2012 в 15:36. Отправлено: 14:16, 01-10-2012 | #6 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать И что это за условие?
|
Отправлено: 15:26, 01-10-2012 | #7 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Kazun, прошу прощения, не тот кусок вставил... =\ Смысл такой, что если пользователь еще не в "нужной" группе, тогда исключаем его из всех групп по маске "Пользователи-*" и назначаем ему "нужную" группу. Хотелось бы как-то автоматизировать процесс для остальных компаний и групп, чтобы не дублировать тоже самое, изменяя переменные компании и группы... Это возможно?
$Company_01 { if ($user.MemberOf -match $Group_01) { "$($user.Name) уже находится в группе $Group_01" } else { if ($user.MemberOf -match "Пользователи-*") { $user.MemberOf | Where {($_ -match "Пользователи-*")} | Remove-ADGroupMember -Members $user "$($user.Name) удален из всех пользовательских групп" } Add-ADGroupMember -Identity $Group_05_MO -Members $user "$($user.Name) добавлен в группу $Group_01" } } |
Отправлено: 15:36, 01-10-2012 | #8 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $hash = @{"Company1" = "gr1";"Company2"="gr2"} if($gr = $hash[$user.company]) { if ($user.MemberOf -match $gr) { "$($user.Name) уже находится в группе $gr" } else { $user.MemberOf | Where {$_ -match "Пользователи-*"} | Remove-ADGroupMember -Members $user "$($user.Name) удален из всех пользовательских групп" Add-ADGroupMember -Identity $gr -Members $user "$($user.Name) добавлен в группу $gr" } } |
Отправлено: 15:51, 01-10-2012 | #9 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Здорово! Премного благодарен!
|
Отправлено: 15:56, 01-10-2012 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Вопрос - Можно ли учётку, входящую в группу "администраторы" ограничить в правах? | Arwed | Защита компьютерных систем | 7 | 19-03-2011 18:48 | |
Интерфейс - Добавление пункта "Загрузки" в меню "Пуск" | Deja7u | Microsoft Windows 2000/XP | 5 | 09-01-2011 21:27 | |
[решено] Помогите сделать кнопку для создания атрибута окну "поверх всеx" | Pozia | AutoIt | 2 | 21-02-2009 22:48 | |
Жесть: "Линуксоиды представляют собой большую, сплоченную группу неадекватных людей." | xoomer | Новости и флейм из мира *nix | 10 | 18-06-2007 06:22 |
|