in reply to Retriving a list of machine names on a NT domain

try

use Win32::NetAdmin; my @users; Win32::NetAdmin::GetUsers("\\\\PDC",'',\@users); my @computers = grep { /\$$/ } @users; print join("\n",@computers);

Replies are listed 'Best First'.
(tye)Re: Retriving a list of machine names on a NT domain
by tye (Sage) on Mar 28, 2001 at 23:38 UTC

    And you can use

    my $dc; Win32::NetAdmin::GetAnyDomainController('','',$dc);
    to get the name of a domain controller for use above. Or, putting it all together:
    #!/usr/bin/perl -w use strict; use Win32::NetAdmin qw( FILTER_SERVER_TRUST_ACCOUNT FILTER_WORKSTATION_TRUST_ACCOUNT ); my( $dc, @comps ); my $domain= @ARGV ? $ARGV[0] : ""; Win32::NetAdmin::GetAnyDomainController('',$domain,$dc) or die "Can't find my domain controller: $^E\n"; Win32::NetAdmin::GetUsers( $dc, FILTER_SERVER_TRUST_ACCOUNT|FILTER_WORKSTATION_TRUST_ACCOUNT, \@comps ) or die "Can't lookup domain members: $^E\n"; s/\$$// for @comps;

    Note that Microsoft changed the definition of "server" and "workstation" early on in the game and in the above code "SERVER" really means "domain controller" and "workstation" really means "domain member computer that isn't a domain controller". So you can request those two lists separately if you like.

            - tye (but my friends call me "Tye")