78 lines
2.0 KiB
Perl
78 lines
2.0 KiB
Perl
#!perl -w
|
|
# Copyright (c) Microsoft Corporation
|
|
#***************************************************************************
|
|
#
|
|
# WMI Sample Script - Object path manipulation (Perl Script)
|
|
#
|
|
# This script demonstrates how to build object paths.
|
|
#
|
|
#***************************************************************************
|
|
use strict;
|
|
use Win32::OLE;
|
|
use constant FALSE=>"false";
|
|
|
|
my ( $ObjectPath, $Privileges );
|
|
|
|
eval { $ObjectPath = new Win32::OLE 'WbemScripting.SWbemObjectPath'; };
|
|
unless($@)
|
|
{
|
|
eval
|
|
{
|
|
$ObjectPath->{Server} = "dingle";
|
|
$ObjectPath->{Namespace} = "root/default/something";
|
|
$ObjectPath->{Class} = "ho";
|
|
$ObjectPath->{Keys}->Add("fred1", 10);
|
|
$ObjectPath->{Keys}->Add("fred2", -34);
|
|
$ObjectPath->{Keys}->Add("fred3", 65234654);
|
|
$ObjectPath->{Keys}->Add("fred4", "Wahaay");
|
|
$ObjectPath->{Keys}->Add("fred5", -786186777);
|
|
};
|
|
unless($@)
|
|
{
|
|
print "\n";
|
|
print "Pass 1:\n";
|
|
print $ObjectPath->{Path}, "\n";
|
|
print $ObjectPath->{DisplayName} , "\n\n";
|
|
|
|
$ObjectPath->{Security_}->{ImpersonationLevel} = 3 ;
|
|
|
|
print "Pass 2:\n";
|
|
print $ObjectPath->{Path}, "\n";
|
|
print $ObjectPath->{DisplayName} , "\n\n";
|
|
|
|
$ObjectPath->{Security_}->{AuthenticationLevel} = 5 ;
|
|
|
|
print "Pass 3:\n";
|
|
print $ObjectPath->{Path}, "\n";
|
|
print $ObjectPath->{DisplayName} , "\n\n";
|
|
|
|
eval { $Privileges = $ObjectPath->{Security_}->{Privileges}; };
|
|
unless($@)
|
|
{
|
|
$Privileges->Add(8);
|
|
$Privileges->Add(20,FALSE);
|
|
|
|
print "Pass 4:\n";
|
|
print $ObjectPath->{Path}, "\n";
|
|
print $ObjectPath->{DisplayName} , "\n\n";
|
|
|
|
$ObjectPath->{DisplayName} = "winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktprivacy,(Debug,!IncreaseQuota, CreatePagefile ) }!//fred/root/blah";
|
|
|
|
print "Pass 5:\n";
|
|
print $ObjectPath->{Path}, "\n";
|
|
print $ObjectPath->{DisplayName} , "\n";
|
|
}
|
|
else
|
|
{
|
|
print STDERR Win32::OLE->LastError, "\n";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
print STDERR Win32::OLE->LastError, "\n";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
print STDERR Win32::OLE->LastError, "\n";
|
|
} |