• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Restart.vbs源代码可以重启远程电脑的vbs
    复制代码 代码如下:

    '********************************************************************
    '*
    '* File:           Restart.vbs
    '* Created:        March 1999
    '* Version:        1.0
    '*
    '*  Main Function:  Shutsdown, PowerOff, LogOff, Restarts a machine.
    '*
    '*  Restart.vbs    /S server> [/U username>] [/W password>] 
    '*                 [/O outputfile>] [/L} [/P] [/R] [/Q] [/F] [/T time in seconds>]
    '*
    '* Copyright (C) 1999 Microsoft Corporation
    '*
    '********************************************************************

    OPTION EXPLICIT

        'Define constants
        CONST CONST_ERROR                   = 0
        CONST CONST_WSCRIPT                 = 1
        CONST CONST_CSCRIPT                 = 2
        CONST CONST_SHOW_USAGE              = 3
        CONST CONST_PROCEED                 = 4

        'Shutdown Method Constants
        CONST CONST_SHUTDOWN                = 1
        CONST CONST_LOGOFF                  = 0
        CONST CONST_POWEROFF                = 8
        CONST CONST_REBOOT                  = 2
        CONST CONST_FORCE_REBOOT            = 6
        CONST CONST_FORCE_POWEROFF          = 12
        CONST CONST_FORCE_LOGOFF            = 4
        CONST CONST_FORCE_SHUTDOWN          = 5

        'Declare variables
        Dim intOpMode, i
        Dim strServer, strUserName, strPassword, strOutputFile
        Dim blnLogoff, blnPowerOff, blnReBoot, blnShutDown
        Dim blnForce
        Dim intTimer
        Dim UserArray(3)
        Dim MyCount

        'Make sure the host is csript, if not then abort
        VerifyHostIsCscript()

        'Parse the command line
        intOpMode = intParseCmdLine(strServer     ,  _
                                    strUserName   ,  _
                                    strPassword   ,  _
                                    strOutputFile ,  _
                                    blnLogoff     ,  _
                                    blnPowerOff   ,  _
                                    blnReBoot     ,  _
                                    blnShutdown   ,  _
                                    blnForce      ,  _
                                    intTimer         )

        Select Case intOpMode

            Case CONST_SHOW_USAGE
                Call ShowUsage()

            Case CONST_PROCEED                 
                Call Reboot(strServer     , _
                              strOutputFile , _
                              strUserName   , _
                              strPassword   , _
                              blnReboot     , _
                              blnForce      , _
                              intTimer        )

                Call LogOff(strServer     , _
                              strOutputFile , _
                              strUserName   , _
                              strPassword   , _
                              blnLogoff     , _
                              blnForce      , _
                              intTimer        )

                Call PowerOff(strServer     , _
                              strOutputFile , _
                              strUserName   , _
                              strPassword   , _
                              blnPowerOff   , _
                              blnForce      , _
                              intTimer        )

                Call ShutDown(strServer     , _
                              strOutputFile , _
                              strUserName   , _
                              strPassword   , _
                              blnShutDown   , _
                              blnForce      , _
                              intTimer        )

            Case CONST_ERROR
                'Do Nothing

            Case Else                    'Default -- should never happen
                Call Wscript.Echo("Error occurred in passing parameters.")

        End Select


    '********************************************************************
    '*
    '* Sub Reboot()
    '*
    '* Purpose: Reboots a machine.
    '*
    '* Input:   strServer           a machine name
    '*          strOutputFile       an output file name
    '*          strUserName         the current user's name
    '*          strPassword         the current user's password
    '*          blnForce            specifies whether to force the logoff
    '*          intTimer            specifies the amount of time to perform the function
    '*
    '* Output:  Results are either printed on screen or saved in strOutputFile.
    '*
    '********************************************************************
    Private Sub Reboot(strServer, strOutputFile, strUserName, strPassword, blnReboot, blnForce, intTimer)


        ON ERROR RESUME NEXT

        Dim objFileSystem, objOutputFile, objService, objEnumerator, objInstance
        Dim strQuery, strMessage
        Dim intStatus
        ReDim strID(0), strName(0)

        if blnreboot = false then
             Exit Sub
        End if

        if intTimer > 0 then
            wscript.echo "Rebooting machine "  strServer  " in "  intTimer  " seconds..."
            wscript.sleep (intTimer * 1000)
        End if

        'Open a text file for output if the file is requested
        If Not IsEmpty(strOutputFile) Then
            If (NOT blnOpenFile(strOutputFile, objOutputFile)) Then
                Call Wscript.Echo ("Could not open an output file.")
                Exit Sub
            End If
        End If

        'Establish a connection with the server.
        If blnConnect("root\cimv2" , _
                       strUserName , _
                       strPassword , _
                       strServer   , _
                       objService  ) Then
            Call Wscript.Echo("")
            Call Wscript.Echo("Please check the server name, " _
                             "credentials and WBEM Core.")
            Exit Sub
        End If

        strID(0) = ""
        strName(0) = ""
        strMessage = ""
        strQuery = "Select * From Win32_OperatingSystem"

        Set objEnumerator = objService.ExecQuery(strQuery,,0)
        If Err.Number Then
            Print "Error 0x"  CStr(Hex(Err.Number))  " occurred during the query."
            If Err.Description > "" Then
                Print "Error description: "  Err.Description  "."
            End If
            Err.Clear
            Exit Sub
        End If

        i = 0
        For Each objInstance in objEnumerator
            If blnForce Then
                intStatus = objInstance.Win32ShutDown(CONST_FORCE_REBOOT)
            Else
                intStatus = objInstance.Win32ShutDown(CONST_REBOOT)
            End If

            IF intStatus = 0 Then
                strMessage = "Reboot a machine "  strServer  "."
            Else
                strMessage = "Failed to reboot a machine "  strServer  "."
            End If
            Call WriteLine(strMessage,objOutputFile)
        Next

        If IsObject(objOutputFile) Then
            objOutputFile.Close
            Call Wscript.Echo ("Results are saved in file "  strOutputFile  ".")
        End If
    End Sub


    '********************************************************************
    '*
    '* Sub LogOff()
    '*
    '* Purpose: Logs off the user currently logged onto a machine.
    '*
    '* Input:   strServer           a machine name
    '*          strOutputFile       an output file name
    '*          strUserName         the current user's name
    '*          strPassword         the current user's password
    '*          blnForce            specifies whether to force the logoff
    '*          intTimer            specifies the amount of time to preform the function
    '*
    '* Output:  Results are either printed on screen or saved in strOutputFile.
    '*
    '********************************************************************
    Private Sub LogOff(strServer, strOutputFile, strUserName, strPassword, blnLogoff, blnForce, intTimer)


        ON ERROR RESUME NEXT

        Dim objFileSystem, objOutputFile, objService, objEnumerator, objInstance
        Dim strQuery, strMessage
        Dim intStatus
        ReDim strID(0), strName(0)

         If blnlogoff = false then
              Exit Sub
         End if

        if intTimer > 1 then 
         wscript.echo "Logging off machine "  strServer  " in "  intTimer  " seconds..."
            wscript.sleep (intTimer * 1000)
        End if

        'Open a text file for output if the file is requested
        If Not IsEmpty(strOutputFile) Then
            If (NOT blnOpenFile(strOutputFile, objOutputFile)) Then
                Call Wscript.Echo ("Could not open an output file.")
                Exit Sub
            End If
        End If

        'Establish a connection with the server.
        If blnConnect("root\cimv2" , _
                       strUserName , _
                       strPassword , _
                       strServer   , _
                       objService  ) Then
            Call Wscript.Echo("")
            Call Wscript.Echo("Please check the server name, " _
                             "credentials and WBEM Core.")
            Exit Sub
        End If

        strID(0) = ""
        strName(0) = ""
        strMessage = ""
        strQuery = "Select * From Win32_OperatingSystem"

        Set objEnumerator = objService.ExecQuery(strQuery,,0)
        If Err.Number Then
            Print "Error 0x"  CStr(Hex(Err.Number))  " occurred during the query."
            If Err.Description > "" Then
                Print "Error description: "  Err.Description  "."
            End If
            Err.Clear
            Exit Sub
        End If

        i = 0
        For Each objInstance in objEnumerator
            If blnForce Then
                intStatus = objInstance.Win32ShutDown(CONST_FORCE_LOGOFF)
            Else
                intStatus = objInstance.Win32ShutDown(CONST_LOGOFF)
            End If

            IF intStatus = 0 Then
                strMessage = "Logging off the current user on machine "  _
                             strServer  "..."
            Else
                strMessage = "Failed to log off the current user from machine " _
                     strServer  "."
            End If
            Call WriteLine(strMessage,objOutputFile)
        Next

        If IsObject(objOutputFile) Then
            objOutputFile.Close
            Call Wscript.Echo ("Results are saved in file "  strOutputFile  ".")
        End If
    End Sub


    '********************************************************************
    '*
    '* Sub PowerOff()
    '*
    '* Purpose: Powers off a machine.
    '*
    '* Input:   strServer           a machine name
    '*          strOutputFile       an output file name
    '*          strUserName         the current user's name
    '*          strPassword         the current user's password
    '*          blnForce            specifies whether to force the logoff
    '*          intTimer            specifies the amount of time to perform the function
    '*
    '* Output:  Results are either printed on screen or saved in strOutputFile.
    '*
    '********************************************************************
    Private Sub PowerOff(strServer, strOutputFile, strUserName, strPassword, blnPowerOff, blnForce, intTimer)


        ON ERROR RESUME NEXT

        Dim objFileSystem, objOutputFile, objService, objEnumerator, objInstance
        Dim strQuery, strMessage
        Dim intStatus
        ReDim strID(0), strName(0)

          if blnPoweroff = false then
                 Exit sub
          End if

        If intTimer > 0 then     
            wscript.echo "Powering off machine "  strServer  " in "  intTimer  " seconds..."
        wscript.sleep (intTimer * 1000)
        End if

        'Open a text file for output if the file is requested
        If Not IsEmpty(strOutputFile) Then
            If (NOT blnOpenFile(strOutputFile, objOutputFile)) Then
                Call Wscript.Echo ("Could not open an output file.")
                Exit Sub
            End If
        End If

        'Establish a connection with the server.
        If blnConnect("root\cimv2" , _
                       strUserName , _
                       strPassword , _
                       strServer   , _
                       objService  ) Then
            Call Wscript.Echo("")
            Call Wscript.Echo("Please check the server name, " _
                             "credentials and WBEM Core.")
            Exit Sub
        End If

        strID(0) = ""
        strName(0) = ""
        strMessage = ""
        strQuery = "Select * From Win32_OperatingSystem"

        Set objEnumerator = objService.ExecQuery(strQuery,,0)
        If Err.Number Then
            Print "Error 0x"  CStr(Hex(Err.Number))  " occurred during the query."
            If Err.Description > "" Then
                Print "Error description: "  Err.Description  "."
            End If
            Err.Clear
            Exit Sub
        End If

        i = 0
        For Each objInstance in objEnumerator
            If blnForce Then
                intStatus = objInstance.Win32ShutDown(CONST_FORCE_POWEROFF)
            Else
                intStatus = objInstance.Win32ShutDown(CONST_POWEROFF)
            End If

            IF intStatus = 0 Then
                strMessage = "Power off machine "  strServer  "."
            Else
                strMessage = "Failed to power off machine "  strServer  "."
            End If
            Call WriteLine(strMessage,objOutputFile)
        Next

        If IsObject(objOutputFile) Then
            objOutputFile.Close
            Call Wscript.Echo ("Results are saved in file "  strOutputFile  ".")
        End If
    End Sub


    '********************************************************************
    '*
    '* Sub Shutdown()
    '*
    '* Purpose: Shutsdown a machine.
    '*
    '* Input:   strServer           a machine name
    '*          strOutputFile       an output file name
    '*          strUserName         the current user's name
    '*          strPassword         the current user's password
    '*          blnForce            specifies whether to force the logoff
    '*          intTimer            specifies the amount of time to perform the function
    '*
    '* Output:  Results are either printed on screen or saved in strOutputFile.
    '*
    '********************************************************************
    Private Sub Shutdown(strServer, strOutputFile, strUserName, strPassword, blnShutDown, blnForce, intTimer)


        ON ERROR RESUME NEXT

        Dim objFileSystem, objOutputFile, objService, objEnumerator, objInstance
        Dim strQuery, strMessage
        Dim intStatus
        ReDim strID(0), strName(0)

        If blnShutdown = False then
              Exit Sub
        End if   

        if intTimer > 0 then 
                  wscript.echo "Shutting down computer "  strServer  " in "  intTimer  " seconds..."
             wscript.sleep (intTimer * 1000)
        End if


        'Open a text file for output if the file is requested
        If Not IsEmpty(strOutputFile) Then
            If (NOT blnOpenFile(strOutputFile, objOutputFile)) Then
                Call Wscript.Echo ("Could not open an output file.")
                Exit Sub
            End If
        End If

        'Establish a connection with the server.
        If blnConnect("root\cimv2" , _
                       strUserName , _
                       strPassword , _
                       strServer   , _
                       objService  ) Then
            Call Wscript.Echo("")
            Call Wscript.Echo("Please check the server name, " _
                             "credentials and WBEM Core.")
            Exit Sub
        End If

        strID(0) = ""
        strName(0) = ""
        strMessage = ""
        strQuery = "Select * From Win32_OperatingSystem"

        Set objEnumerator = objService.ExecQuery(strQuery,,0)
        If Err.Number Then
            Print "Error 0x"  CStr(Hex(Err.Number))  " occurred during the query."
            If Err.Description > "" Then
                Print "Error description: "  Err.Description  "."
            End If
            Err.Clear
            Exit Sub
        End If

        i = 0
        For Each objInstance in objEnumerator
            If blnForce Then
                intStatus = objInstance.Win32ShutDown(CONST_FORCE_SHUTDOWN)
            Else
                intStatus = objInstance.Win32ShutDown(CONST_SHUTDOWN)
            End If

            IF intStatus = 0 Then
                strMessage = "Shuts down machine "  strServer  "."
            Else
                strMessage = "Failed to shutdown machine "  strServer  "."
            End If
            Call WriteLine(strMessage,objOutputFile)
        Next

        If IsObject(objOutputFile) Then
            objOutputFile.Close
            Call Wscript.Echo ("Results are saved in file "  strOutputFile  ".")
        End If
    End Sub



    '********************************************************************
    '*
    '* Function intParseCmdLine()
    '*
    '* Purpose: Parses the command line.
    '* Input:   
    '*
    '* Output:  strServer         a remote server ("" = local server")
    '*          strUserName       the current user's name
    '*          strPassword       the current user's password
    '*          strOutputFile     an output file name
    '*          intTimer          amount of time in seconds
    '*
    '********************************************************************
    Private Function intParseCmdLine( ByRef strServer,        _
                                      ByRef strUserName,      _
                                      ByRef strPassword,      _
                                      ByRef strOutputFile,    _
                                      ByRef blnLogoff,        _
                                      ByRef blnShutdown,      _
                                      ByRef blnReboot,        _
                                      ByRef blnPowerOff,      _
                                      ByRef blnForce,         _
                                      ByRef intTimer          )


        ON ERROR RESUME NEXT

        Dim strFlag
        Dim intState, intArgIter
        Dim objFileSystem

        If Wscript.Arguments.Count > 0 Then
            strFlag = Wscript.arguments.Item(0)
        End If

        If IsEmpty(strFlag) Then                'No arguments have been received
            Wscript.Echo("Arguments are Required.")
            intParseCmdLine = CONST_ERROR
            Exit Function
        End If

        'Check if the user is asking for help or is just confused
        If (strFlag="help") OR (strFlag="/h") OR (strFlag="\h") OR (strFlag="-h") _
            OR (strFlag = "\?") OR (strFlag = "/?") OR (strFlag = "?") _ 
            OR (strFlag="h") Then
            intParseCmdLine = CONST_SHOW_USAGE
            Exit Function
        End If

        'Retrieve the command line and set appropriate variables
         intArgIter = 0
        Do While intArgIter = Wscript.arguments.Count - 1
            Select Case Left(LCase(Wscript.arguments.Item(intArgIter)),2)

                Case "/s"
                    intParseCmdLine = CONST_PROCEED
                    If Not blnGetArg("Server", strServer, intArgIter) Then
                        intParseCmdLine = CONST_ERROR
                        Exit Function
                    End If
                    intArgIter = intArgIter + 1

                Case "/o"
                    If Not blnGetArg("Output File", strOutputFile, intArgIter) Then
                        intParseCmdLine = CONST_ERROR
                        Exit Function
                    End If
                    intArgIter = intArgIter + 1

                Case "/u"
                    If Not blnGetArg("User Name", strUserName, intArgIter) Then
                        intParseCmdLine = CONST_ERROR
                        Exit Function
                    End If
                    intArgIter = intArgIter + 1

                Case "/w"
                    If Not blnGetArg("User Password", strPassword, intArgIter) Then
                        intParseCmdLine = CONST_ERROR
                        Exit Function
                    End If
                    intArgIter = intArgIter + 1

                Case "/f"
                    blnForce = True
                    intArgIter = intArgIter + 1

                Case "/r"
                    blnReBoot = True
                    userarray(0) = blnReBoot
                    intArgIter = intArgIter + 1

                Case "/q"
                    blnPowerOff = True
                    userarray(1) = blnPowerOff
                    intArgIter = intArgIter + 1

                Case "/l"
                    blnLogOff = True
                    userarray(2) = blnLogoff
                    intArgIter = intArgIter + 1

                Case "/p"
                    blnShutDown = True
                    userarray(3) = blnShutDown
                    intArgIter = intArgIter + 1

                Case "/t"
                    If Not blnGetArg("Timer", intTimer, intArgIter) Then
                        intParseCmdLine = CONST_ERROR
                        Exit Function
                    End If
                    intArgIter = intArgIter + 1

                Case Else 'We shouldn't get here
                    Call Wscript.Echo("Invalid or misplaced parameter: " _
                        Wscript.arguments.Item(intArgIter)  vbCRLF _
                        "Please check the input and try again,"  vbCRLF _
                        "or invoke with '/?' for help with the syntax.")
                    Wscript.Quit

            End Select

        Loop '** intArgIter = Wscript.arguments.Count - 1

        MyCount = 0

        for i = 0 to 3
            if userarray(i) = True then
                MyCount = Mycount + 1
            End if
        Next

       if Mycount > 1 then 
            intParseCmdLine = CONST_SHOW_USAGE
       End if

        If IsEmpty(intParseCmdLine) Then 
            intParseCmdLine = CONST_ERROR
            Wscript.Echo("Arguments are Required.")
        End If

    End Function

    '********************************************************************
    '*
    '* Sub ShowUsage()
    '*
    '* Purpose: Shows the correct usage to the user.
    '*
    '* Input:   None
    '*
    '* Output:  Help messages are displayed on screen.
    '*
    '********************************************************************
    Private Sub ShowUsage()

        Wscript.Echo ""
        Wscript.Echo "Logoffs, Reboots, Powers Off, or Shuts Down a machine."
        Wscript.Echo ""
        Wscript.Echo "SYNTAX:"
        Wscript.Echo "  Restart.vbs [/S server>] [/U username>] [/W password>]"
        Wscript.Echo "              [/O outputfile>] /L> /R> /P> /Q> /F> [/T time in seconds>]"
        Wscript.Echo ""
        Wscript.Echo "PARAMETER SPECIFIERS:"
        wscript.echo "   /T            Amount of time to perform the function."
        Wscript.Echo "   /Q            Perform Shutdown."
        Wscript.Echo "   /P            Perform Poweroff."
        Wscript.Echo "   /R            Perform Reboot."
        Wscript.Echo "   /L            Perform Logoff."
        Wscript.Echo "   /F            Force Function."
        Wscript.Echo "   server        A machine name."
        Wscript.Echo "   username      The current user's name."
        Wscript.Echo "   password      Password of the current user."
        Wscript.Echo "   outputfile    The output file name."
        Wscript.Echo ""
        Wscript.Echo "EXAMPLE:"
        Wscript.Echo "1. cscript Restart.vbs /S MyMachine2 /R"
        Wscript.Echo "   Reboots the current machine MyMachine2."
        Wscript.Echo "2. cscript Restart.vbs /S MyMachine2 /R /F"
        Wscript.Echo "   Forces MyMachine2 to reboot."
        Wscript.Echo "3. cscript Restart.vbs /S MyMachine2 /R /T 30"
        Wscript.Echo "   Reboots the current machine MyMachine2 in 30 seconds."
        Wscript.Echo "NOTE:"
        Wscript.Echo "   The force option will make the machine perform the function even " _
                    "if there are"
        Wscript.Echo "   open and unsaved docuements on the screen."

    End Sub

    '********************************************************************
    '* General Routines
    '********************************************************************

    '********************************************************************
    '*
    '* Function strPackString()
    '*
    '* Purpose: Attaches spaces to a string to increase the length to intWidth.
    '*
    '* Input:   strString   a string
    '*          intWidth    the intended length of the string
    '*          blnAfter    Should spaces be added after the string?
    '*          blnTruncate specifies whether to truncate the string or not if
    '*                      the string length is longer than intWidth
    '*
    '* Output:  strPackString is returned as the packed string.
    '*
    '********************************************************************
    Private Function strPackString( ByVal strString, _
                                    ByVal intWidth,  _
                                    ByVal blnAfter,  _
                                    ByVal blnTruncate)

        ON ERROR RESUME NEXT

        intWidth      = CInt(intWidth)
        blnAfter      = CBool(blnAfter)
        blnTruncate   = CBool(blnTruncate)

        If Err.Number Then
            Call Wscript.Echo ("Argument type is incorrect!")
            Err.Clear
            Wscript.Quit
        End If

        If IsNull(strString) Then
            strPackString = "null"  Space(intWidth-4)
            Exit Function
        End If

        strString = CStr(strString)
        If Err.Number Then
            Call Wscript.Echo ("Argument type is incorrect!")
            Err.Clear
            Wscript.Quit
        End If

        If intWidth > Len(strString) Then
            If blnAfter Then
                strPackString = strString  Space(intWidth-Len(strString))
            Else
                strPackString = Space(intWidth-Len(strString))  strString  " "
            End If
        Else
            If blnTruncate Then
                strPackString = Left(strString, intWidth-1)  " "
            Else
                strPackString = strString  " "
            End If
        End If

    End Function

    '********************************************************************
    '* 
    '*  Function blnGetArg()
    '*
    '*  Purpose: Helper to intParseCmdLine()
    '* 
    '*  Usage:
    '*
    '*     Case "/s" 
    '*       blnGetArg ("server name", strServer, intArgIter)
    '*
    '********************************************************************
    Private Function blnGetArg ( ByVal StrVarName,   _
                                 ByRef strVar,       _
                                 ByRef intArgIter) 

        blnGetArg = False 'failure, changed to True upon successful completion

        If Len(Wscript.Arguments(intArgIter)) > 2 then
            If Mid(Wscript.Arguments(intArgIter),3,1) = ":" then
                If Len(Wscript.Arguments(intArgIter)) > 3 then
                    strVar = Right(Wscript.Arguments(intArgIter), _
                             Len(Wscript.Arguments(intArgIter)) - 3)
                    blnGetArg = True
                    Exit Function
                Else
                    intArgIter = intArgIter + 1
                    If intArgIter > (Wscript.Arguments.Count - 1) Then
                        Call Wscript.Echo( "Invalid "  StrVarName  ".")
                        Call Wscript.Echo( "Please check the input and try again.")
                        Exit Function
                    End If

                    strVar = Wscript.Arguments.Item(intArgIter)
                    If Err.Number Then
                        Call Wscript.Echo( "Invalid "  StrVarName  ".")
                        Call Wscript.Echo( "Please check the input and try again.")
                        Exit Function
                    End If

                    If InStr(strVar, "/") Then
                        Call Wscript.Echo( "Invalid "  StrVarName)
                        Call Wscript.Echo( "Please check the input and try again.")
                        Exit Function
                    End If

                    blnGetArg = True 'success
                End If
            Else
                strVar = Right(Wscript.Arguments(intArgIter), _
                         Len(Wscript.Arguments(intArgIter)) - 2)
                blnGetArg = True 'success
                Exit Function
            End If
        Else
            intArgIter = intArgIter + 1
            If intArgIter > (Wscript.Arguments.Count - 1) Then
                Call Wscript.Echo( "Invalid "  StrVarName  ".")
                Call Wscript.Echo( "Please check the input and try again.")
                Exit Function
            End If

            strVar = Wscript.Arguments.Item(intArgIter)
            If Err.Number Then
                Call Wscript.Echo( "Invalid "  StrVarName  ".")
                Call Wscript.Echo( "Please check the input and try again.")
                Exit Function
            End If

            If InStr(strVar, "/") Then
                Call Wscript.Echo( "Invalid "  StrVarName)
                Call Wscript.Echo( "Please check the input and try again.")
                Exit Function
            End If
            blnGetArg = True 'success
        End If
    End Function

    '********************************************************************
    '*
    '* Function blnConnect()
    '*
    '* Purpose: Connects to machine strServer.
    '*
    '* Input:   strServer       a machine name
    '*          strNameSpace    a namespace
    '*          strUserName     name of the current user
    '*          strPassword     password of the current user
    '*
    '* Output:  objService is returned  as a service object.
    '*          strServer is set to local host if left unspecified
    '*
    '********************************************************************
    Private Function blnConnect(ByVal strNameSpace, _
                                ByVal strUserName,  _
                                ByVal strPassword,  _
                                ByRef strServer,    _
                                ByRef objService)

        ON ERROR RESUME NEXT

        Dim objLocator, objWshNet

        blnConnect = False     'There is no error.

        'Create Locator object to connect to remote CIM object manager
        Set objLocator = CreateObject("WbemScripting.SWbemLocator")
        If Err.Number then
            Call Wscript.Echo( "Error 0x"  CStr(Hex(Err.Number))  _
                               " occurred in creating a locator object." )
            If Err.Description > "" Then
                Call Wscript.Echo( "Error description: "  Err.Description  "." )
            End If
            Err.Clear
            blnConnect = True     'An error occurred
            Exit Function
        End If

        'Connect to the namespace which is either local or remote
        Set objService = objLocator.ConnectServer (strServer, strNameSpace, _
           strUserName, strPassword)
        ObjService.Security_.impersonationlevel = 3
        If Err.Number then
            Call Wscript.Echo( "Error 0x"  CStr(Hex(Err.Number))  _
                               " occurred in connecting to server " _
                strServer  ".")
            If Err.Description > "" Then
                Call Wscript.Echo( "Error description: "  Err.Description  "." )
            End If
            Err.Clear
            blnConnect = True     'An error occurred
        End If

        'Get the current server's name if left unspecified
        If IsEmpty(strServer) Then
            Set objWshNet = CreateObject("Wscript.Network")
        strServer     = objWshNet.ComputerName
        End If

    End Function

    '********************************************************************
    '*
    '* Sub      VerifyHostIsCscript()
    '*
    '* Purpose: Determines which program is used to run this script.
    '*
    '* Input:   None
    '*
    '* Output:  If host is not cscript, then an error message is printed 
    '*          and the script is aborted.
    '*
    '********************************************************************
    Sub VerifyHostIsCscript()

        ON ERROR RESUME NEXT

        Dim strFullName, strCommand, i, j, intStatus

        strFullName = WScript.FullName

        If Err.Number then
            Call Wscript.Echo( "Error 0x"  CStr(Hex(Err.Number))  " occurred." )
            If Err.Description > "" Then
                Call Wscript.Echo( "Error description: "  Err.Description  "." )
            End If
            intStatus =  CONST_ERROR
        End If

        i = InStr(1, strFullName, ".exe", 1)
        If i = 0 Then
            intStatus =  CONST_ERROR
        Else
            j = InStrRev(strFullName, "\", i, 1)
            If j = 0 Then
                intStatus =  CONST_ERROR
            Else
                strCommand = Mid(strFullName, j+1, i-j-1)
                Select Case LCase(strCommand)
                    Case "cscript"
                        intStatus = CONST_CSCRIPT
                    Case "wscript"
                        intStatus = CONST_WSCRIPT
                    Case Else       'should never happen
                        Call Wscript.Echo( "An unexpected program was used to " _
                                            "run this script." )
                        Call Wscript.Echo( "Only CScript.Exe or WScript.Exe can " _
                                            "be used to run this script." )
                        intStatus = CONST_ERROR
                    End Select
            End If
        End If

        If intStatus > CONST_CSCRIPT Then
            Call WScript.Echo( "Please run this script using CScript."  vbCRLF  _
                 "This can be achieved by"  vbCRLF  _
                 "1. Using ""CScript Restart.vbs arguments"" for Windows 95/98 or" _
                  vbCRLF  "2. Changing the default Windows Scripting Host " _
                  "setting to CScript"  vbCRLF  "    using ""CScript " _
                  "//H:CScript //S"" and running the script using"  vbCRLF  _
                 "    ""Restart.vbs arguments"" for Windows NT/2000." )
            WScript.Quit
        End If

    End Sub

    '********************************************************************
    '*
    '* Sub WriteLine()
    '* Purpose: Writes a text line either to a file or on screen.
    '* Input:   strMessage  the string to print
    '*          objFile     an output file object
    '* Output:  strMessage is either displayed on screen or written to a file.
    '*
    '********************************************************************
    Sub WriteLine(ByVal strMessage, ByVal objFile)

        On Error Resume Next
        If IsObject(objFile) then        'objFile should be a file object
            objFile.WriteLine strMessage
        Else
            Call Wscript.Echo( strMessage )
        End If

    End Sub

    '********************************************************************
    '* 
    '* Function blnErrorOccurred()
    '*
    '* Purpose: Reports error with a string saying what the error occurred in.
    '*
    '* Input:   strIn        string saying what the error occurred in.
    '*
    '* Output:  displayed on screen 
    '* 
    '********************************************************************
    Private Function blnErrorOccurred (ByVal strIn)

        If Err.Number Then
            Call Wscript.Echo( "Error 0x"  CStr(Hex(Err.Number))  ": "  strIn)
            If Err.Description > "" Then
                Call Wscript.Echo( "Error description: "  Err.Description)
            End If
            Err.Clear
            blnErrorOccurred = True
        Else
            blnErrorOccurred = False
        End If

    End Function

    '********************************************************************
    '* 
    '* Function blnOpenFile
    '*
    '* Purpose: Opens a file.
    '*
    '* Input:   strFileName        A string with the name of the file.
    '*
    '* Output:  Sets objOpenFile to a FileSystemObject and setis it to 
    '*            Nothing upon Failure.
    '* 
    '********************************************************************
    Private Function blnOpenFile(ByVal strFileName, ByRef objOpenFile)

        ON ERROR RESUME NEXT

        Dim objFileSystem

        Set objFileSystem = Nothing

        If IsEmpty(strFileName) OR strFileName = "" Then
            blnOpenFile = False
            Set objOpenFile = Nothing
            Exit Function
        End If

        'Create a file object
        Set objFileSystem = CreateObject("Scripting.FileSystemObject")
        If blnErrorOccurred("Could not create filesystem object.") Then
            blnOpenFile = False
            Set objOpenFile = Nothing
            Exit Function
        End If

        'Open the file for output
        Set objOpenFile = objFileSystem.OpenTextFile(strFileName, 8, True)
        If blnErrorOccurred("Could not open") Then
            blnOpenFile = False
            Set objOpenFile = Nothing
            Exit Function
        End If
        blnOpenFile = True

    End Function

    '********************************************************************
    '*                                                                  *
    '*                           End of File                            *
    '*                                                                  *
    '********************************************************************
    上一篇:RCLS.vbs使用帮助
    下一篇:远程或本地获取系统信息的脚本RGIS.vbs
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Restart.vbs源代码可以重启远程电脑的vbs Restart.vbs,源代码,可以,重启,