Вопрос : Script для того чтобы извлечь группы от «члена» групп в списке учета потребителя

О'КЕЙО, я иду попытать описать мой запрос как можно ясно.  Мне не буду scripting специалистом всеми серединами и не нужно много помощь сделать это.  Я проверял на всем интернет для того чтобы найти что-то будет работать что я могу построить дальше, но могло только найти малый пример который я наклею ниже. Здесь моя ситуация:

We имеет очень большой домен 2003 ОБЪЯВЛЕНИЯ Windows с много OU чего я имею управленческие права над одиночным местом (звоноком оно OU=A). Мы имеем много потребителей двинуть внутри к, и из, нашему OU. Когда мы двигаем потребителя «из» нашего OU нам нужно извлечь все группы существуют в «члене» платы в ADUC ассоциированном с нашим местом (OU=A). Пока это будет просто процесс когда движение для от 1 до 15 потребителей оно получает очень больше работы интенсивнейшим когда мы должны двинуть от 50 до 100 потребителей.  Мы часто получаем эти запросы с потребителями зарегистрированный в электронная таблица Эксел. Я хотел был бы script этот процесс путем принимать преимущество электронная таблица.  

As всегда, там будет несколько задвижки. 1) учет потребителя может иметь группу обеспеченностью от другого OU места, который должен быть проигнорирован потому что мой учет admin не будет извлечь его. 2) нам нужно извлечь группы глобального, домена Local, универсалии, и распределения которые находятся в нашем OU места (OU=A). Любой группе существует в моем OU места (звоноке оно OU=A) будет нужно быть фрагмент Кодего removed.
The VB я нашел под им не могу быть направлением вы пошли бы, поэтому я открыт к резюму Next

Const ошибки suggestions

* VBScript

