Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: IIS/ADSI/Win32-OLE

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: IISFAQ.com, cwashington.netreach.net 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 = "13.11.11.11,255.255.255.255"; 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
    jhorner@knoxlug.org http://www.knoxlug.org/
    
      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
        jhorner@knoxlug.org http://www.knoxlug.org/
        

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (3)
As of 2025-06-16 01:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.