Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > автоматизированная настройка AD


Автор: seevkaboorka 28.2.2008, 14:30
нужно написать на vbscript, wscript, cmd-скрипт или даже с/с++ код, который будет:
- запрашивать список доменов
- запрашивать список OU в домене
- определенному OU назначать установку определенного msi-пакета на все машины

или хотя бы скажите где можно почитать про то, что меня приблизит к решению задачи

Автор: mihanik 28.2.2008, 20:02
Ничего не понимаю...
Зачем тебе это?
Ты администратор леса?
Энтерпрайз админ?
Если да, то всё это странно...
Т.к. ты должен знать, что почти всё это можно сделать при помощи редактора групповых политик, распространяемых на  Organisation Units (OU)...
У тебя большой лес? 
Юзай Microsoft Group Policy Management Console (gpmc.msi )

Или я чего-то не понимаю, или одно из двух...


Автор: localhost 29.2.2008, 16:09
Цитата

- запрашивать список доменов
- запрашивать список OU в домене

Изучайте LDAP-запросы. С их помощью можно получить самую разнообразную информацию. В Support tools есть утилита ldap.exe. С помощью нее можно конструировать эти запросы. А затем, готовый запрос можно использовать в любой WSH-среде.

Цитата

- определенному OU назначать установку определенного msi-пакета на все машины

Читаем http://technet2.microsoft.com/windowsserver/en/library/b7c2efc1-207e-4089-8490-0d002daf8b6c1033.mspx?mfr=true

Автор: seevkaboorka 3.3.2008, 13:02
2 mihanik: о, я полностью согласен. админ должен знать такие вещи. но я не админ. я разработчик. а потенциальные пользователи моей программы - админы в гос структуре. а там сами знаете... поэтому мне поставили задачу автоматизировать сей процесс.

2 localhost: огромное спасибо за наводку на ldap.exe, буду изучать запросы. а вот мануал рекомендуемый по развертыванию приложений я читал. и даже на русском и даже более полный. только мне надо делать это не руками. 

есть ли способ управления групповыми политиками ( а именно интересующей меня частью - software installation) посредствам скрипта?

Автор: localhost 4.3.2008, 14:23
Цитата(seevkaboorka @  3.3.2008,  14:02 Найти цитируемый пост)
есть ли способ управления групповыми политиками ( а именно интересующей меня частью - software installation) посредствам скрипта? 

Я не совсем понимаю смысл автоматизации того, что уже автоматизировано. Сам механизм групповых политик содержит такие средства как GPMC, RSOP для управления ими. Можете привести пример автоматизации для внесения ясности в ситуацию? Также интересует с помощью каких средств планируете решать поставленные задачи.

Почитайте вот http://www.networkdoc.ru/windows-script-host-wsh-/avtomatizirovannoe-upravlenie-obektami-gpo.html. И, думаю, вам будет полезно ознакомиться с http://www.microsoft.com/technet/scriptcenter/scripts/default.mspx?mfr=true. Там найдете много примеров реализации работы с WSH в целом и AD и GP в частности.

Автор: seevkaboorka 5.3.2008, 00:42
автоматизация = админу не надо разбираться в этих средствах управления. я понимаю, что это как-то несуразно, но поделать ничего не могу - таковы требования. и видимо по причинам банальной логики такой код майкрософт не помещает в примеры...

Автор: mihanik 5.3.2008, 05:53
Цитата(seevkaboorka @  5.3.2008,  00:42 Найти цитируемый пост)
автоматизация = админу не надо разбираться в этих средствах управления


А что там разбираться?
"Наливай, да пей!"

Цитата(localhost @  4.3.2008,  14:23 Найти цитируемый пост)
Сам механизм групповых политик содержит такие средства как GPMC, RSOP для управления ими. 

Вот именно!!!
При помощи GPMC, например...

Цитата(seevkaboorka @  28.2.2008,  14:30 Найти цитируемый пост)

- запрашивать список доменов
- запрашивать список OU в домене
- определенному OU назначать установку определенного msi-пакета на все машины


1-е делается сразу, как только загружаешь GPMC. Причём отображение происходит сразу в древовидном виде.
2-е тоже делается сразу.
3-е делается за несколько кликов мыши...

Добавлено через 5 минут и 42 секунды
seevkaboorka, кроме того.
Вашу фразу
Цитата(seevkaboorka @  3.3.2008,  13:02 Найти цитируемый пост)
а потенциальные пользователи моей программы - админы в гос структуре. а там сами знаете... 


Можно трактовать двояко...

Типа, а там сами знаете какие они глупые...

По-моему проще им за час показать, как пользоваться уже имеющимися мощными средствами, чем несколько дней писать программу, а потом ещё несколько недель отлавливать баги...

imho.

Автор: localhost 5.3.2008, 10:07
Цитата(seevkaboorka @  5.3.2008,  01:42 Найти цитируемый пост)
автоматизация = админу не надо разбираться в этих средствах управления

автомобиль = водителю не надо уметь водить машину. Достаточно уметь ходить пешком.

Извиняюсь за данную метафору, но я именно так понимаю суть задачи. Для устранения несуразностей, приведите пример требуемой автоматизации. Ответ может быть на поверхности  smile 