On ADS_PROPERTY_DELETE = 4
Const objUser
Set E_ADS_PROPERTY_NOT_FOUND = &h8000500D
= _
GetObject («LDAP: //cn=cn=username, ou=A, ou=SITES, dc=OURDC, dc=OURDC, dc=COM»)
arrMemberOf =
If
objUser.GetEx («memberOf») Err.Number = E_ADS_PROPERTY_NOT_FOUND этого учета/> Then
For
WScript.Quit
End If
каждая группа в objGroup arrMemberOf
установленном = GetObject («LDAP: /» &
objGroup.PutEx ADS_PROPERTY_DELETE группы), _
«член», проблема
objGroup.SetInfo
Next

The блока («cn=username, ou=A, ou=SITES, dc=OURDC, dc=OURDC, dc=COM») с этим Кодим что она для одиночного потребителя и не вызывать архив Эксел с списком потребителей. Также, я не думаю он отрегулирует группы которые находятся в по-разному OU места, но я не положитен о this.

In долгосрочность, котор я хотел был бы сделать этим сердечник из более большого сценария который подтверждает имя потребителя прежде чем оно извлекает группы тогда двигает почтовые ящики обменом 2007 потребителей к группе хранения сцены или удерживания, которая уже существует (я могу заполнить внутри те пробелы если я могу получить правильные команды и синтаксис). упование

I я объяснил это ясно достаточно.  Спасибо заранее для ваших помощи и консультации.  
class=

Ответ : Script для того чтобы извлечь группы от «члена» групп в списке учета потребителя

я изменил сценарий к журналу к архиву вместо выхода к пульту.
архив находится под c:\temp\shdrv.log
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
Вариант точный

Const ADS_PROPERTY_DELETE = 4 
Const ADS_GROUP_TYPE_GLOBAL_GROUP = &h2
Const ADS_GROUP_TYPE_LOCAL_GROUP = &h4
Const ADS_GROUP_TYPE_UNIVERSAL_GROUP = &h8
Const ADS_GROUP_TYPE_SECURITY_ENABLED = &h80000000

тусклый родитель, intRow, потребители, потребитель
Тусклое objDelGroup, objRootLDAP, objGroup, objUser, objOU, objmemberOf
Тусклое objParent, objWorkbook, objExcel, strValue, strMail, strDescription, strInfo, intgroupType, distinguishedName, strSAMAccountName
тусклое groupParentLdap, strName, strUser, strDNSDomain, strLDAP, strList, корень

Установите objFSO = CreateObject («Scripting.FileSystemObject»)
Установите objInputFile = objFSO.CreateTextFile («c:\temp\shdrv.log», 2)

const ROOT_OU = «ou=»

'прочитайте списоков пользователей от первенствуйте архив
Установите objExcel = CreateObject («Excel.Application»)
Установите objWorkbook = objExcel.Workbooks.Open (" C:\temp\users _list.xls»)

intRow = 1
потребитель = objExcel.Cells (intRow, 1).Value

Не сделать до потребителя = ""
        если потребители = "" после этого
                потребители = потребитель
        еще 
                потребители = потребители & «,» & потребитель
        закончитесь если
        
    intRow = intRow + 1
        потребитель = objExcel.Cells (intRow, 1).Value
Петля


Установите objRootLDAP = GetObject («LDAP: //RootDSE»)
strDNSDomain = objRootLDAP.Get («DefaultNamingContext»)
корень = «LDAP: /» & ROOT_OU & «,» & strDNSDomain
корень objInputFile.WriteLine

RecurseOUs GetObject (корень)

Sub RecurseOUs (objOU)
        Тусклое objOUObject, strConnString
        Для каждого objOUObject в objOU
                Если ое UCase, то ((objOUObject.Name, 3)) = «OU=» после этого
                        strConnString = objOUObject.DistinguishedName
                        objInputFile.WriteLine strConnString
                        Установите ObjUser = GetObject («LDAP: /» & strConnString)

                        CheckUser strConnString
                        RecurseOUs ObjUser
                        Закончитесь если
        Затем
Подводная лодка конца

Sub CheckUser (strConnString)
        На резюме ошибки затем

        для каждого потребителя в разделении (потребителях, «, ")
                objInputFile.WriteLine
                потребитель objInputFile.WriteLine «: » & потребитель
                
                strUser = " cn= " & потребитель & «,»
                strLDAP = " LDAP: /«& strUser & strConnString
                strLDAP objInputFile.WriteLine
                Установите objUser = GetObject (strLDAP)
                Если Err.Number = 0 после этого
      
                        Установленное objParent = GetObject (GetObject (objUser.Parent). Родитель)
                        objParent.GetInfo
                        
                        родитель = заменяет ть (objParent.Name, «CN=», "")
                        место родителя objInputFile.WriteLine «: » & родитель
                        
                        objmemberOf  = objUser.GetEx («memberOf»)
                        Для каждого objGroup в objmemberOf
                                objInputFile.WriteLine
                                группа LDAP objInputFile.WriteLine «: » & objGroup 
                                
                                Установите objGroup = GetObject («LDAP: /» & objGroup)
                                objGroup.GetInfo

                                strName = objGroup.Get («имя»)
                                strSAMAccountName = objGroup.Get («sAMAccountName»)
                                intgroupType = objGroup.Get («groupType»)
                                distinguishedName = objGroup.Get («distinguishedName»)
                                 
                                distinguishedName objInputFile.WriteLine «: » & distinguishedName
                                имя objInputFile.WriteLine «: » & strName
                                sAMAccountName objInputFile.WriteLine «: » & strSAMAccountName
                                 
                                Объем группы WScript.StdOut.Write «: »
                                Если intGroupType И ADS_GROUP_TYPE_LOCAL_GROUP после этого
                                  objInputFile.WriteLine «local домена»
                                intGroupType ElseIf И ADS_GROUP_TYPE_GLOBAL_GROUP после этого
                                  objInputFile.WriteLine «глобальное»
                                intGroupType ElseIf И ADS_GROUP_TYPE_UNIVERSAL_GROUP после этого
                                  objInputFile.WriteLine «универсалия»
                                Еще
                                  objInputFile.WriteLine «неисвестне»
                                Закончитесь если
                                 
                                Тип группы WScript.StdOut.Write «: »
                                Если intGroupType И ADS_GROUP_TYPE_SECURITY_ENABLED после этого
                                  objInputFile.WriteLine «группа обеспеченностью»
                                Еще
                                  objInputFile.WriteLine «группа распределения»
                                Закончитесь если
                                 
                                objInputFile.WriteLine
                                objInputFile.WriteLine «***** утверждая ******** группы потребителя [СТАРТА]»
                                objInputFile.WriteLine «искать» & родитель & «в» & distinguishedName
                                
                                если InStr, то (UCase (distinguishedName), UCase (родитель)) > 0 после этого
                                        objInputFile.WriteLine «группа» & strName & «находится под таким же местом как потребитель» & потребитель
                                        groupParentLdap = «LDAP: /» & ROOT_OU & «,» & strDNSDomain
                                        objInputFile.WriteLine «подготовляют извлечь группу» & strName &  «от» & groupParentLdap
                                        Установите objDelGroup = GetObject (groupParentLdap)
                                        objDelGroup.Delete «группа», «cn=» & strName                     
                                        извлеклось objInputFile.WriteLine «группа» & strName & «»
                                закончитесь если 
                                
                                objInputFile.WriteLine «***** утверждая ******** группы потребителя [КОНЦА]»
                                objInputFile.WriteLine
                        Затем
                Закончитесь ЕСЛИ
        Затем
Подводная лодка конца

objInputFile.Close
WScript.Quit
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us