use warnings; use strict; use Win32::NetAdmin qw(GetUsers GetServers GetDomainController LoggedO +nUsers UserGetAttributes UserSetAttributes FILTER_NORMAL_ACCOUNT SV_T +YPE_ALL ); use Fcntl; my $domain; my $pdc; ($domain = Win32::DomainName) or die "Unable to obtain the domain name"; Win32::NetAdmin::GetDomainController("", $domain, $pdc) or die "Unable to obtain the PDC name for $domain."; print "Get Domain Controller returned: $pdc\n"; my %machines; GetServers("", $domain, SV_TYPE_ALL, \%machines) or die "GetServers failed: $!\n"; print "\n\n===Machine to User Mapping\n"; my %users_machine; foreach my $machine (sort keys(%machines)) { my @users; unless(LoggedOnUsers($machine, \@users)) { warn "LoggedOnUsers for machine $machine failed: $!\n" +; next; } my %unique_users; $unique_users{$_}++ for @users; foreach (sort keys(%unique_users)) { unless($_ eq $machine."\$") { print "$machine: $_\n"; push @{ $users_machine{$_} }, $machine; my $dbmkey = $machine . ":" . $_; } } } print "\n\n===User to Machine Mapping\n"; print "$_ => ", join(",", @{$users_machine{$_}}), "\n" for (sort keys( +%users_machine));
In reply to Re: Script to capture logged on users
by davis
in thread Script to capture logged on users
by devon22
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |