Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   Массовое изменение настроек пользователей в OU (http://forum.oszone.net/showthread.php?t=176424)

WildCat 24-05-2010 08:36 1419738

Массовое изменение настроек пользователей в OU
 
Здравствуйте!
Очень нужна помощь экспертов в следующем вопросе.

Найти или написать скрипт, который в указанном OU Active Directory пробегает по всем учетным записям пользователей и устанавливает следующие параметры:
- запретить смену пароля пользователем;
- срок действия пароля не ограничен;
- хранить пароль, используемое обратимое шифрование;
- пароль = логин;
- включить в группу "Dynamic VLAN";
- исключить из группы "Domain Users";
- установить Primary Group = "Dynamic VLAN".

VB до завтра изучить точно не успею, поэтому обращаюсь к вам за помощью.

Ivan Bardeen 24-05-2010 08:51 1419744

при нажатой кнопке шифт в ADUC выделяете всех нужных пользователей в OU - щелчок правой кнокой - свойства - выставляете, что нужно

Nikitos 24-05-2010 09:01 1419749

на вскидку - есть несколько утилит dsquery , dsmode, dsadd, dsrm, csvde, ldifde.
пример dsquery user -inactive 8 | dsmod user -disabled yes.
Открываем командную строку на контроллере домена от имени учетной записи обладающей необходимыми правами и :
1) добавляем пользователей в группу :
dsquery user ou=Marketing,dc=microsoft,dc=com | dsmod group"cn=Marketing Staff,ou=Marketing,dc=microsoft,dc=com" -addmbr
2) логин=пароль
dsquery user ou=Marketing,dc=microsoft,dc=com | dsget user -samid | dsmod -pwd
3) запрет смены пароля, включаем обратимое шифрование, срок действия пароля не ограничен
dsquery user ou=Marketing,dc=microsoft,dc=com | dsmod user -canchpwd no -reversiblepwd yes -pwdneverexpires yes
по поводу смены основной группы:
http://blogs.technet.com/heyscriptin...ary-group.aspx
http://www.wisesoft.co.uk/scripts/vb...ary_group.aspx
4) удалить пользователей из группы Domain users :
dsquery user ou=Marketing,dc=microsoft,dc=com | dsmod group "CN=Domain Users,CN=Users,dc=microsoft,dc=com" -rmmbr

Вобще говоря подумайте, стоит ли удалять пользователей из группы "Domain Users"...

WildCat 24-05-2010 11:10 1419806

Цитата:

Цитата Nikitos
Вобще говоря подумайте, стоит ли удалять пользователей из группы "Domain Users"... »

а в чем проблема с этим?

monkkey 24-05-2010 11:27 1419816

WildCat,
Вам придется вручную выставлять разрешения на общие ресурсы, принтеры и т.п.

WildCat 24-05-2010 12:01 1419835

Цитата:

Цитата monkkey
Вам придется вручную выставлять разрешения на общие ресурсы, принтеры и т.п. »

а разве VLAN-ы это не позволяют?

Nikitos 24-05-2010 12:17 1419844

Цитата:

Цитата WildCat
а разве VLAN-ы это не позволяют? »

Если Вы под VLAN подразумеваете то что описано в стандарте 802.1Q , то Вы что назыается "путаете теплое с мягким". VLAN-ми вы лишь позволите получать доступ одним пользователям и не получать другим, а как вы собираетесь контролировать уровень доступа к ресурсу ?
К примеру группа Domain Users по умолчанию является членом локальной группы Users на каждой клиентской машине в домене. Тоесть пользователи сразу получают некоторые разрешения по умолчанию, что упрощает задачи администрирования.

WildCat 24-05-2010 16:25 1420039

Цитата:

Цитата Nikitos
2) логин=пароль
dsquery user ou=Marketing,dc=microsoft,dc=com | dsget user -samid | dsmod -pwd »

на dsmod ругается
исправила вот так:
Код:

dsquery user ou=Marketing,dc=microsoft,dc=com | dsget user -samid | dsmod user -pwd
теперь говорит, что не указано значение для pwd
а как его указать, вроде ж ему должно передаваться значение из dsget, или я чего-то не понимаю?

cameron 24-05-2010 17:27 1420070

переменные в dsmod идут через $$ емнип.
Код:

dsquery user ou=Marketing,dc=microsoft,dc=com | dsmod user -pwd $username$
наверно.

Nikitos 24-05-2010 17:49 1420084

Кстати да, в хэлпе написано что можно через $username$ по крайней мере пути прописывать...
WildCat, попробуйте ;)
Кстати, перед всеми манипуляциями сделайте архив System State, чтоб потом если что AD восстановить можно было :)

cameron 24-05-2010 18:49 1420121

Цитата:

Цитата Nikitos
Кстати, перед всеми манипуляциями сделайте архив System State, чтоб потом если что AD восстановить можно было
------- »

советую использовать виртуалки для тестов.
проще и дешевле.

WildCat 25-05-2010 07:06 1420460

Цитата:

