s_nodelist.pl
Liste les managed nodes installés sur le serveur OVOW
# # POLICY: # # CONFIGURATION: N/A # # PARAMETRES D'APPEL: N/A # # SORTIE: mail # # FICHIERS ENTREE: # # # FICHIERS SORTIE: # # # COMMENTAIRES: # # # # MODIFICATIONS: # 15/01/2008 Ajout de trace pour debugging => eval/die # # 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 = ''; # connect to local machine 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"; #-------------------------------- # Récupère un objet SWbemLocator #------------------------------- my $lobj = Win32::OLE->new('WbemScripting.SWbemLocator') or die "can't create locator object: " . Win32::OLE->LastError() . "\n"; #---------------------------------------------------------------- # Prépare une connexion avec un niveau de sécurité "impersonate" #--------------------------------------------------------------- $lobj->{Security_}->{impersonationlevel} = 3; #----------------------------------- # Connexion à l'objet SWbemServices #---------------------------------- 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 ) { #next if ( $node->{Caption} =~ m/(Management Server)/ ); $sourceName = $node->{PrimaryNodeName}; push @listenoeud, $sourceName; } @sortedlist = sort @listenoeud; foreach my $node (@sortedlist) { #next if ( $node =~ /ESX/ ); print {$file} $node."\n" ; $count++; } close $file; TRACE($count . " Managed Nodes listed\n"); }; if ( $@ ) { ERROR($@); }