Benutzer:Kirmse/delixs-machinelist
Zur Navigation springen
Zur Suche springen
delixs-machinelist
- Dieses Script dient dazu, die (Windows-)Rechner aufzulisten
- Parameter: --help oder -h,
- Aufruf: delixs-machinelist
das Script
<source lang="perl">
- !/usr/bin/perl
use warnings; use strict;
use Net::LDAP; use Getopt::Long;
my ($ldap, $ldap_base, $mesg, @pcs);
- falls --help, dann Ausgabe der Hilfe (siehe &help) und beenden
GetOptions('help' => \&help);
- wir holen uns die Such-Basis ($ldap_base) aus der ldap.conf
open DATEI, '<', '/etc/ldap/ldap.conf'
or die "Abbruch: konnte ldap.conf nicht oeffnen, $!\n";
while (my $zeile = <DATEI>) {
if ($zeile =~ m/^\s*base\s+(\w.*\w)\s*$/i) { $ldap_base = $1; last; }
} close DATEI;
- wir verbinden uns mit dem LDAP
$ldap = Net::LDAP->new('127.0.0.1', version => 3) or die "Abbruch: $@"; $ldap->bind or die "Abbruch: konnte mich nicht mit dem LDAP verbinden";
- wir holen uns die eingetragenen Machinenaccounts
$mesg = $ldap->search(
base => "ou=machines,ou=accounts,$ldap_base", filter => 'gidNumber=1004', attrs => ['uid', 'cn', 'uidNumber'] );
- wenn Fehlercode, dann das Script mit Fehlermeldung sterben lassen
$mesg->code and die $mesg->error;
- wir trennen uns vom LDAP
$ldap->unbind;
- Ausgabe
if (scalar $mesg->entries > 0) {
foreach my $entry ($mesg->entries) { push @pcs, $entry->get_value('cn'); } @pcs = sort @pcs; foreach my $rechnername (@pcs) { print $rechnername, "\n"; }
} else {
print "Warnung: keinen Maschinen-Account gefunden!\n";
}
- Programm-Ende #####################################
- Wenn Parameter -h uebergeben wurde, dann Hilfe ausgegeben und beenden
sub help {
print "Hilfe muss noch erstellt werden.\n"; exit (0);
}
__END__
</source>