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

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

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

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

   

Sid Salmon



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
[nocode]
'////////////////////////////////////////////////////////////////////////////
'
'    ISA Server Ad blocking import  / export script
'
'    Author:    Jim Harrison
'
'    Contact:    jim@isatools.org
'            www.ISAtools.org
'
'    Created:    4/15/02
'
'    Purpose:    Creates a destination set and a site & content rule to block advertisements in
'            web pages
'
'    Usage:    Either dbl-click it from Windows explorer or as "cscript ISA_Ads.vbs" from a
'            command line
'
'    History:    4/15/02    - First working version
'            4/20/02    - Fixed bug in SCR creation that would cause "conf can't be read"
'                    event log errors
'            12/17/02- Added HF65/SP1 fix (Q297324) to the script if file version is correct
'
'    ToDo:    Lots - see each section for small details
'            Make it Enterprise-policy aware
'            Make it merge-smart
'
'////////////////////////////////////////////////////////////////////////////
 
'so we don't lie to ourselves about our variables
Option Explicit
 
'global class for general use
Dim Tools
 
'Let's do this
Set Tools = New ISATools
Main
 
'Let's undo this
Set Tools = Nothing
 
 
'////////////////////////////////////////////////////////////////////////////
'
'    Sub Main
'
'    Purpose:    Handles the inital ISA and XML object creation and chains off to other routines
'            depending on the options chosen
'
'    Input:    None
'
'    Output:    XMLDocument and ISA objects for other routines
'
'    ToDo:    nothing?
'
'////////////////////////////////////////////////////////////////////////////
 
Sub Main
 
    'ISA variables
    Dim FPC
    Dim ISA
 
    'XML variables
    Dim XMLDoc
 
    'Create the ISA Server admin object
    Set FPC = CreateObject ( "FPC.Root" )
    FPC.Refresh
    Set ISA = FPC.Enterprise
 
    'create the XML document object
    Set XMLDoc = CreateObject ( "Microsoft.XMLDom" )
    XMLDoc.Async = False
 
    'Let's get someone to make a decision
    Select Case ImpExp
        Case "import":
            Import XMLDoc, ISA
            FixAuth ISA
        Case "export": Export XMLDoc, ISA
    End Select
 
End Sub
 
 
'////////////////////////////////////////////////////////////////////////////
'
'    Function ImpExp
'
'    Purpose:    Prompts the user for their choice of "Import" or "Export" and handles
'            incorrect input
'
'    Input:    from the user via Tools class input routine
'
'    Output:    returns one of two valid options to caller
'
'    ToDo:    nothing?
'
'////////////////////////////////////////////////////////////////////////////
 
Function ImpExp (  )
 
    Dim Answer
    Answer = LCase ( Tools.GetAns ( Tools.ImpExp, "Import" ) )
    Select Case Answer
        Case "import", "export": ImpExp = Answer
        Case Else:
            Tools.ShowErr ( Tools.OptsErr )
            ImpExp
    End Select
 
End Function
 
 
'////////////////////////////////////////////////////////////////////////////
'
'    Sub Import
'
'    Purpose:    Reads the input file and creates the destination set based on the data found
'            there
'
'    Input:    XMLDoc and ISA objects from sub Main
'            from the user via Tools class input routine
'            from the xml file
'
'    Output:    creates a destination set in ISA with data from source XML
'
'    ToDo:    add capability to read CSV, TSV as well as XML
'
'////////////////////////////////////////////////////////////////////////////
 
