Re: Shutdown remote server

From: Torgeir Bakken \(MVP\) (Torgeir.Bakken-spam_at_hydro.com)
Date: 06/08/04


Date: Tue, 08 Jun 2004 23:53:56 +0200

Paul E. Surette wrote:
> How can I do a clean shut down of a remote server with VBScript?
Hi

Alt. 1

PsShutdown.exe in the free PsTools suite (command line)
http://www.sysinternals.com/ntw2k/freeware/pstools.shtml

Alt. 2

Using VBScript/WMI usually works very well also. WMI comes default with
WinME, Win2k and WinXP. Put the following code into a file called e.g.
shutdwn.vbs. If you run it without any input arguments, it will reboot
the local computer. If you add one or more remote computer names/ip
addresses on the command line, the script will do a reboot of the
remote computer(s).

If you want a forced shutdown, change
    ShutDown oArgs(i), "Shutdown"
to
    ShutDown oArgs(i), "Shutdown_Force"

' script start
Set oArgs = WScript.Arguments

If oArgs.Count = 0 Then
   ' local computer
   ShutDown ".", "Shutdown"
Else
   For i = 0 to oArgs.Count - 1
     ShutDown oArgs(i), "Shutdown"
   Next
End If

Sub ShutDown(sNode, sAction)

' First parameter:
' use "." for local computer

' Second parameter:
' Use "PowerOff" for a poweroff
' Use "PowerOff_Force" for a forced poweroff
' Use "Shutdown" for a shutdown
' Use "Shutdown_Force" for a forced shutdown
' Use "Reboot" for a reboot
' Use "Reboot_Force" for a forced reboot
' Use "LogOff" for a logoff
' Use "LogOff_Force" for a forced logoff

   Const EWX_LOGOFF = 0
   Const EWX_SHUTDOWN = 1
   Const EWX_REBOOT = 2
   Const EWX_FORCE = 4
   Const EWX_POWEROFF = 8

   On Error Resume Next
   Set oWMI = GetObject("winmgmts:" _
      & "{impersonationLevel=impersonate,(Shutdown)}!\\" _
      & sNode & "\root\cimv2")

   Set colOperatingSystems = oWMI.ExecQuery _
      ("Select * from Win32_OperatingSystem")
   For Each obj in colOperatingSystems
     Set oOS = obj : Exit For
   Next
   If Err.Number <> 0 Then
     WScript.Echo "Could not connect to " & sNode
     Exit Sub
   End If

   sAction = LCase(sAction)

   Select Case sAction
     Case "logoff"
       iCmd = EWX_LOGOFF
     Case "logoff_force"
       iCmd = EWX_LOGOFF + EWX_FORCE
     Case "shutdown"
       iCmd = EWX_SHUTDOWN
     Case "shutdown_force"
       iCmd = EWX_SHUTDOWN + EWX_FORCE
     Case "reboot"
       iCmd = EWX_REBOOT
     Case "reboot_force"
       iCmd = EWX_REBOOT + EWX_FORCE
     Case "poweroff"
       iCmd = EWX_POWEROFF
     Case "poweroff_force"
       iCmd = EWX_POWEROFF + EWX_FORCE
     Case Else
       ' Default value
       iCmd = EWX_POWEROFF
   End Select

   oOS.Win32shutdown iCmd

End Sub

-- 
torgeir, Microsoft MVP Scripting and WMI, Porsgrunn Norway
Administration scripting examples and an ONLINE version of
the 1328 page Scripting Guide:
http://www.microsoft.com/technet/community/scriptcenter/default.mspx


Relevant Pages

  • Re: Refresh Group Policy remotely
    ... > having to reboot them. ... Two tools listed below that can run exe files on the remote ... -- torgeir, Microsoft MVP Scripting and WMI, Porsgrunn Norway Administration scripting examples and an ONLINE version of the 1328 page Scripting Guide: ...
    (microsoft.public.windowsxp.general)
  • Re: NTL is shit
    ... colin wrote: ... talked to their tech dept and the guy was honest - too many customers, ... sometimes I throw the remote at it, then like 20 seconds later when the ... Sometimes my fav chanel list gets corrupted and im often having to reboot it ...
    (sci.electronics.design)
  • Re: Printer Admin Object
    ... Thanks but what I'm looking for is info on the printer admin object on the ... > and ports on local and remote computers. ... > Add and delete a local or remote printer. ... > torgeir, Microsoft MVP Scripting and WMI, Porsgrunn Norway ...
    (microsoft.public.scripting.vbscript)
  • Re: NTL is shit
    ... talked to their tech dept and the guy was honest - too many customers, ... sometimes I throw the remote at it, then like 20 seconds later when the ... Sometimes my fav chanel list gets corrupted and im often having to reboot it ... how painful it is to organise the channels. ...
    (sci.electronics.design)
  • Re: Connecting a remote workstation to a domain
    ... I am trying to add and connect remote Windows XP computers to the SBS ... while the VPN does the backend connection. ... the remark that you will have to reboot the workstation. ... After the login script has finished and if you have Premium, ...
    (microsoft.public.windows.server.sbs)