... oder besser gesagt von 0 auf 1 setzen. Das kann doch nicht so schwer sein, dachte ich und schwupp waren 2h Zeit weg, ohne nur einen mm weitergekommen zu sein.Kann mir vielleicht jemand einen Tip geben, was ich an der Stelle falsch gemacht habe: $writeKey = ... oder mir Codeschnipsel zu FUNKTIONIERENDEN W32Reg Änderungen unter Perl zukommen lassen
Adminrechte zu den remote Maschinen sind da.
vielen Dank, Steffen
###############################
use strict;
my $Registry;
use Win32::TieRegistry (
TiedRef => \$Registry, Delimiter => "/", ArrayValues => 0,
SplitMultis => 1, AllowLoad => 1, DWordsToHex => 1,
qw( KEY_READ REG_DWORD ),
);
my $GRegRoot = "Software/Intel/LANDesk/VirusProtect6/CurrentVersion";
my $GRegPS = "$GRegRoot/Clients";
my $GRegSAV = "$GRegRoot/ProductControl";
my $GkeySAVlogon = 'ProcessLoginNow';
my @GFixList = [ 'wz12' ];
my ($cl, $regvalue, $remKey);
foreach $cl (@GFixList) {
$remKey = $Registry->Connect($cl, "LMachine/$GRegSAV", { Delimiter=>"/" })
or print "Cannot connect to $cl: $^E\n";
unless (defined $remKey) { next; }
$writeKey = $Registry->{"//$cl/" . "LMachine/$GRegSAV/$GkeySAVlogon"} = [ pack ("H", "0x0001"), REG_DWORD ]
# =1;
# =0x0001;
# [ pack ("L", "0x0001"), REG_DWORD ]
or print "Cant write registry($writeKey): $^E\n";
$regvalue = &getRegVal ($remKey);
print "RegVal=$regvalue\n";
...
}
sub getRegVal {
my $cl = $_[0];
my ($subKey, $remKey, $regvalue,$ValueType,@regkeys, $r);
$subKey = $Registry->{"//$GPsName/" . "LMachine/$GRegSAV"} or print "Cant open registry: $^E\n";
unless (defined %{$subKey}) { next; }
@regkeys = keys( %{$subKey});
undef $regvalue;
foreach $r (@regkeys) {
$r =~ s/^\///;
if ($r eq $GkeySAVlogon) {
# print "$^E\n"; print "$r\n";
($regvalue,$ValueType)= hex $subKey->{$r};
undef $^E;
return $regvalue;
}
}
}
Datum: 17.12.2004-09:45