Sub Import  ( XMLDoc, ISA )
 
    On Error Resume Next
 
    Dim Ads
    Dim DestinationSet
    Dim Destination
    Dim OldDest
    Dim DType
    Dim Ans
    Dim InVal1
    Dim InVal2
    Dim InVal3
    Const DestExist = &h80070002
    Const Domain     = 0
    Const SingleIP    = 1
    Const IPRange    = 2
 
    Ans = Tools.GetAns ( Tools.SrcFileMsg, Tools.FileIn )
    If Tools.FindFile ( Ans ) Then
        Tools.FileIn = Ans
        XMLDoc.Load ( Tools.FileIn )
    Else
        Tools.ShowErr ( Tools.FNFMsg )
        Import XMLDoc, ISA
    End If
 
    Set Ads = XMLDoc.SelectSingleNode ( "Ads" )
 
    'try to create the DS, and ask] for merge if fails
    Set DestinationSet = MakeDs ( ISA )
 
    'came back to do it; let's see what there is to do
    For Each Destination in Ads.SelectNodes ( "Destination" )
 
        DType = CInt ( Destination.GetAttribute ( "Type" ) )
 
        Select Case DType
            Case Domain
                InVal1 = Destination.GetAttribute ( "DomainName" )
                InVal2 = ""
            Case SingleIP
                InVal1 = Destination.GetAttribute ( "IP_From" )
                InVal2 = ""
            Case IPRange
                InVal1 = Destination.GetAttribute ( "IP_From" )
                InVal2 = Destination.GetAttribute ( "IP_To" )
        End Select
 
        InVal3 = Destination.GetAttribute ( "Path" )
        DestinationSet.Add InVal1, InVal2, InVal3
 
        Err.Clear
 
    Next
 
    DestinationSet.Save
 
    MakeScr ISA
 
End Sub
 
 
'////////////////////////////////////////////////////////////////////////////
'
'    Function MakeDs
'
'    Purpose:    creates a destination set named according to user input
'
'    Input:    ISA object from Sub Import
'            from the user via Tools class input routine
'
'    Output:    returns a destination set object to sub Import
'
'    ToDo:    Ds Merge support
'
'////////////////////////////////////////////////////////////////////////////
 
Function MakeDs ( ISA )
 
    On Error Resume Next
    Dim Rtn
    Dim Ans
    Const DupDs = &h800700b7
 
    Err.Clear
    Rtn = Tools.GetAns ( Tools.DsQuery, Tools.DsName )
 
    Set MakeDs = ISA.PolicyElements.DestinationSets.Add ( Rtn )
    Select Case Err.Number
        Case 0
            Tools.DsName = Rtn
            MakeDs.Description = Tools.DsDescr
            Exit Function
        Case DupDs
            If Not Tools.AskYN ( Tools.DsDup ) Then
                If Not Tools.AskYN ( Tools.QuitMsg ) Then Set MakeDs = MakeDs ( ISA )
            End If
            Err.Clear
        Case Else
            If Not Tools.AskYN ( Tools.DsErr ) Then WScript.Quit
    End Select
 
    Set MakeDs = MakeDs ( ISA )
 
    Err.Clear
 
End Function
 
 
'////////////////////////////////////////////////////////////////////////////
'
'    Function MakeScr
'
'    Purpose:    creates a Site and Content Rule associated with the chosen destination set
'
'    Input:    XMLDoc and ISA objects from Import subroutine
'            from the user via Tools class input routine
'
'    Output:    creates a new S&C rule
'
'    ToDo:    option to change data in existing S&C Rule
'            ability to import this as well
'
'////////////////////////////////////////////////////////////////////////////
 
Function MakeScr ( ISA )
 
    On Error Resume Next
    Dim Rtn
    Dim TempScr
    Const DupScr = &h800700b7
    Const fpcArrayScope = 0
    Const fpcEnterpriseScope = 0
 
    Err.Clear
    Rtn = Tools.GetAns ( Tools.ScrQuery, Tools.ScrName )
 
    Set MakeScr = ISA.EnterprisePolicies.Item(0).SiteAndContentRules.Add ( Rtn )
