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 )