#!/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 # 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 messages, but don't die. my $usage = "\n\n $0 \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 die "Couldn't get object: $!\n"; my $oldlogondomain = $ftpobj->{DefaultLogonDomain}; ### Since Domains are not case sensitive, use case-insensitive regexp 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 $newlogondomain.\n"; } }; ### Report any errors... print Win32::OLE->LastError()."\n" if (Win32::OLE->LastError());