'    Wscript.Echo "MakeScr ( " & Rtn & " ) = 0x" & Hex ( Err.Number )
    Select Case Err.Number
        Case 0
            Tools.ScrName = Rtn
        Case Else
            If Not Tools.AskYN ( Tools.ScrDup ) Then
                WScript.Quit
            Else
                Set MakeScr = MakeScr ( ISA )
            End If
    End Select
 
    MakeScr.Description = Tools.ScrDescr
    MakeScr.Enabled = "True"
    MakeScr.Action = "1"
    MakeScr.AppliesToContentMethod = "0"
    MakeScr.SetDestination "3", Tools.DsName
    MakeScr.SetSchedule  ( "Always" ), fpcEnterpriseScope
    MakeScr.AppliesToMethod = "0"
    MakeScr.Save
 
End Function
 
 
'////////////////////////////////////////////////////////////////////////////
'
'    Sub Export
'
'    Purpose:    Creates an xml file containing the data in the chosen destination set
'
'    Input:    from the user via Tools class input routines
'            properties of the specified destination set
'
'    Output:    creates an xml file according to user input
'
'    ToDo:    option to merge data in existing XML, CSV, TSV file
'
'////////////////////////////////////////////////////////////////////////////
 
Sub Export ( XMLDoc, ISA )
 
    Dim Ads
    Dim DestinationSet
    Dim Destination
    Dim Dest
    Dim DType
    Dim NewDest
    Dim Rtn
 
    'Destination set info
    Const Domain     = 0
    Const SingleIP    = 1
    Const IPRange    = 2
 
    AskDestFile
 
    Set DestinationSet = GetDs ( ISA )
 
    XMLDoc.LoadXML ( "<Ads/>" )
    Set Ads = XMLDoc.SelectSingleNode ( "Ads" )
    Ads.AppendChild ( XMLDoc.CreateComment ( Tools.XMLComm ) )
    For Each Destination in DestinationSet
        Set Dest = XMLDoc.CreateNode ( 1, "Destination", "" )
        Set NewDest = Ads.AppendChild ( Dest )
        DType = Destination.Type
        NewDest.SetAttribute "Type", DType
        Select Case DType
            Case Domain
                NewDest.SetAttribute "DomainName", Destination.DomainName
            Case SingleIP
                NewDest.SetAttribute "IP_From", Destination.IP_From
            Case IPRange
                NewDest.SetAttribute "IP_From", Destination.IP_From
                NewDest.SetAttribute "IP_To", Destination.IP_To
        End Select
        NewDest.SetAttribute "Path", Destination.Path
    Next
 
    XMLDoc.Save Tools.FileOut
 
    Tools.Showinfo "Done with the Export thingy.." & vbCrLf & "Saved it as: " & Tools.FileOut
 
End Sub
 
 
'////////////////////////////////////////////////////////////////////////////
'
'    Function AskDestFile
'
'    Purpose:    Prompts the user for a place to save the output file
'            Verifies the existence of the file
'
'    Input:    from the user via Tools class input routines
'
'    Output:    returns a verified file location
'
'    ToDo:    error checking and file merge support
'
'////////////////////////////////////////////////////////////////////////////
 
Function AskDestFile
 
    Dim Rtn
 
    'find out where to save the exported data
    AskDestFile = Tools.GetAns ( Tools.DestFileMsg, Tools.FileOut )
    If Tools.FindFile ( AskDestFile ) Then
        Tools.ShowErr ( Tools.FileExistsMsg )
        AskDestFile
    Else
        Tools.FileOut = AskDestFile
    End If
 
End Function
 
 
'////////////////////////////////////////////////////////////////////////////
'
'    Function GetDs
'
'    Purpose:    Prompts the user for the Destination Set of choice
'
'    Input:    ISA object from Export function
'            from the user via Tools class input routines
'            verifies the specified destination set
'
'    Output:    returns a DestinationSet object
'
'    ToDo:    error checking
'
'////////////////////////////////////////////////////////////////////////////
 
