Restart.vbs源代码可以重启远程电脑的vbs
前端  /  管理员 发布于 5年前   429
复制代码 代码如下:
'********************************************************************
'*
'* 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 I
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号