#!Perl use strict; use Win32::TieRegistry(Delimiter=>"/"); # I have an environmental variable set with computernames # so I utilize that... # my $PC = "MYPC"; my $PC = $ENV{COMPUTERNAME}; # Get the Installed software my %Uninstall = %{ $Registry->{"//$PC/HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall"} }; my $version; my $Outfile; my $fh2; open $Outfile, ">$PC.csv" or die "Unable to open $PC.csv\n"; system ( "ver > $PC.CSV"); foreach my $Keys ( sort keys %Uninstall ) { print $Outfile join(',', &escape($Uninstall{$Keys}->{'/Publisher'}), &escape($Uninstall{$Keys}->{'/DisplayVersion'}), &escape($Uninstall{$Keys}->{'/InstallDate'}), &escape($Uninstall{$Keys}->{'/DisplayName'}), &escape($Keys))."\n"; } sub escape { my $entry = shift; $entry =~ s/,//g; $entry =~ s/\///g; return $entry; }