Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: IIS/ADSI/Win32-OLE

by $code or die (Deacon)
on Jan 15, 2002 at 05:44 UTC ( #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? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (2)
As of 2021-10-22 04:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My first memorable Perl project was:







    Results (85 votes). Check out past polls.

    Notices?