Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 2

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

ShriEkeR (23-05-2011 23:06): Автоматизация администрирования. Часть 3  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

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
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » Автоматизация администрирования. Часть 2
ShriEkeR (23-05-2011 23:06): Автоматизация администрирования. Часть 3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru