#!/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());