A
Adam.L.MacKinnon
Hi,
Am attempting to run the simple script as follows (sourced from:
http://techtasks.com/code/viewbookcode/443)
use strict;
use warnings;
use Data:
umper;
use Win32::OLE;
$Win32::OLE::Warn = 3;
#use lib 'H:\dev\perl\NSLC-Store-Mgmt\lib';
#use NSLC::Store::Mgmt;
my %args;
$args{name} = 'TESTVAR';
$args{value} = 'TESTVALUE';
$args{target} = '.';
set_env_var(\%args);
sub set_env_var {
my ($args,) = @_;
my $strVarName = $args->{name};
my $strVarValue = $args->{value};
my $strComputer = $args->{target};
my $objVarClass = Win32::OLE->GetObject('winmgmts://' .
$strComputer . '/root/cimv2:Win32_Environment');
my $objVar = $objVarClass->SpawnInstanceobjVar->Name eq
$strVarName;
$objVar->{VariableValue} = $strVarValue;
$objVar->{UserName} = '<SYSTEM>';
$objVar->PutWScript->Echo('Created environment variable ' .
$strVarName);
}
The following message is returned.
retrying default method at C:/Perl/site/lib/Win32/OLE/Lite.pm line
156.
Win32::OLE(0.1403) error 0x80020003: "Member not found"
in METHOD/PROPERTYGET "" at H:\dev\perl\test\setenv.pl line 28
shell returned 9
I am completely new to using perl in a windows environment and am not
sure where to start debugging. I have read all that I can via module
docs and web information but am still having no luck.
As far as I can tell, syntactically the script is fine but I am not
sure how the guts of $objVarClass->SpawnInstanceobjVar->Name eq
$strVarName; is working. I am running this on XP pro using activeperl
5.8.8(820).
Any insight would be appreciated.
Thanks
Am attempting to run the simple script as follows (sourced from:
http://techtasks.com/code/viewbookcode/443)
use strict;
use warnings;
use Data:
use Win32::OLE;
$Win32::OLE::Warn = 3;
#use lib 'H:\dev\perl\NSLC-Store-Mgmt\lib';
#use NSLC::Store::Mgmt;
my %args;
$args{name} = 'TESTVAR';
$args{value} = 'TESTVALUE';
$args{target} = '.';
set_env_var(\%args);
sub set_env_var {
my ($args,) = @_;
my $strVarName = $args->{name};
my $strVarValue = $args->{value};
my $strComputer = $args->{target};
my $objVarClass = Win32::OLE->GetObject('winmgmts://' .
$strComputer . '/root/cimv2:Win32_Environment');
my $objVar = $objVarClass->SpawnInstanceobjVar->Name eq
$strVarName;
$objVar->{VariableValue} = $strVarValue;
$objVar->{UserName} = '<SYSTEM>';
$objVar->PutWScript->Echo('Created environment variable ' .
$strVarName);
}
The following message is returned.
retrying default method at C:/Perl/site/lib/Win32/OLE/Lite.pm line
156.
Win32::OLE(0.1403) error 0x80020003: "Member not found"
in METHOD/PROPERTYGET "" at H:\dev\perl\test\setenv.pl line 28
shell returned 9
I am completely new to using perl in a windows environment and am not
sure where to start debugging. I have read all that I can via module
docs and web information but am still having no luck.
As far as I can tell, syntactically the script is fine but I am not
sure how the guts of $objVarClass->SpawnInstanceobjVar->Name eq
$strVarName; is working. I am running this on XP pro using activeperl
5.8.8(820).
Any insight would be appreciated.
Thanks