PERL - добавление учетной записи AD - проверьте, существует ли учетная запись уже - PullRequest
0 голосов
/ 20 сентября 2011

Я хотел бы создать сценарий, который бы добавил учетную запись AD, но сначала проверьте наличие дубликатов.

Давайте просто скажем $ first = John $ last = Doe

Соглашение об именах:«DoeJ» Если «DoeJ» уже существует (пример: Джейн Доу), то это должна быть фамилия, первые 2 символа имени .. пример: «DoeJo».Если «DoeJo» уже существует, то фамилия, первые 3 символа имени и т. Д. *

Как мне это сделать?Я ищу примеры Sript, так как я новичок в Perl.

Ответы [ 2 ]

3 голосов
/ 20 сентября 2011

Я просто хотел немного взломать перед сном.Извините, мне сейчас лень что-либо объяснять, но я уверен, что вы найдете немало, когда будете искать что-то особенное на perldoc .

@ Everybody:Не стесняйтесь комментировать, изменять, расширять, украшать любой код, если вам так хочется.

#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my %accounts;

while (<DATA>) {
    my ( $id, $first_name, $last_name ) = split;
    my $account_name = $last_name;

    for my $letter ( split ( "" => $first_name ) ) {
        $account_name .= $letter;
        last unless exists $accounts{ $account_name };
    }

    my ( $prefix, $suffix ) = ( $account_name, 0 );
    while ( exists $accounts{ $account_name } ) {
        $account_name = $prefix . ++$suffix;
    }

    $accounts{ $account_name } = "$id: $first_name $last_name";
}

print Dumper(\%accounts);

__DATA__
1 Jane Doe
2 John Doe
3 Joho Doe
4 John Doe
5 John Doe
6 John Doe
1 голос
/ 20 сентября 2011

Всегда проверяйте CPAN ! CPAN - это комплексная архивная сеть Perl с сотнями модулей Perl, которые вы можете использовать для конкретных задач.

Там есть модуль Win32 :: AD , который выглядит так, как будто он будет делать именно то, что вы хотите. (Вы на Windows. Верно? Если нет, возможно, вам придется вернуться к LDAP. Вот пример из Perl Monks .

Я думаю, вопрос в том, сколько Perl ты знаешь. Есть команда Perl perldoc, которая может быть очень полезна. Например:

C:> perldoc Win32::AD

Распечатает документацию для модуля Win32 :: AD. Если ничего не печатается, возможно, у вас не установлен модуль. Также есть другая команда под названием cpan, которая позволяет вам загружать и указывать модули в CPAN, которые вы хотите. Я не знаю, используете ли вы Windows, Linux и т. Д., И я не знаю, работаете ли вы в Windows, используете ли вы ActiveState или Strawberry Perl, поэтому я не могу помочь вам больше, чем это.

Если вы новичок в Perl, возможно, вы захотите взглянуть на Книгу лам . Это отличная книга для начинающих по Perl. Моя самая большая претензия в том, что она мало помогает в объектно-ориентированном программировании на Perl, которое стало чрезвычайно важным в последние годы.

Обычно я рекомендую вам изучить Perl 5 , которые будут охватывать сложные структуры данных (представьте, что у вас есть массив хэшей, содержащий другие хэши). Затем, как только вы поймете, как работают ссылки, пройдите начальное руководство по объектно-ориентированному программированию.

Если вы можете дать нам еще несколько подробностей о вашей ситуации (Windows против Linux, насколько вы знакомы с Perl, знаете ли вы CPAN и т. Д.), Мы можем помочь вам немного подробнее.

...