Turns out that Put_() has an UNDERSCORE even though the Win32::OLE docs (vaguely) give this as merely "Put()" -- use the underscore and it works.
my ($init, $max) = (256, 301);
for (in($PageFiles)) {
showProperties($_);
$_->{InitialSize} = $init;
$_->{MaximumSize} = $max;
$_->LetProperty('InitialSize', $init);
$_->LetProperty('MaximumSize', $max);
$_->SetProperty(InitialSize => $init);
$_->SetProperty(MaximumSize => $max);
$_->Put_() # with UNDERSCORE in method name
and print "3 Put_: " . Win32::OLE->LastError . "\n\n";
last; # just change 1st one
}
Another thread here indicated the "Exec Query" SQL like interface is READ ONLY and offered the getting "instances
#my $PageFiles = $wmiService->ExecQuery("Select * from Win32_PageFileS
+etting");
my $PageFiles = $wmiService->InstancesOf("Win32_PageFileSetting");
But that had nothing to do with my problem -- both methods work as long as you use the proper Put_ (with underscore) method.
All 3 setting methods (hash assign, Let, and Set) seem to work fine even though not sure the differences if any. |