use strict; use Win32::OLE; my $service = "Print Spooler"; my $d = Win32::OLE->GetObject("WinNT://domainname"); # ... or just GetObject("WinNT:") my $c = $d->GetObject("Computer", $opts{computer}); my $s = $c->GetObject("Service", "spooler"); eval {$s->Invoke('Stop');}; sleep 1; eval {$s->Invoke('Start');}; sleep 1;