Function GetDs ( ISA )
 
    On Error Resume Next
    Dim Rtn
    'find out what Ds to export
    Rtn = Tools.GetAns ( Tools.DsQuery, Tools.DsName )
    Set GetDs = ISA.PolicyElements.DestinationSets.Item ( Rtn )
    If Err Then
        Tools.ShowErr ( Tools.DsErrMsg )
        Set GetDs = GetDs ( ISA )
    End If
    On Error Goto 0
 
End Function
 
 
'////////////////////////////////////////////////////////////////////////////
'
'    Sub FixAuth
'
'    Purpose:    Fixes auth popups if hp65 or SP1 is installed
'
'    Input:    ISA object from Main sub
'
'    Output:    Registry entry supporting ReturnDeniedIfAuthenticated
'            Some msgboxes
'
'    ToDo:    ??
'
'////////////////////////////////////////////////////////////////////////////
 
Sub FixAuth ( ISA )
 
    On Error Resume Next
 
    Dim VerArray
    Dim RealVer
    Dim FileVer: FileVer = Array( 3, 0, 1200, 65 )
    Dim BadVer: BadVer = False
    Dim WshShell
    Dim FSO
    Dim InstlFolder
    Dim Rtn
    Dim i    'counter
 
    Const W3Proxy = "W3Proxy.exe"
    Const RegRoot = "HKLM\System\CurrentControlSet\Services\W3proxy\Parameters\"
    Const RegEntry = "ReturnDeniedIfAuthenticated"
    Const RegVal = &h00000001
    Const RegType = "REG_DWORD"
 
    Set FSO = CreateObject( "Scripting.FileSystemObject" )
    Set WshShell = CreateObject( "WScript.Shell" )
 
    InstlFolder = ISA.Servers.GetContainingServer.InstallationDirectory & "\"
 
    'Find the interesting file version
    RealVer = FSO.GetFileVersion( InstlFolder & W3Proxy )
    If Err.Number <> 0 Then
        Wscript.Echo "Error 0x" & Hex( Err.Number ) & _
            " while trying to read the version of " & InstlFolder
            Err.Clear
        Exit Sub
    End If
 
    'make an array out of it
    VerArray = Split( RealVer, "." )
    If Err.Number <> 0 Then
        Wscript.Echo "Error 0x" & Hex( Err.Number ) & _
            " while trying to split " & RealVer
            Err.Clear
        Exit Sub
    End If
 
    'Compare the two arrays
    If UBound( VerArray ) = UBound( FileVer ) Then
        For i = 0 to UBound ( FileVer )
            If CLng( FileVer( i ) ) > CLng( VerArray( i ) ) Then
                BadVer = True
            End If
            If Err.Number <> 0 Then
                Wscript.Echo "Error 0x" & Hex( Err.Number ) & _
                    " while trying evaluate FileVer and VerArray"
                BadVer = True
            End If
            If BadVer Then  Exit For
        Next
    Else
        BadVer = True
    End If
 
    If Not BadVer Then
        Rtn = WshShell.RegRead( RegRoot & RegEntry )
        If ( Err.Number <> 0 )  Or ( Rtn = 0 ) Then
            If MsgBox( Tools.AuthOkMsg,  vbYesNo, Tools.ScriptTitle ) = vbYes Then
                Err.Clear
                WshShell.RegWrite RegRoot & RegEntry, RegVal, RegType
                If Err.Number = 0 Then
                    If MsgBox( Tools.RstW3msg,  vbYesNo, Tools.ScriptTitle ) = vbYes Then _
                        WshShell.Run "%ComSpec% /C net stop w3proxy && net start w3proxy", 10, False
                Else
                    Wscript.Echo "Error 0x" & Hex( Err.Number ) & _
                        " while trying to update the registry with" & RegRoot & RegEntry & _
                        " = " & RegVal & "; " & RegType
                        Err.Clear
                        Exit Sub
                End If
            End If
        End If
    Else
        Wscript.Echo InstlFolder & W3Proxy & " is not updated; file version = '" & RealVer & "'." & _
                    vbCrLf &  "You need to install ISA SP1 (http://support.microsoft.com/?id=313139)"
        Exit Sub
    End If
 
    On Error Goto 0
 
