Well, I was able to find those keys with the second script, but the delete part needs some work to catch them. Good thing that isn't the issue I'm trying to solve. ;-)
Here's the fixed version:
use Win32::TieRegistry(Delimiter=>'/');
$| = 1;
sub process_hidden
{
my ($root, $tgt) = @_;
print "HIDDEN REGISTRY KEY FOUND:\n$root/$tgt\n\n";
print "Delete or Keep? [D/k] ";
$_=<>;
chomp;
if ( ! /k/i )
{
delete $Registry->{$root}->{$tgt};
}
}
sub check_content
{
for ( keys %{$Registry->{$root}} )
{
&check_content("$root/$_") if exists $Registry->{"$root/$_/"};
&process_hidden($root,$_) if (length($_) > 256
|| index($_,"\0") >= 0);
}
}
&check_content("CUser/TEST/");
Also, my regedit had no problem deleting that key ... perhaps that is an old bug? The page you reference is from 1999 ...
The intelligent reader will judge for himself. Without examining the facts fully and fairly, there is no way of knowing whether vox populi is really vox dei, or merely vox asinorum. -- Cyrus H. Gordon