views:

695

answers:

3

Hello all!

I would like to have a Windows 2003 server fire a script to fire another script in a separate Windows Server 2008 computer.

I have been told that Powershell can do that, and that's fine, but I need more specific details.

Does anyone have any tips for this?

Thanks!

A: 

The accepted solution from http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/Q_22959948.html is:

What I provide was a script that takes parameters... In this case it takes 4. 1) Server: if you pass -server it will only do that one server 2) List: You can provide a list file of servers. 3) Service: Name of the service you want to modify 4) Verbose: is not used here.

I did have some mistakes that I changed in the following code. To use cut/paste the code into a file called Set-RemoteService.ps1. Make sure to set your executionpolicy to run scripts... it will not by default. You do that by using the set-executionpolicy cmdlet. PS> Set-Executionpolicy "RemoteSigned" to run the script you do PS> C:\PathToScript\Set-RemoteService.ps1 -list c:\ServerList.txt -service "DHCP"

######################### Param($server,$list,$service,[switch]$verbose)

if($Verbose){$VerbosePreference = "Continue"} if($list) { foreach($srv in (get-content $list)) { $query = "Select * from Win32_Service where Name='$service'" $myService = get-WmiObject -query $query -computer $srv $myService.ChangeStartMode("Automatic") $myService.Start() } } if($server) { $query = "Select * from Win32_Service where Name='$service'" $myService = get-WmiObject -query $query -computer $server $myService.ChangeStartMode("Automatic") $myService.Start() }

Jonathan Parker
+3  A: 

Look into the syntax for the AT command. You can use it to schedule a process to run on a remote machine.

The AT command schedules commands and programs to run on a computer at a specified time and date. The Schedule service must be running to use the AT command.

AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTIVE]
    [ /EVERY:date[,...] | /NEXT:date[,...]] "command"

\\computername     Specifies a remote computer. Commands are scheduled on the
                   local computer if this parameter is omitted.
id                 Is an identification number assigned to a scheduled
                   command.
/delete            Cancels a scheduled command. If id is omitted, all the
                   scheduled commands on the computer are canceled.
/yes               Used with cancel all jobs command when no further
                   confirmation is desired.
time               Specifies the time when command is to run.
/interactive       Allows the job to interact with the desktop of the user
                   who is logged on at the time the job runs.
/every:date[,...]  Runs the command on each specified day(s) of the week or
                   month. If date is omitted, the current day of the month
                   is assumed.
/next:date[,...]   Runs the specified command on the next occurrence of the
                   day (for example, next Thursday).  If date is omitted, the
                   current day of the month is assumed.
"command"          Is the Windows NT command, or batch program to be run.
cdonner
+2  A: 

psexec from SysInternals

benPearce
This seems like the best answer. I'll try it at work tomorrow.
Frew