http://www.perlmonks.org?node_id=113984


in reply to (tye)Re: Win32::TieRegistry and remote machines
in thread Win32::TieRegistry and remote machines

Though this is hackish, it's going to suit my needs for now. This something that just needs to get the job done. I'll work more on it later, but for now, this block of code is going to make it work good enough..
my $enum; eval {$enum = Win32::OLE::Enum->new("WinNT://$comp")}; unless ($enum) { print "$comp is not NT/2000\n"; return; }
Thanks for the ideas. They got me thinking in a different direction.

Rich

Update: *sigh* this doesn't work. Guess I'm trying to get this done too fast. I'll update when it *does* work. Update II:

Here's what I ended up going with. It's not portable, but pulling registry entries isn't portable anyway. Win32::Process gave me what I needed...

sub RegConnect { my ($pObj, $ExitCode); my $comp = shift; my $pString = "perl -MWin32::TieRegistry -e " . '"' . '$Registry->Connect(' ."'" . $comp . "', 'LMachine');" . '"'; Win32::Process::Create($pObj, "c:\\perl\\bin\\perl.exe", $pString, 0, NORMAL_PRIORITY_CLASS, ".")|| die "Can't create Perl Process: $!\n"; $pObj->Wait(7000); $pObj->GetExitCode($ExitCode); if ($ExitCode) { $pObj->Kill(1); return 0; } return 1; }