Solved

How do I test this restart all PCs script?

Posted on 2008-06-16
9
319 Views
Last Modified: 2010-04-21
Kixtart version 4.21.0.0
I want to use the following syntax to restart all domain PCs (256, Win2k and WinXP) but not the servers.
All PC names start with SHH and then 4 digits and the servers do not. I'm not sure how I can test each line of code before the mass restart:

$comps=COMNetView()
for each $comp in $comps
    IF LEFT($comp,4) = "SHH_" or LEFT($comp,3) <> "SHH"
             GOTO END
    ENDIF
    if $comp<>@WKSTA
        $rc=fnWMIShutdown($comp,6)
    endif
next
$rc=fnWMIShutdown(@WKSTA,6)
:END
0
Comment
Question by:bstillion
  • 5
  • 3
9 Comments
 
LVL 3

Expert Comment

by:polazarus
ID: 21795893
You could try the workstation loop and write it out to a file and see if you get the desired result.

I am not familiar with kix but when I would test shell scripts I would do something like test it by writing out to files and such.  If I wanted to just test that portion I would simply exit out or put output to the screen.
0
 
LVL 3

Accepted Solution

by:
Isorg earned 500 total points
ID: 21797261
If you know a list of severs......

edit $list_of_servers to be a coma delimited list of the servers that you don't want to reboot.

and using goto's can just lead to bad coding :D
$comps=COMNetView()
 

$list_of_servers = 'server01,server02,server03,Secret_server'
 

for each $comp in $comps

	if not ascan(split($list_of_servers),$comp)+1

		;$comp is not a server in the $list_of_servers

		$rc=fnWMIShutdown($comp,6)

	ENDIF

next

$rc=fnWMIShutdown(@WKSTA,6)

Open in new window

0
 
LVL 3

Expert Comment

by:Isorg
ID: 21797280
my bad, make that a space delimited list, not comma delimited in $list_of_Servers
0
 

Author Comment

by:bstillion
ID: 21798706
Isorg:
I needed to research the syntax to understand how it all works. I did not know how to
process the UDF but have read up on it at kixtart.org/forums.
Now that I understand, I will test this tomorrow (with a space delimited list of servers
as you suggest.)

bstillion
0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Author Comment

by:bstillion
ID: 21807069
I have not yet found a way to test the COMNetView() UDF. I was attempting to send the list to a text file but without luck (using REDIRECTOUTPUT().) At this point I will try to at least echo the list to the console to confirm that the servers are excluded.

bstillion
0
 

Author Comment

by:bstillion
ID: 21807149
By using REDIRECTOUTPUT(), the list echos to the screen. The list is a string of 0s though. Any thoughts on what needs to change to actually see the list of computers generated by the COMNetView() UDF?

(I was able to test the other UDF successfully: fnWMIShutdown)

bstillion
0
 
LVL 3

Expert Comment

by:Isorg
ID: 21807301
the COMNetView() udf returns an array.  
use his code example to dump out the array...


for each $comp in $comps
   ? $comp
next

or....

use the join() cmd.

? join($comps,@crlf)

0
 

Author Comment

by:bstillion
ID: 21807541
Isorg:
Thanks for the help!
The script works great. I used the first example (? $comp) to echo to the screen.



bstillion
0
 

Author Closing Comment

by:bstillion
ID: 31467698
Thanks again!

Brad
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Go is an acronym of golang, is a programming language developed Google in 2007. Go is a new language that is mostly in the C family, with significant input from Pascal/Modula/Oberon family. Hence Go arisen as low-level language with fast compilation…
Does the idea of dealing with bits scare or confuse you? Does it seem like a waste of time in an age where we all have terabytes of storage? If so, you're missing out on one of the core tools in every professional programmer's toolbox. Learn how to …
The viewer will learn how to count occurrences of each item in an array.
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.

863 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

22 Experts available now in Live!

Get 1:1 Help Now