in reply to Re: IIS/ADSI/Win32-OLE
in thread IIS/ADSI/Win32-OLE

I didn't get any errors, but the array didn't change. I changed things around just to see if I could change anything. I can create redirects for directories off of the wwwroot using a Create("IISWebDirectory") type call, but I can't change any of the IPSecurity settings.

The following code outputs:

1: 1 2: 0 3: 1
when ran:
use strict; use Win32::OLE; use Win32::OLE::Enum; use Carp; eval { my $newip = ","; my $server = "ogre"; Win32::OLE->Option(Warn => 3); my $secobj = Win32::OLE->GetObject("IIS://$server/W3svc/1/Root") +or croak "Couldn't get object: $!\n"; my $MyIPSec = $secobj->{IPSecurity}; print "1: $MyIPSec->{GrantByDefault}\n"; $MyIPSec->{GrantByDefault} = 0; print "2: $MyIPSec->{GrantByDefault}\n"; $secobj->{IPSecurity}->{GrantByDefault} = 0; $secobj->SetInfo(); print "3: $secobj->{IPSecurity}->{GrantByDefault}\n"; }; print Win32::OLE->LastError()."\n" if (Win32::OLE->LastError());
Thanks, JJ
J. J. Horner
Linux, Perl, Apache, Stronghold, Unix

Replies are listed 'Best First'.
Re: Re: Re: IIS/ADSI/Win32-OLE
by $code or die (Deacon) on Jan 15, 2002 at 15:32 UTC
    According to MSDN this should work...
    use strict; use Win32::OLE; my $server = "ogre"; my $secobj = Win32::OLE->GetObject("IIS://$server/W3svc/1/Root") or die "Couldn't get object:$!\n"; my $MyIPSec = $secobj->{IPSecurity}; $MyIPSec->{GrantByDefault} = 0; $secobj->{IPSecurity} = $MyIPSec; $secobj->SetInfo();

    Simon Flack ($code or die)
    $,=reverse'"ro_';s,$,\$,;s,$,lc ref sub{},e;$,
    =~y'_"' ';eval"die";print $_,lc substr$@,0,3;

      No joy. No errors, either. Very hard to debug an application when there are never errors printed...

      Thanks for your help. I'll continue to look at this. I can't seem to set any part of the IPSecurity key. I can set redirects, add virtual directories, and most other things, but I can't set this key.

      J. J. Horner
      Linux, Perl, Apache, Stronghold, Unix