Цитата Nikitos
Кстати, перед всеми манипуляциями сделайте архив System State, чтоб потом если что AD восстановить можно было »

у меня тестовый домен :)

Nikitos 25-05-2010 07:23 1420465

WildCat, дак что, у Вас все получилось ? :)

WildCat 25-05-2010 08:10 1420480

А как бы глянуть, что у них там в $username$ прописано?
Потому что dsmod рапортует, что пароль изменен, а какой стал пароль - непонятно...

Nikitos 25-05-2010 08:26 1420486

имя для входа :)
"Подстановочная переменная $username$ (без учета регистра) может использоваться
вместо имени учетной записи SAM в значении параметров -webpg, -profile, -hmdir,
и -email."

WildCat 25-05-2010 08:28 1420487

значит с паролем не сработало :(

Цитата:

Цитата Nikitos
WildCat, дак что, у Вас все получилось ? »

получилось пока только частично

Nikitos 25-05-2010 08:40 1420490

Цитата:

Цитата WildCat
- пароль = логин; »

Как раз таки сработало, проверьте, только без учета регистра - единственное, но думаю это можно юзерам объяснить :)
P.S. не зря же я cameron благодарность объявил ))))

WildCat 25-05-2010 12:31 1420645

там имя petya без регистра
пароль меняется, но на что - непонятно
проверяю через "запуск от имени"

WildCat 25-05-2010 12:47 1420662

кхм...
пароль стал $username$ %) (т.е. вот этот набор букв с долларами)
что я неправильно делаю?

WildCat 25-05-2010 13:21 1420691

Теперь в группу добавляется, но если хоть один из пользователей (в списке на добавление) уже в этой группе, то остальные не добавляются. С удалением та же история.
Ставлю -c та же история.

cameron 25-05-2010 14:41 1420762

Цитата:

Цитата WildCat
кхм...
пароль стал $username$ %) (т.е. вот этот набор букв с долларами)
что я неправильно делаю? »

попробуйте в "" убрать $username$

WildCat 25-05-2010 14:56 1420780

Цитата:

Цитата Nikitos

там VBscript...
без него никак не получится?
(не знаю даже, с какой стороны к нему подступиться :( )

WildCat 25-05-2010 15:12 1420792

Цитата:

Цитата cameron
попробуйте в "" убрать $username$ »

не помогает :(

WildCat 26-05-2010 10:04 1421334

Ковыряю vbscript
Запускаю через cmd
Когда идет команда WScript.Echo то вывод идет во всплывающее окошко, а не в консоль. В файл в итоге тоже не перенаправляется (через '>'). Как с этим бороться?
PS Или для этого надо было новую тему создать?
PPS Поиском не нашлось :( Не исключаю, что запрос неправильно составляю :(

Nikitos 26-05-2010 11:07 1421368

при клике мышкой на скрипте используется парсер WScript
просто используйте парсер cscript и вывод будет в консоль
в командной строке пишем

Код:

cscript c:\mypath\myscript
а вобще говоря запись в файл можно произвести с помощью объекта Stream из библиотеки ADO например..
(см ADODB.Stream)

WildCat 26-05-2010 11:10 1421370

Вот ничего себе сила внушения! Заработало! (а вчера не работало 8-0)

Nikitos 26-05-2010 11:13 1421373

в C:\Windows\System32 должен быть cscript.exe если он там есть - попробуйте его запустить в командной строке находясь в этом каталоге.

WildCat 28-05-2010 09:37 1422727

Можно ли как-то сделать дозапись в лог-файл? Сейчас пользуюсь '>'. Файл перезаписывается. Вроде бы где-то пробегало, что надо писать '>>' но почему-то не срабатывает - файл не перезаписывается, но и не дозаписывается.

WildCat 08-06-2010 15:50 1430015

Возник еще один вопрос в данной задаче.
По пункту "сделать, чтобы пароль = логин"
Устанавливаю в VBscript вот так:
Код:

objUser.SetPassword lcase(objUser.CN)
Но есть одно НО. В домене присутствует политика сложности пароля (т.е. пароль не должен совпадать с логином и тп.) и, если она включена, то смена пароля не производится (логично).
Необходимо выполнить проверку, сменился ли пароль.
Делаю такую проверку
Код:

If Err.Number <> 0 Then
        WScript.Echo "Error"
Else
        WScript.Echo "Password changed to: " & lcase(objUser.CN)
        Err.Clear
End If

Не отрабатывает ни один из пунктов.
Где я косячу?

PS в начале скрипта прописываю
Код:

On Error Resume Next

tivashina 08-06-2010 16:50 1430055

Bulk AD Users - полезная штука, позволяет изменять параметры "пачками", бесплатная после регистрации
http://www.wisesoft.co.uk/software/b...s/default.aspx

WildCat 09-06-2010 11:20 1430606

Может быть есть какие-то функции, позволяющие проверить, соответствует ли пароль политике безопасности (сложности пароля)?
Или может быть можно как-то проверить, сменился ли пароль?


Время: 19:56.

Время: 19:56.
© OSzone.net 2001-