Everything I used to do with Win32::Lanman I now do with WMI using
Win32::OLE. I don't know what exactly Lanman::NetServerDiskEnum() returns,
but one way to enumerate the physical disks on a server is like this:
use Win32::OLE qw(in);
my $wmi = Win32::OLE->GetObject(
"winmgmts:{impersonationLevel=impersonate}!//COMPUTERNAME/root/CIMV2"
) or die Win32::OLE::LastError();
my $drives = $wmi->ExecQuery( "SELECT DeviceID, Caption FROM
Win32_DiskDrive" );
foreach $drive (in( $drives )) {
print $drive->{Properties_}->{DeviceID}->{Value}.' : '.
$drive->{Properties_}->{Caption}->{Value}."\n";
}
If you're looking for partition information, you can get that too with the
Win32_DiskPartition class.
Of course, WMI needs to be installed on the machine you're querying. I'm
pretty sure MS included it on all OSes after Win2K, and I think they
slipstreamed it into SP6 on NT if you're still running any of that.
HTH,
-Shawn
________________________________________
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of
[EMAIL PROTECTED]
Sent: Friday, September 08, 2006 2:18 PM
To: [EMAIL PROTECTED]
Cc: [email protected]
Subject: RE: Lanman replacement?
Thanks for the reply, Mathew.
After more testing, this seems to be an incompatibility with a legacy app
instead of WinXP. Unfortunately, I can't mod the other app so still must
find a workaround/replacement for the lanman module. I've temporarily
remarked out the die statement in lanman.pm but that is somewhat
bothersome. If a runtime problem occurs, the end result is the same: it's
going to blowup either way!
All I need to do is enumerate (Lanman::NetServerDiskEnum) the local drives,
so a simple kludge might be necessary ;-)
Thanks again,
Sturdy
_______________________________________________
Perl-Win32-Admin mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs