#!/usr/bin/perl -w use strict; use warnings; use Win32; use Win32::OLE 'in'; my @users = &getUsers(); print "Users: \n"; print "\t", join("\n\t", @users) , "\n"; my @groups = &getGroups(); print "Groups: \n"; print "\t", join("\n\t", @groups) , "\n"; sub getGroups { my $domainurl = "WinNT://" . ( shift || Win32::NodeName ); my $domain = Win32::OLE->GetObject($domainurl) || die( Win32::OLE->LastError . "\n"); $domain->{Filter} = ["group"]; my @groups; for my $group ( in $domain ) { $groups[@groups] = $group->name; } return @groups; } sub getUsers { my $domainurl = "WinNT://" . ( shift || Win32::NodeName ); my $domain = Win32::OLE->GetObject($domainurl) || die( Win32::OLE->LastError . "\n" ); $domain->{Filter} = ["user"]; my @users; for my $user ( in $domain ) { $users[@users] = $user->name; } return @users; }