|
| Perl & Win2000 AD Fra : Soren Schimkat |
Dato : 21-03-01 14:26 |
|
Hey
Søger med lys og lygte efter et eller andet der kan sætte mig igang med
at administrere brugere i Windows 2000 server Active Directory.
Har du et link eller en stump kode... så tøv ikke.
mvh Søren Schimkat
| |
Thomas Eibner (21-03-2001)
| Kommentar Fra : Thomas Eibner |
Dato : 21-03-01 15:43 |
| | |
Lars Kim Lund (21-03-2001)
| Kommentar Fra : Lars Kim Lund |
Dato : 21-03-01 15:53 |
|
Hej Soren Schimkat <schimkat@musik.auc.dk>
>Søger med lys og lygte efter et eller andet der kan sætte mig igang med
>at administrere brugere i Windows 2000 server Active Directory.
>
>Har du et link eller en stump kode... så tøv ikke.
Hvis ikke perl er et ultimativt krav så kig også på MSDN efter ADSI
dokumentation, det er nok den letteste indgangsvinkel til at scripte
administration i AD.
--
Lars Kim Lund
http://www.net-faq.dk/
| |
Soren Schimkat (02-04-2001)
| Kommentar Fra : Soren Schimkat |
Dato : 02-04-01 08:07 |
|
Hey
Nu er jeg komme lidt nærmere ... men også kun lidt. Nogen med erfaring
der vil dele lidt ud?
Dette virker fint... (det skulle det nu også da det er eksempel koden
fra Net::LDAP modulet)
#!/usr/bin/perl
use Net::LDAP;
$ldap = Net::LDAP->new('ldap.bigfoot.com') or die "$@";
$ldap->bind;
$mesg = $ldap->search (base => "c=US", filter => "(&(sn=Barr) (o=Texas
Instruments))");
$mesg->code && die $mesg->error;
foreach $entry ($mesg->all_entries) { $entry->dump; }
$ldap->unbind;
Dette Virker ikke (alle mulige underlige fejl):
#!/usr/bin/perl
use Net::LDAP;
$ldap = Net::LDAP->new('win2k.dk') or die "Connect error: $@";
$ldap->bind (dn => 'cn=Administrator', password => '********');
$mesg = $ldap->search (base => "ou=Users,dc=win2k,dc=dk", filter =>
"cn=Administrator");
$mesg->code && die "Search Error: ". $mesg->error;
foreach $entry ($mesg->all_entries) {
print $entry->dump;
}
$ldap->unbind;
-Søren
Soren Schimkat wrote:
>
> Hey
>
> Søger med lys og lygte efter et eller andet der kan sætte mig igang med
> at administrere brugere i Windows 2000 server Active Directory.
>
> Har du et link eller en stump kode... så tøv ikke.
>
> mvh Søren Schimkat
--
MVH Soren Schimkat, EDB Kontoret
| |
Ask Bjoern Hansen (02-04-2001)
| Kommentar Fra : Ask Bjoern Hansen |
Dato : 02-04-01 14:44 |
|
Soren Schimkat <schimkat@musik.auc.dk> writes:
[...]
> Dette Virker ikke (alle mulige underlige fejl):
Jeg er bange for at du kommer til at fortaelle hvad "alle mulige
underlige fejl" er for at faa hjaelp.
Se ogsaa http://perl.plover.com/Questions.html
- ask
--
ask bjoern hansen - http://ask.netcetera.dk/
| |
Soren Schimkat (04-04-2001)
| Kommentar Fra : Soren Schimkat |
Dato : 04-04-01 14:21 |
|
Fik det til at virke selv:
-------------------------------------------------------------------
#!/usr/bin/perl
use Net::LDAP;
# Getting user input
print "Enter the user you wan't to see: ";
chop($user = <STDIN>);
system "stty -echo";
print "Enter password for the Windows 2000 Administrator: ";
chop($passwd = <STDIN>);
print "\n";
system "stty echo";
# Connecting
$ldap = Net::LDAP->new('win2k.musik.auc.dk', onerror => 'die');
$ldap->bind (dn =>
'CN=Administrator,cn=Users,dc=ws,dc=humfak,dc=auc,dc=dk', password =>
$passwd);
# Searching
$mesg = $ldap->search (base =>
"CN=Users,dc=ws,dc=humfak,dc=auc,dc=dk",
filter => "sAMAccountName=$user",
attrs => "*");
# Dumbing output
%wanted = (name => 'Fullname',
mail => 'Email adress',
wWWHomePage => 'Web adress',
distinguishedName => 'DN');
$entries = $mesg->count;
for($i = 0 ; $i < $entries ; $i++) {
$entry = $mesg->entry($i);
print "\n";
foreach my $attr ($entry->attributes) {
if ($wanted{$attr}) {
print $wanted{$attr} . "\t=\t" . $entry->get_value($attr) .
"\n";
}
}
print "\n";
}
# Unbinding
$ldap->unbind;
-------------------------------------------------------------------
-Søren
Soren Schimkat wrote:
>
> Hey
>
> Søger med lys og lygte efter et eller andet der kan sætte mig igang med
> at administrere brugere i Windows 2000 server Active Directory.
>
> Har du et link eller en stump kode... så tøv ikke.
>
> mvh Søren Schimkat
| |
Soren Schimkat (05-04-2001)
| Kommentar Fra : Soren Schimkat |
Dato : 05-04-01 09:35 |
|
Hej igen
Nu kan jeg faktisk også oprette brugere.. men jeg kan ikke finde ud af
at sætte password eller at aktivere kontoen.... nogen der har en ide?
mvh Søren
---------------------------------------------------------
#!/usr/bin/perl
#
# Change the values of %userdata before running this script.
# and change all localdomaine's to .... whatever.
#
use Net::LDAP;
# Getting user input
system "stty -echo";
print "Enter password for the Windows 2000 Administrator: ";
chop($passwd = <STDIN>);
print "\n";
system "stty echo";
# Connecting
$ldap = Net::LDAP->new('windowsserver.localdomaine.com', onerror =>
'die');
$ldap->bind (dn => 'CN=Administrator,cn=Users,dc=localdomaine,dc=com',
password => $passwd);
%userdata = ( username => 'test@localdomaine.com',
samusername => 'test',
givenname => 'Test',
surname => 'Testguy',
fullname => 'Test Testguy',
mail => 'test@localdomaine.com',
www => ' http://www.localdomaine.com/~test');
$dn = "cn=$userdata{fullname},cn=users,dc=localdomaine,dc=com";
$result = $ldap->add ( dn => $dn,
attr => [ 'userPrincipalName' =>
$userdata{username},
'sAMAccountName' =>
$userdata{samusername},
'name' =>
$userdata{fullname},
'displayName' =>
$userdata{fullname},
'givenName' =>
$userdata{givenname},
'sn' =>
$userdata{surname},
'mail' => $userdata{mail},
'wWWHomePage' => $userdata{www},
'objectclass' => [ 'top',
'person',
'organizationalPerson',
'user' ], ] );
$result->code && warn "failed to add entry: ", $result->error ;
# Unbinding
$ldap->unbind;
---------------------------------------------------------
| |
Soren Schimkat (11-04-2001)
| Kommentar Fra : Soren Schimkat |
Dato : 11-04-01 11:04 |
|
Hey
Syntes lige jeg ville dele lidt ud - her er et script der kan prestage
en maskine.
mvh Søren
--------------------------------------------------------
#!/usr/bin/perl
use Net::LDAP;
# Getting user input
print "Enter computername (Xxxxxxxxxxxxxxx) : ";
chop($computername = <STDIN>);
print "Enter MAC-adress (xx xx xx xx xx xx) : ";
chop($mac = <STDIN>);
$mac =~ s/\W//g;
print "Enter password for the Windows 2000 Administrator: ";
system "stty -echo";
chop($passwd = <STDIN>);
system "stty echo";
print "\n";
# Connecting
$ldap = Net::LDAP->new('win2k.localdomaine.dk', onerror => 'die');
$ldap->bind (dn => 'CN=Administrator,cn=Users,dc=localdomaine,dc=dk',
password => $passwd);
%computerdata = ( Name => $computername,
SAM => $computername . "\$",
DNS => $computername . ".localdomaine.dk",
Guid => pack("H*", "00000000000000000000" .
$mac),
Institute => $institute,
Type => $type);
$dn = "cn=$computerdata{Name},cn=computers,dc=localdomaine,dc=dk";
$result = $ldap->add ( dn => $dn,
attr => [ 'name' =>
$computerdata{Name},
'sAMAccountName' =>
$computerdata{SAM},
'dNSHostName' =>
$computerdata{DNS},
'netbootGUID' =>
$computerdata{Guid},
'netbootMachineFilePath' => 'Win2k',
'netbootInitialization' =>
'\\\\WIN2K\\REMINST\\Setup\\DANISH\\IMAGES\\win2000.pro',
'userAccountControl' => '544',
'objectclass' => [ 'top',
'computer'], ] );
$result->code && warn "failed to create comuter: ", $result->error ;
# Unbinding
$ldap->unbind;
| |
|
|