This works for CD-ROMs.
use Win32::OLE (); my $computer = '.'; my $obj = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\cimv2") or die("$^E\n"); my $devices = $obj->ExecQuery(" SELECT * FROM Win32_CDROMDrive "); foreach my $device (Win32::OLE::in $devices) { print $device->{ DeviceID }, $/, $device->{ Description }, $/, $device->{ Name }, $/; }
Maybe this works for SCSI devices? (I don't have any to use for testing.)
use Win32::OLE (); my $computer = '.'; my $obj = Win32::OLE->GetObject("winmgmts:\\\\$computer\\root\\cimv2") or die("$^E\n"); my $devices = $obj->ExecQuery(" SELECT * FROM Win32_SCSIControllerDevice "); foreach my $device (Win32::OLE::in $devices) { my $dependant = $device->{Dependent}; print $dependant->{ DeviceID }, $/, $dependant->{ Description }, $/, $dependant->{ Name }, $/; }
References:
The Win32_CDROMDrive class ($device in first snippet)
The Win32_SCSIControllerDevice class ($device in second snippet)
The Win32_SCSIController class (might be of interest)
The CIM_LogicalDevice class ($dependant)
I hope this gives you a starting point.
In reply to Re: SCSI operations in Perl
by ikegami
in thread SCSI operations in Perl
by tlemons
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |