Solved

How to shut down all PCs on a network at a specific time, with a few exceptions.

Posted on 2008-06-17
6
283 Views
Last Modified: 2012-05-05
I have a need to power down all PCs on the network (across two physical sites) that are still on after 10pm nightly.
There are about 40 PCs (out of 500+) that need to be kept on to run overnight processes or for remote connection for troubleshooting issues.

We have Windows Server 2000 and Windows Server 2003 for most of our servers. We also have Altiris for remote software deployment and remote control purposes.

How would I use either of these systems (Windows Server or Altiris) to power down the PCs, with some exclusions??
0
Comment
Question by:Rartemass
6 Comments
 
LVL 3

Accepted Solution

by:
amritgill earned 150 total points
ID: 21810244
If you have configuration manger you can issue a shutdown command.

Also no policy, but this might do it:
http://www.specopssoft.com/products/specopsgpupdate/

It is a tool that lets you perform actions per OU - such as mass group policy update, mass shutdown, etc.
0
 
LVL 18

Author Comment

by:Rartemass
ID: 21810264
Thanks.
I'll check if we have config manager. I wasn' t involved with setting up the servers so unsure on what is installed.
I will investigate the specops software too. Quick question, does this software know when a PC is already powered down and skip it; or does it power it on to turn if back off?
0
 
LVL 23

Assisted Solution

by:debuggerau
debuggerau earned 100 total points
ID: 21810357
this is the script I use:

Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Set objFSO = CreateObject("Scripting.FileSystemObject")
strComputer = "."
 
On Error Resume Next
 
Set objOU = GetObject("LDAP://CN=Computers,dc=<yourdomainname>,dc=local")
objOU.Filter = Array("Computer")
Dim iNum
For Each objComputer in objOU
    iNum = 0
    If objComputer.CN = "<Excluded machine name here>" Then iNum = 1
    If iNum = 0 then
	    strComputer = objComputer.CN
	    Set objShell = CreateObject("WScript.Shell")
	    strCommand = "%comspec% /c ping -n 3 -w 1000 " & strComputer & ""
	    Set objExecObject = objShell.Exec(strCommand)
	    Do While Not objExecObject.StdOut.AtEndOfStream
        	strText = objExecObject.StdOut.ReadAll()
	        If Instr(strText, "Reply") > 0 Then
 
		    Set objTextFile = objFSO.CreateTextFile(strComputer & ".tsv", True)
		    objTextFile.WriteLine "Machine Name" & vbtab & strComputer
 
	            'Set objComputer = GetObject("WinNT://" & strComputer & "")
	            'objComputer.Filter = Array("User")
	            'For Each objUser in objComputer
	            '    Wscript.Echo strComputer & "  " & objUser.Name
	            'Next
		    'Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
		    'strComputer & "\root\default:StdRegProv")
			    'strKeyPath = "SOFTWARE\Classes\exefile\shell\open\command\"
		    'strValueName = ""
		    'oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
	
		    'objTextFile.WriteLine "exefile: " & strValue & vbtab
           
		    strCommand = "%comspec% /c shutdown -s -m \\" & strComputer & " -t 1 -f "
		    Set objExecObject = objShell.Exec(strCommand)
	        Else
	            'Wscript.Echo strComputer & " could not be reached."
	        End If
	   Loop
    End if
Next

Open in new window

0
Microsoft Certification Exam 74-409

Veeam® is happy to provide the Microsoft community with a study guide prepared by MVP and MCT, Orin Thomas. This guide will take you through each of the exam objectives, helping you to prepare for and pass the examination.

 
LVL 18

Author Comment

by:Rartemass
ID: 21810387
Thanks debuggerau.
I'll check that script out too.

Will get back to you both.
0
 
LVL 70

Expert Comment

by:KCTS
ID: 21810687
A simple batch script will also to the job eg

shutdown /s /t:10 /m Computer001
shutdown /s /t:10 /m Computer002
shutdown /s /t:10 /m Computer003
....
shutdown /s /t:10 /m Computer999
etc

Create the above as a text file, save it with the .bat extention and use task scheduler to tun it at the desired time
0
 
LVL 18

Author Closing Comment

by:Rartemass
ID: 31468230
Thanks for your help.
The two methods awarded points have been tested and appear to work fine.
0

Featured Post

Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

While rebooting windows server 2003 server , it's showing "active directory rebuilding indices please wait" at startup. It took a little while for this process to complete and once we logged on not all the services were started so another reboot is …
Last week, our Skyport webinar on “How to secure your Active Directory” (https://www.experts-exchange.com/videos/5810/Webinar-Is-Your-Active-Directory-as-Secure-as-You-Think.html) provided 218 attendees with a step-by-step guide for identifying Acti…
This video gives you a great overview about bandwidth monitoring with SNMP and WMI with our network monitoring solution PRTG Network Monitor (https://www.paessler.com/prtg). If you're looking for how to monitor bandwidth using netflow or packet s…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.

813 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!

Get 1:1 Help Now