Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Setftplogondomain.pl

by jjhorner (Hermit)
on Feb 14, 2002 at 18:27 UTC ( [id://145525]=sourcecode: print w/replies, xml ) Need Help??
Category: Win32 web stuff
Author/Contact Info J. J. Horner jhorner@2jnetworks.com
Description: For those of us who have to administer IIS installations, we find it backward that the mmc (THE IIS ADMIN TOOL!) can't set the DefaultLogonDomain property of the MSFTPSVC. Instead of using some loopy VB way to do it, I wrote a simple utility and use it now. Easy, straightforward and a small example of ADSI code.
#!/usr/bin/perl
#
# Filename:    Setftplogondomain.pl
# Author:      J. J. Horner (jh8@y12.doe.gov)
# Date:        2/14/2002
# Purpose:     Sets DefaultLogonDomain property of MSFTPSVC
#              on $machine.
# Usage:       $0 <machine_name> <new defaultlogondomain>
# License:     GPL
#          (http://www.gnu.org/licenses/licenses.html#GPL)
#
use warnings;
use strict;
use diagnostics;
use Win32::OLE;

my $DEBUG = 0;                          # In case I need to write some
+ DEBUG messages
$^W = 1;
Win32::OLE->Option(Warn => 1);          # Nice, informative error mess
+ages, but don't die.

my $usage = "\n\n $0 <machine_name> <new value>\n\n";
die $usage unless (@ARGV == 2);
my $server = shift;
my $newlogondomain = shift;

eval {
     ### GetObject and get current value.  For main FTP server IIS://$
+server/MSFTPSVC is needed
     my $ftpobj = Win32::OLE->GetObject("IIS://$server/MSFTPSVC") or d
+ie "Couldn't get object: $!\n";
     my $oldlogondomain = $ftpobj->{DefaultLogonDomain};
     
     ### Since Domains are not case sensitive, use case-insensitive re
+gexp
     if ($oldlogondomain =~ /^$newlogondomain$/i) {
          ### Already functionally the same, all done!
          print "No change needed.  Current DefaultLogonDomain setting
+ correct.\n";
     } else {
          ### Set, commit, and report...
          $ftpobj->{DefaultLogonDomain} = $newlogondomain;
          $ftpobj->SetInfo();
          print "DefaultLogonDomain changed from $oldlogondomain to $n
+ewlogondomain.\n";
     }
};
### Report any errors...
print Win32::OLE->LastError()."\n" if (Win32::OLE->LastError());

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (2)
As of 2024-03-19 06:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found