• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 293
  • Last Modified:

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

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
Rartemass
Asked:
Rartemass
2 Solutions
 
amritgillCommented:
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
 
RartemassService Desk AnalystAuthor Commented:
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
 
debuggerauCommented:
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
Has Powershell sent you back into the Stone Age?

If managing Active Directory using Windows Powershell® is making you feel like you stepped back in time, you are not alone.  For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why.

 
RartemassService Desk AnalystAuthor Commented:
Thanks debuggerau.
I'll check that script out too.

Will get back to you both.
0
 
Brian PiercePhotographerCommented:
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
 
RartemassService Desk AnalystAuthor Commented:
Thanks for your help.
The two methods awarded points have been tested and appear to work fine.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Has Powershell sent you back into the Stone Age?

If managing Active Directory using Windows Powershell® is making you feel like you stepped back in time, you are not alone.  For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now