Liste les managed nodes installés sur le serveur OVOW
use strict;
use Getopt::Std;
use Win32;
use Win32::OLE qw( in );
use Win32::OLE('in');
my $RepositoryFile = "\\\\ilbur001\\SrvIBP\\Projet\\Surv_HPOVO (P9SUR024)\\Production\\log\\NodesOn$ENV{COMPUTERNAME}.txt";
if ( $ENV{COMPUTERNAME} =~ /HPO001/ ) {
$RepositoryFile = "\\\\ilbur001\\SrvIBP\\Projet\\Surv_HPOVO (P9SUR024)\\Production\\log\\old\\NodesOn$ENV{COMPUTERNAME}.txt";
}
my $server = '';
my $debug = 'TRUE';
my $log_file = "$ENV{OVINSTALLDIR}"."temp/s_nodelist.log";
sub TRACE {
my $f = shift;
logger( 'TRACE' . "\t" . $f, @_ );
}
sub ERROR {
my $f = shift;
logger( 'ERREUR' . "\t" . $f, @_ );
}
sub logger {
my $f = shift;
my $msg = sprintf( ts() . "\t" . $f . "\n", @_ );
print {*STDOUT} $msg;
open my $desc_log_file , '+>>', $log_file ;
print {$desc_log_file} $msg ;
close $desc_log_file;
}
sub ts {
my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) =
localtime( time() );
return (
sprintf(
'%04d-%02d-%02d %02d:%02d:%02d',
$year + 1900,
$mon + 1, $mday, $hour, $min, $sec
)
);
}
eval {
open my $file, '>', "$RepositoryFile" or die "Can't open file $RepositoryFile: $!\n";
my $lobj = Win32::OLE->new('WbemScripting.SWbemLocator')
or die "can't create locator object: " . Win32::OLE->LastError() . "\n";
$lobj->{Security_}->{impersonationlevel} = 3;
my $sobj = $lobj->ConnectServer( $server, 'root\hewlettpackard\openview\data' )
or die "can't create server object: " . Win32::OLE->LastError() . "\n";
my $wmiquery = "Select * from OV_ManagedNode";
print "\$wmiquery=$wmiquery\n" if ($debug);
my $nodelist = $sobj->ExecQuery($wmiquery)
or die "La requête a echouée " . Win32::OLE->LastError() . "\n";
my ( $sourceName, $count );
my ( @listenoeud, @sortedlist );
foreach my $node ( in $nodelist )
{
$sourceName = $node->{PrimaryNodeName};
push @listenoeud, $sourceName;
}
@sortedlist = sort @listenoeud;
foreach my $node (@sortedlist)
{
print {$file} $node."\n" ;
$count++;
}
close $file;
TRACE($count . " Managed Nodes listed\n");
};
if ( $@ ) {
ERROR($@);
}