我想創建一個腳本來添加一個AD帳戶,但首先檢查重複項。PERL - AD帳戶添加 - 檢查帳戶是否存在
讓我們只說 $第一=約翰 $去年=李四
的命名約定爲 「DoeJ」 如果 「DoeJ」 已經存在(例如:Jane Doe的),那麼它應該是姓,名字的2個字符。例如:「DoeJo」。如果「DoeJo」已經存在,那麼姓氏,名字的前3個字符,等等......
我該如何做到這一點? 我正在尋找Sript的例子,因爲我是Perl新手。
我想創建一個腳本來添加一個AD帳戶,但首先檢查重複項。PERL - AD帳戶添加 - 檢查帳戶是否存在
讓我們只說 $第一=約翰 $去年=李四
的命名約定爲 「DoeJ」 如果 「DoeJ」 已經存在(例如:Jane Doe的),那麼它應該是姓,名字的2個字符。例如:「DoeJo」。如果「DoeJo」已經存在,那麼姓氏,名字的前3個字符,等等......
我該如何做到這一點? 我正在尋找Sript的例子,因爲我是Perl新手。
我只是想在入睡之前進行一些入侵操作。對不起,我現在懶惰地解釋任何事情,但我相信你會發現,當在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
總是檢查CPAN! CPAN是具有數百個Perl模塊的綜合Perl歸檔網絡,可用於特定任務。
碰巧有一個Win32::AD模塊,看起來它會做你想要的。 (你在的Windows右鍵是?如果沒有,你可能要回落到LDAP。下面是Perl Monks一個例子。
我想這個問題是多少的Perl你知道。有一個稱爲一個Perl命令perldoc
這是非常有用的,例如:。
C:> perldoc Win32::AD
會打印出對Win32的文檔:: AD模塊如果沒有打印,您可能沒有安裝該模塊還有另一個命令調用cpan
它允許你下載和指定你想要的CPAN中的模塊,我不知道你是否在Windows,Linux等等,我不知道是否無論你使用的是ActiveState還是Strawberry Perl,你都在Windows上,所以我不能給你更多的幫助。
如果您是Perl新手,您可能需要查看Llama Book。這是一本非常好的開始Perl書,我最大的抱怨是,它在近幾年來變得非常重要的面向對象的Perl編程方式上沒有多大作用。
我通常建議您通過Perl 5 tutorials,它將涵蓋複雜的數據結構(想象一個包含其他散列的散列數組)。然後,一旦瞭解了引用的工作方式,請閱讀面向對象編程的初始教程。
如果您可以給我們提供一些有關您的情況的詳細信息(Windows與Linux,您對Perl的熟悉程度,您是否知道CPAN等),我們可以爲您提供更多幫助。
我是中級Perl .. Llama的書震撼了! –
所以你知道CPAN。我使用'Net :: LDAP'來訪問活動目錄(這就是'AD'的意思,對嗎? –
是的,我現在正在使用Win32:AD和Net:LDAP。 –
美麗!這給了我需要的跑步開始!你搖滾揚和吉姆。謝謝!!! –