Sk1f
Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору FreemanRU извиняюсь, это только часть скрипта, весь скрипт не хотел писать. У меня просто до вызова этих функций все отрабатывается и WScript.echo показывает все то как надо и должно будет использоваться в качестве параметров этих ф-ций, но вот только сами ф-ции отрабатываться не хотят. Весь скрипт: Цитата: Dim WshNet, WshShell, RootDSE Dim objOU Dim LocalDomainGroup, GlobalGroup, LocalDomainGroup1, GlobalGroup1 Dim strResourceOUDN, strResource Dim strResourceGr Dim disName ' Const for Group Const ADS_GROUP_TYPE_LOCAL_GROUP = &h4 Const ADS_GROUP_TYPE_SECURITY_ENABLED = &h80000000 Const ADS_GROUP_TYPE_GLOBAL_GROUP = &h2 Const ADS_PROPERTY_APPEND= 3 Set WshShell = Wscript.CreateObject("Wscript.Shell") Set WshNet = WScript.CreateObject("WScript.Network") Set RootDSE = GetObject("LDAP://RootDSE") Set DefaultDomain = GetObject("LDAP://" & RootDSE.Get("DefaultNamingContext")) WScript.Echo DefaultDomain.distinguishedName WScript.Echo VbCrLf On Error Resume Next '----------------------------------------------------------------------------------' ' Создание группы Sub CrGroup(strN1,strPath, t) Set objGr = GetObject("LDAP://" & strPath) Set objCr = objGr.Create("Group", "cn="& strN1) objCr.Put "sAMAccountName", ""& strN1 If t=0 Then objCr.Put "groupType", ADS_GROUP_TYPE_GLOBAL_GROUP Or ADS_GROUP_TYPE_SECURITY_ENABLED ElseIf t=1 Then objCr.Put "groupType",ADS_GROUP_TYPE_LOCAL_GROUP Or ADS_GROUP_TYPE_SECURITY_ENABLED End If objCr.SetInfo objGroup.SetInfo End Sub '----------------------------------------------------------------------------------' ' Проверка на PR Function GroupPR(group_name,path,n) stroka = ".*\sPR$" objfin=group_name ' cn find = objfin.test(stroka) ' ,было выяснено, что ошибка в этом месте. Но решить не могу If n=0 And find = False Then strPath = Replace(path, "CN=" & group_name & ",","") GlobalGroup = "" & group_name & " PR" WScript.Echo strPath WScript.Echo GlobalGroup 'Call CrGroup(GlobalGroup, strPath,0) ElseIf n=1 And find = False Then LocalDomainGroup ="" & group_name & " PR" 'Call CrGroup(LocalDomainGroup, strPath,1) End If On Error goto 0 End Function '----------------------------------------------------------------------------------' '----------------------------------------------------------------------------------' strResourceOUDN = "OU=Test," & RootDSE.Get("DefaultNamingContext") Set objOU = GetObject("LDAP://" & strResourceOUDN) objOU.Filter = Array("organizationalUnit") ' Получение OU 1-го уровня For Each oOU In objOU strResource = oOU.distinguishedName 'WScript.Echo strResource ' Получение групп в OU 1-го уровня Set objListGrp1 = GetObject("LDAP://" & strResource) ObjListGrp1.Filter = Array("Group") For Each objGroup In objListGrp1 intGrpType = objGroup.get("GroupType") If intGrpType And ADS_GROUP_TYPE_GLOBAL_GROUP Then strGlobalname = objGroup.cn strGlobalpath = objGroup.distinguishedName 'WScript.Echo strGlobalname 'WScript.Echo strGlobalpath ' Call GroupPR(objGroup.cn, objGroup.distinguishedName, 0) ' ElseIf intGrpType And ADS_GROUP_TYPE_LOCAL_GROUP Then strLocalResGR = objGroup.distinguishedName strLocalname = objGroup.cn LocalGrp = objGroup 'WScript.Echo "Local " & strLocalname 'WScript.Echo "Local " & strLocalResGR 'Call GroupPR(strLocalname, strLocalResGR, 1) End If Next Next | А как правильно работать с Regular Expressions в VBscript я не нашел. Поэтому кто что сможет помочь. Мне фактически нужно сделать проверку на наличие в списке группы выражения " PR" | Всего записей: 198 | Зарегистр. 04-04-2006 | Отправлено: 09:38 05-05-2006 | Исправлено: Sk1f, 12:59 05-05-2006 |
|