# Disables the guest account on every machine on a subnet
use strict;
use Win32::AdminMisc;
use Win32::NetAdmin qw(LocalGroupGetMembers LocalGroupIsMember UsersEx
+ist);
use Net::Ping;
my (%Hash, @accounts,$p);
my $subnet='117';
for(113..113){
chomp;
my $ip="10.1.$subnet.$_";
$p = Net::Ping->new("icmp");
if ($p->ping("$ip")){
my $Domain="\\\\$ip";
my $User='Guest';
if (UsersExist($Domain, $User)){
Win32::AdminMisc::UserGetMiscAttributes( $Domain, $User, \%Has
+h );
my $Disable=$Hash{USER_FLAGS}&UF_ACCOUNTDISABLE;
if ($Disable==2){
print "$ip: $User Disabled\t";
}
elsif ($Disable==0){
$Hash{USER_FLAGS} = $Hash{USER_FLAGS}|UF_ACCOUNTDISABLE;
Win32::AdminMisc::UserSetMiscAttributes( $Domain, $User, USE
+R_FLAGS, $Hash{USER_FLAGS} );
print "$ip: $User ENABLED\t";
}
LocalGroupGetMembers($ip,"Administrators",\@accounts);
if (@accounts&&LocalGroupIsMember($ip,"Administrators", "Guest
+")){
print "Guest in Admin Group";
}
}else{
print "$ip: $User does not exist or Access Denied";
}
}else{
print "$ip: not available";
}
$p->close();
print "\n";
print OUT "\n"
}
|