华域联盟 vbs Restart.vbs源代码可以重启远程电脑的vbs

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                            *

'*                                                                  *

'********************************************************************

本文由 华域联盟 原创撰写:华域联盟 » Restart.vbs源代码可以重启远程电脑的vbs

转载请保留出处和原文链接:https://www.cnhackhy.com/14336.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部