YNY
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору 'on error resume next const ADS_SCOPE_SUBTREE = 2 ' или 0 если не интересны вложенные ОУ Set objArgs = WScript.Arguments 'используем пар-ры комм строки 'objArgs(0) -- с какова мм/дд/гггг на 'objArgs(1) какой день недели (от 0-воскр до 6- субб) будет перенос DIM WeekAccess1(6,2)'(0-6),0-воскресенье,(0-2) -- по 8-мь часов if (objArgs.Count<>2) then msgbox "Не достаточно инфы",vbExclamation else Set fso = CreateObject("Scripting.FileSystemObject") if Now>objArgs(0) then msgbox "Параметры не верно указаны, т.е указывают на прошлое!",vbCritical else if (Weekday(Now,0)=1) then MAIN(1)' -- Upload else MAIN(0)' -- Change and Backup end if end if end if '23 SUB MAIN(BloadU) Set objConnection = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") objConnection.Provider = "ADsDSOObject" objConnection.Open "Active Directory Provider" '29 Set objCOmmand.ActiveConnection = objConnection objCommand.CommandText = _ "Select * from 'LDAP://DC=Myh,DC=local' " _ & "Where objectClass='User' and objectCategory='person'" 'objCommand.Properties("Page Size") = 2000 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE Set rs = objCommand.Execute rs.MoveFirst '39 Do Until rs.EOF For i = 0 To rs.Fields.Count - 1 ' For Single Value attribute. 'Wscript.Echo rs.Fields(i).Name, " = ", rs.Fields(i).Value 'lstResult.AddItem rs.Fields(i).Value if (ChkLAcc(rs.Fields(i).Value)=false) then Set oUserBU = GetObject(rs.Fields(i).Value) fmis=oUserBU.Get("Name") if BloadU=1 then '54 'start upload parameters 'msgbox "upload" Dim rLoginHours(20) Set f = fso.OpenTextFile("c:\"& fmis & ".txt", 1) for i2=0 to 6 for j2=1 to 3 'WeekAccess1(i2,j2-1)=cByte(f.Readline) df=df+1 rLoginHours(df-1)=rLoginHours(df-1) & cByte(f.Readline) next next f.Close 'msgbox tm 'msgbox VarType(rLoginHours) Set UpoUser = GetObject(rs.Fields(i).Value) UpoUser.PutEX 1, "LogonHours", "0" 'сбрасываем в сост по умолчанию UpoUser.SetInfo UpoUser.Put "LogonHours", rLoginHours 'пытаемся обновить из файла UpoUser.SetInfo else '66 'start backup CrArrWeek(rs.Fields(i).Value) Set f = fso.OpenTextFile("c:\"&fmis&".txt", 2, True) for i1=0 to 6 for j1=0 to 2 f.writeline Cstr(ascb(WeekAccess1(i1,j1))) next next f.Close end if end if '77 next rs.MoveNext Loop END SUB '83 чекаем локальные и встроенные аккаунты Function ChkLAcc(FDQNAccName) const LAC0="IUSR_" const LAC1="IWAM_" const LAC2="SUPPORT_" const LAC3="krbtgt" on error resume next ChkLAcc=False Set objUser = GetObject(FDQNAccName) '92 if IsNull(objUser.Get("Description")) then exit function if instr(objUser.Get("Description"),"Встроенная")_ OR instr(objUser.Get("Name"),LAC0)_ OR instr(objUser.Get("Name"),LAC1)_ OR instr(objUser.Get("Name"),LAC2)_ OR instr(objUser.Get("Name"),LAC3) then ChkLAcc=true Set objUser = Nothing exit function end if End Function '104 SUB CrArrWeek(FDQNAccName) Set oUser = GetObject(FDQNAccName) LoginHours = oUser.LoginHours for k=0 to 6 for y=1 to 3 n=n+1 'msgbox midb(LoginHours,n,1) WeekAccess1(k,y-1)=midb(LoginHours,n,1) next 'msgbox Cstr(ascb(WeekAccess1(k,0)))&Cstr(ascb(WeekAccess1(k,1)))&Cstr(ascb(WeekAccess1(k,2))) next End SUB | Всего записей: 476 | Зарегистр. 18-05-2006 | Отправлено: 15:57 10-04-2011 | Исправлено: YNY, 16:31 10-04-2011 |
|