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;
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.