DBD-WMI
view release on metacpan or search on metacpan
README.mkdn view on Meta::CPAN
## Setting the default printer (untested, WinXP, Win2003)
use DBI;
my $dbh = DBI->connect('dbi:WMI:');
my $sth = $dbh->prepare(<<WQL);
SELECT * FROM Win32_Printer
WQL
$sth->execute;
while (my @row = $sth->fetchrow) {
# We get Win32::OLE objects back:
my $printer = $row[0];
printf "Making %s the default printer\n", $printer->{Name};
$printer->SetDefaultPrinter;
};
## Find all network adapters with IP enabled
SELECT * from Win32_NetworkAdapterConfiguration
WHERE IPEnabled = True
## Find files in a directory
ASSOCIATORS OF {Win32_Directory.Name='C:\WINNT'}
WHERE ResultClass = CIM_DataFile
## Find printers on a remote machine
use DBI;
my $machine = 'dawn';
my $dbh = DBI->connect('dbi:WMI:'.$machine);
my $sth = $dbh->prepare(<<WQL);
SELECT * FROM Win32_Printer
WQL
$sth->execute;
while (my @row = $sth->fetchrow) {
my $printer = $row[0];
printf "Making %s the default printer on %s\n", $printer->{Name}, $machine;
$printer->SetDefaultPrinter;
};
## Get method names of objects
use Win32::OLE qw(in);
...
SELECT * FROM Win32_Process
$sth->execute;
while (my @row = $sth->fetchrow) {
for my $method (in $row[0]->Methods_) {
print "Can call $method() on the object\n"
};
};
# TODO
- Implement placeholders and proper interpolation of values
- Need to implement DSN parameters for remote computers, credentials
# SEE ALSO
WMI is Microsofts implementation of the WBEM standard ([http://www.dmtf.org/standards/wbem/](http://www.dmtf.org/standards/wbem/)) except that it uses DCOM and not CIM-XML as the transport medium.
The MS WMI main page at [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi\_start\_page.asp](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_start_page.asp)
The WQL documentation at [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wql\_sql\_for\_wmi.asp](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wql_sql_for_wmi.asp)
The "Hey Scripting Guy" column at [http://www.microsoft.com/technet/scriptcenter/resources/qanda/default.mspx](http://www.microsoft.com/technet/scriptcenter/resources/qanda/default.mspx)
Wikipedia on WMI at [http://en.wikipedia.org/wiki/Windows\_Management\_Instrumentation](http://en.wikipedia.org/wiki/Windows_Management_Instrumentation)
List of available Win32 WMI classes at [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32\_classes.asp](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_classes.asp)
# REPOSITORY
The public repository of this module is
[https://github.com/Corion/dbd-wmi](https://github.com/Corion/dbd-wmi).
# SUPPORT
The public support forum of this module is
[https://perlmonks.org/](https://perlmonks.org/).
# BUG TRACKER
Please report bugs in this module via the RT CPAN bug queue at
[https://rt.cpan.org/Public/Dist/Display.html?Name=DBD-WMI](https://rt.cpan.org/Public/Dist/Display.html?Name=DBD-WMI)
or via mail to [dbd-wmi-Bugs@rt.cpan.org](https://metacpan.org/pod/dbd-wmi-Bugs@rt.cpan.org).
# AUTHOR
Max Maischein `corion@cpan.org`
# COPYRIGHT (c)
Copyright 2009-2018 by Max Maischein `corion@cpan.org`.
# LICENSE
This module is released under the same terms as Perl itself.
( run in 1.186 second using v1.01-cache-2.11-cpan-5837b0d9d2c )