End Sub
 
 
'////////////////////////////////////////////////////////////////////////////
'
'    Class ISATools
'
'    Purpose:    the heart and soul of this beastie
'            contains all the common methods and properties needed by various subs
'            and functions
'
'    Input:    from subs and functions
'
'    Output:    returns properties and method results to calling routines
'
'    ToDo:    depends on functionality added to main Script
'
'////////////////////////////////////////////////////////////////////////////
 
Class ISATools
 
    'Script-specific text
    Private Version
    Public ScriptTitle
 
    'general mesages
    Private ImpExpMsg
    Private OptsErrMsg
    Private QuitMsg
 
    'File option Msgs
    Private CurrPath
    Private OutFileMsg1
    Private OutFileMsg2
    Private InFileMsg
    Private FileNotFound
 
    'file option variables
    Private OutFile
    Private InFile
 
    'destination set information
    Private DsQueryMsg
    Private DsDupMsg
    Private DsErrMsg
    Private Ds_Name
    Private Ds_Descr
    Private NoDsMsg
 
    'Site & Content Rule info
    Private ScrQueryMsg
    Private ScrDupMsg
    Private ScrErrMsg
    Private Scr_Name
    Private Scr_Descr
    Private NoScrMsg
 
    'Export XML data
    Private XMLComment
 
    ' Auth-fix specific messages
    Public AuthOkMsg
    Public RstW3Msg
 
    'Some useful objects
    Private WshShell
    Private FSO
 
    '////////////////////////////////////////////////////////////////////////////
    '
    '    Sub Class_Initialize
    '
    '    Purpose:    defines the default state for class properties
    '
    '    Input:    called by the "set Tools = New ISATools" command
    '
    '    Output:    Err.Success or Err.Failure to caller  ( intrinsic )
    '
    '    ToDo:    depends on changes in class
    '
    '////////////////////////////////////////////////////////////////////////////
 
    Private Sub Class_Initialize (  )
        'Create those useful objects
        Set WshShell = CreateObject ( "WScript.Shell" )
        Set FSO = CreateObject ( "Scripting.FileSystemObject" )
 
        'Script-specific text
        Version        = "2.1"
        ScriptTitle    = "ISA Server Ad import / export tool ver. "  & Version
 
        'General mesages
        ImpExpMsg    = "Do you want to Import or Export ad filter settings?"
        OptsErrMsg    = "Sorry; that's not a valid option"
        QuitMsg         = "Do you want to quit?"
 
        'Export XML data
        XMLComment    = "You can hand edit this file, but please do not change the format" & _
                    vbCrLf & "as the script depends on the present schema." & _
                    vbCrLf & vbCrLf & "This is a list of ad sites that I've compiled over time." & _
                    vbCrLf & "Feel free to add to it as you please." & _
                    vbCrLf & "So that we can keep things current, please email your additions back to" & _
                    vbCrLf & "jim@isatools.org for posting to my scripting site." & _
                    vbCrLf & vbCrLf & "If you want to hand-edit this, feel free to grab XMLNotepad from" &_
                    vbCrLf & "http://msdn.microsoft.com/library/en-us/dnxml/html/xpsetup.exe"
 
        'File variable defaults
        CurrPath        = Left ( WScript.ScriptFullName, Len ( WScript.ScriptFullName )-Len ( WScript.ScriptName ) )
        OutFile         = CurrPath & "ISA_Ads.xml"
        InFile        = OutFile
 
        'File option Msgs
        OutFileMsg1    = "Where do you want to put the export file?"
        OutFileMsg2    = "That file already exists; please choose another file name or path"
        InFileMsg        = "Where is the source file?"
        FileNotFound    = "I can't locate that file; please check the path and re-enter"
 
        'Ds messages
        DsDupMsg    = "That Destination Set already exists; would you like to create a new one?"
        DsErrMsg        = "Error 0x" & Hex ( Err.Number ) & " was encountered while trying to create the DS." & _
                        vbCrLf & "Would you like to try again?"
        DsQuerymsg    = "What Destination Set would you like to use?"
        NoDsMsg        = "The specified Destination Set was not found; please check your entry."
        Ds_Name        = "NoAds"
        Ds_Descr        = "Ad Blocking Destination Set"
 
        'Scr messages
        ScrDupMsg    = "That Site & content Rule already exists; would you like to create another?"
        ScrErrMsg    = "Error 0x" & Hex ( Err.Number ) & " was encountered while trying to create the SCR." & _
                        vbCrLf & "Would you like to try again?"
        ScrQuerymsg    = "What would you like to name the new Site & Content Rule?"
        NoScrMsg    = "The specified Site & Content Rule was not found; please check your entry."
        Scr_Name    = Ds_Name
        Scr_Descr    = "Ad Blocking Site & Content Rule"
 
        AuthOkMsg    = "I need to make a change to the Web Proxy service " & _
                        "to avoid auth popups (http://support.microsoft.com/?id=297324)" & _
                        vbCrLf & "Would you like me to do that for you?"
        RstW3msg    = "You'll need to restart the Web Proxy service to pick up the changes made..  " & _
                            vbCrLf & "Would you like me to do that for you?"
 
    End Sub
 
 
    '////////////////////////////////////////////////////////////////////////////
    '
    '    Sub Class_Terminate
    '
    '    Purpose:    destroys the class and its data
    '
    '    Input:    called by the "set Tools = Nothing" command
    '
    '    Output:    Err.Success or Err.Failure to caller  ( intrinsic )
    '
    '    ToDo:    depends on changes in class
    '
    '////////////////////////////////////////////////////////////////////////////
 
    Private Sub Class_Terminate (  )
        Set WshShell = Nothing
        Set FSO = Nothing
    End Sub
 
 
    '////////////////////////////////////////////////////////////////////////////
    '
    '    Class properties
    '
    '    Purpose:    provide access to global data via class
    '
    '    Input:    only for "property Let" actions
    '
    '    Output:    only for "property Get" actions
    '
    '    ToDo:    depends on changes in class
    '
    '////////////////////////////////////////////////////////////////////////////
 
    'Returns text held in ImpExpMsg variable
    Public Property Get ImpExp
        ImpExp = ImpExpMsg
    End Property
 
    'Returns text held in OutFile variable
    Public Property Get FileOut
        FileOut = OutFile
    End Property
 
    'Modifies text held in OutFile variable
    Public Property Let FileOut ( InVal )
        OutFile = InVal
    End Property
 
    'Returns text held in InFile variable
    Public Property Get FileIn
        FileIn = InFile
    End property
 
    'Modifies text held in InFile variable
    Public Property Let FileIn ( InVal )
        InFile = InVal
    End Property
 
    'Returns text held in OutFileMsg1 variable
    Public Property Get DestFileMsg
        DestFileMsg = OutFileMsg1
    End Property
 
    'Returns text held in OutFileMsg2 variable
    Public Property Get FileExistsMsg
        FileExistsMsg = OutFileMsg2
    End Property
 
    'Returns text held in InFileMsg variable
    Public Property Get SrcFileMsg
        SrcFileMsg = InFileMsg
    End property
 
    'Returns text held in FilenotFound variable
    Public Property Get FNFMsg
        FNFMsg = FileNotFound
    End Property
 
    'Returns text held in OptsErrMsg variable
    Public Property Get OptsErr
        OptsErr = OptsErrMsg
    End Property
 
    'Returns text held in DsQueryMsg variable
    Public Property Get DsQuery
        DsQuery = DsQueryMsg
    End property
 
    'Returns text held in NoDsmsg variable
    Public Property Get DsNFMsg
        DsNFMsg = NoDsMsg
    End property
 
    'Returns text held in DsDupMsg variable
    Public Property Get DsDup
        DsDup = DsDupMsg
    End Property
 
    'Returns text held in DsErrMsg variable
    Public Property Get DsErr
        DsErr = DsErrMsg
    End Property
 
    'Returns text held in Ds_Name variable
    Public Property Get DsName
        DsName = Ds_Name
    End Property
 
    'Modifies text held in Ds_Name variable
    Public Property Let DsName ( InVal )
        Ds_Name = InVal
    End Property
 
    'Returns text held in Ds_Descr variable
    Public Property Get DsDescr
        DsDescr = Ds_Descr
    End property
 
    'Returns text held in SrcQueryMsg variable
    Public Property Get ScrQuery
        ScrQuery = ScrQueryMsg
    End property
 
    'Returns text held in ScrDupMsg variable
    Public Property Get ScrDup
        ScrDup = ScrDupMsg
    End Property
 
    'Returns text held in ScrErrMsg variable
    Public Property Get ScrErr
        ScrErr = ScrErrMsg
    End Property
 
    'Returns text held in Scr_Name variable
    Public Property Get ScrName
        ScrName = Scr_Name
    End Property
 
    'Modifies text held in Scr_Name variable
    Public Property Let ScrName ( InVal )
        Scr_Name = InVal
    End Property
 
    'Returns text held in Scr_Descr variable
    Public Property Get ScrDescr
        ScrDescr = Scr_Descr
    End property
 
    'Returns text held in XMLComment variable
    Public Property Get XMLComm
        XMLComm = XMLComment
    End property
 
    '////////////////////////////////////////////////////////////////////////////
    '
    '    Class Methods
    '
    '    Purpose:    provide common actions via the class
    '
    '    Input:    only as required by each function
    '
    '    Output:    depends on the function
    '
    '    ToDo:    depends on changes in class
    '
    '////////////////////////////////////////////////////////////////////////////
 
    'Returns status of file existence  ( True/False )
    Public Function FindFile ( InVal )
        On Error Resume Next
        FindFile = FSO.GetFile ( InVal )
        If Err Then
            FindFile = False
        Else
            FindFile = True
        End If
        On Error Goto 0
    End Function
 
    'Returns status of user action when prompted with informational "Msg"
    Public Function ShowInfo ( Msg )
        ShowInfo = WshShell.Popup  ( Msg, 2,  ScriptTitle, vbInformation + vbOk )
    End Function
 
    'Returns status of user action when prompted with Error "Msg"
    Public Function ShowErr ( Msg )
        ShowErr = WshShell.Popup  ( Msg, 2,  ScriptTitle, vbExclamation + vbOk )
    End Function
 
    'Returns user input when prompted with "Msg" and provided with "Default" answer
    Public Function GetAns ( Msg, Default )
        Dim Answer
        Answer = InputBox ( Msg, ScriptTitle, Default )
        If Answer = "" Then
            If AskYN ( QuitMsg ) Then WScript.Quit
            GetAns Msg, Default
        Else
            GetAns = Answer
        End If
    End Function
 
    'Returns status of user action  ( Yes=True, No=False ) when prompted with "Msg"
    Public Function AskYN ( Msg )
        Select Case WshShell.Popup  ( Msg, , ScriptTitle, vbQuestion + vbYesNo )
            Case vbYes: AskYN = TRUE
            Case vbNo: AskYN = FALSE
            Case Else: AskYN = AskYN ( Msg )
        End Select
    End Function
 
End Class
[/nocode]

Всего записей: 195 | Зарегистр. 06-02-2003 | Отправлено: 08:04 02-08-2007
   

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

Компьютерный форум 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