Автор: seevkaboorka 9.3.2008, 13:08
пример (и даже конкретно мой случай): визард установщика и в нем просто пункт "раздать через AD", а потом после нажатия кнопки Install всё само прописывается и назначается... не знаю как ещё объяснить. 

мб и проще админам "показать за час" "пару кликов", не спорю. но передо мной стоит задача совершенно другая. нужно сделать продукт, установка которого вообще не вызывает вопросов. 

весь вопрос сейчас в том, можно ли повторить эти "пару кликов" программно?

Автор: localhost 10.3.2008, 00:18
seevkaboorka, а обязательно для этих целей использовать групповые политики? Ведь софт можно распространять и через админресурсы операционной системы. А список компьютеров запрашивать из AD. Или дело не только в софте?

Автор: seevkaboorka 10.3.2008, 11:38
Цитата(localhost @ 10.3.2008,  00:18)
...Ведь софт можно распространять и через админресурсы операционной системы...

это как?

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

Автор: seevkaboorka 11.3.2008, 18:14
ладно. для начала помогите составить LDAP запрос. нужно запросить список всех OU для домена. имени домена не знаю, знаю, что он localhost smile 

Автор: localhost 13.3.2008, 11:29
Цитата(seevkaboorka @  11.3.2008,  19:14 Найти цитируемый пост)
для начала помогите составить LDAP запрос. нужно запросить список всех OU для домена

seevkaboorka, знакомьтесь с классом http://msdn.microsoft.com/library/rus/default.asp?url=/library/rus/cpref/html/frlrfsystemdirectoryservicesdirectorysearcherclasstopic.asp

Цитата(seevkaboorka @  11.3.2008,  19:14 Найти цитируемый пост)
имени домена не знаю, знаю, что он localhost 

Имя домена можно получить таким образом (пример на VBS)
Код

Set objRoot = GetObject("LDAP://RootDSE")
strDomainName = objRoot.Get("DefaultNamingContext")
Set objRoot = Nothing


Добавлено через 1 минуту и 7 секунд
Читайте MSDN и будет Вам щастье smile
А вообще, тема перерастает уже в кодерскую smile

Автор: seevkaboorka 13.3.2008, 15:25
Код

Dim objADsPath, OUs
Set objDomain = GetObject ("GC://rootDSE")
objADsPath = objDomain.Get("defaultNamingContext")
Set objDomain = Nothing
Set con = CreateObject("ADODB.Connection")
con.provider ="ADsDSOObject"
con.open "Active Directory Provider"
Set Com = CreateObject("ADODB.Command")
Set Com.ActiveConnection = con 
Com.CommandText = "select name from 'LDAP://" + objADsPath + "' where objectCategory='organizationalUnit'"
Set rs = Com.Execute
If rs.EOF <> True Then
    OUs = rs.GetRows(rs.RecordCount)
End If
rs.Close
con.Close

 smile в результате в массиве OUs имена всех Organization Unit'ов для того домена, который в defaultNamingContext прописан. 

localhost, большое спасибо! а этот раздел форума исключает любое программирование? 

не знаю как быть с лесом, будет ли с ним это работать, наверною забью просто - пусть скрипт будет лесонесовместимым. как часто встречаются леса?

теперь такая проблема. нужно создать политику назначения установки приложения и потом связать эту политику с выбранным OU (не уверен насчет терминологии). посредствам скрипта. кто-нибудь поможет?

Автор: localhost 13.3.2008, 18:13
Цитата(seevkaboorka @  13.3.2008,  16:25 Найти цитируемый пост)
теперь такая проблема. нужно создать политику назначения установки приложения и потом связать эту политику с выбранным OU (не уверен насчет терминологии). посредствам скрипта. кто-нибудь поможет? 

Как я понимаю, вам надо научиться работать с GPO. У вас GPMC установлена? Если нет - установите, и посмотрите в C:\Program Files\GPMC\Scripts готовые скрипты для работы с GPO. Но для удаленной установки на компьютеры конкретного OU, имхо, проще получить список компьютеров этого OU, а затем уже действовать по следующей схеме: 1) копирование файлов на удаленный компьютер 2) удаленный запуск установки с помощью WMI. По-крайней мере так организована установка агентов для разнообразных пакетов ПО.

Автор: seevkaboorka 13.3.2008, 19:39
Цитата(localhost @ 13.3.2008,  18:13)
...Но для удаленной установки на компьютеры конкретного OU, имхо, проще получить список компьютеров этого OU, а затем уже действовать по следующей схеме: 1) копирование файлов на удаленный компьютер 2) удаленный запуск установки с помощью WMI. По-крайней мере так организована установка агентов для разнообразных пакетов ПО.

нет, задача стоит в использовании средств AD. а именно назначить для всех машин одного OU на установку мой пакет msi. 


Автор: seevkaboorka 20.3.2008, 12:06
сделал. запустил adsiedit.msc - посмотрел как там всё. а потом пользовал:
Код

objADPath = "cn=Brench, dc=domain,dc=com"
Set obj = GetObject("LDAP://" + objADPath)
Set newObj =obj.Create ( "typeOfObject", "CN=" + ObjectGUID )
newObj.Put "someAttribute", "myValue"
newObj.SetInfo


бывает, что некоторые атрибуты объекта задавать нельзя (падает на вызове SetInfo), не задавайте их. smile  или, как посоветовали мне, "подредактируйте схему". 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)