Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?


by $code or die (Deacon)
on Jan 15, 2002 at 05:44 UTC ( [id://138790]=note: print w/replies, xml ) Need Help??

in reply to IIS/ADSI/Win32-OLE

I've written code to do this before, but don't have access to it at the moment. So I'll do my best with what I can remember.

Are any errors produced when you do:
$MyIPSec->{IPGrant} = \@IPList; $secobj->SetInfo();

I did a lot of work on IIS last year with ADSI and perl. The following websites were helpful:, and MSDN. If you can comprehend VBScript they will help. Also, download MetaEdit from MS which lets you browse the IIS metabase - gives you a quick access to what properties are where and what they are currently set to..

NOTE: Also, whatever you do keep backups of your metabase - I've corrupted quite a few during the course of my work (of course - it was only a test machine)

updated: changed [ $newip ] to \@IPList to be more consistent with original code

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

Replies are listed 'Best First'.
Re: Re: IIS/ADSI/Win32-OLE
by jjhorner (Hermit) on Jan 15, 2002 at 06:54 UTC

    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
      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

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://138790]
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (5)
As of 2024-05-21 21:26 GMT
Find Nodes?
    Voting Booth?

    No recent polls found