This will get you started (thinking at least):
#!/usr/bin/perl -w
use strict;
use CGI ':standard';
use Win32::OLE;
use Data::Dumper;
my $compName = `hostname`;
chop($compName);
#jobfire: launch stuff on different servers with WMI, otherwise
#just shell to local .bat files
my @targetcomps = qw|YOURSERVERNAMESHERE|;
print header;
print start_html("Stuff that, if I did in .NET, I would STILL BE CODIN
+G");
foreach my $comp (@targetcomps){
if($comp eq $compName) {
system('c:\temp\foo.bat');
}else {
my $wmiObj = Win32::OLE->GetObject(qq|WinMgmts://$comp/root/cimv2|
+) or die $!;
#die $! is probably wrong...check the API
my ( $stuff ) = $wmiObj->ExecQuery('Select * from Win32_NetworkAda
+pterConfiguration where IPEnabled = True');
#print Dumper $stuff;
foreach my $st (Win32::OLE::in($stuff)) {
print $st->{IPAddress}->[0];
}
}
}
print end_html;
1;
perl jobfire.pl
Content-Type: text/html; charset=ISO-8859-1
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-U
+S">
<head>
<title>Stuff that, if I did in .NET, I would STILL BE CODING</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1
+" />
</head>
<body>
10.248.47.146
</body>
</html>
Update: Forgot to chop the ENDL from the `hostname` call.
Celebrate Intellectual Diversity
|