Active Directory(MS Windows Server 2003で発生)で100500人の新規ユーザーをすばやく「ドロップ」する方法、またはActive Directoryでユーザーアカウントを追加するスクリプト

たまたまシステム管理者という職業を選びました。 そして、私はこの6年間、この恩知らずの出来事をほぼ6年間続けてきました。

数年前、質問が後でタスクになりました。これは、MS Windows Server 2003でADに新しいユーザーアカウントを比較的迅速に作成する方法でしたか?



誰もが、いわば「ペン」でドメインにユーザーを追加する方法を知っていると思います。 つまり、新しいADユーザーアカウントを追加するには、次のような操作を行う必要があります:上記のOSのユーザーとコンピュータースナップインを開き、対応するOU(Organization Unite)を開き、既知の方法のいずれかを使用してユーザー作成を開始し、開いたウィンドウで1人のユーザーを作成します別の後に。 同意します。これは、特に必要なユーザーアカウントが10ではなく、300、500以上の場合、非常に長く退屈です。 特に、これは「ログイン」フィールドと「パスワード」フィールドだけでなく、さまざまなタブにある「姓」、「名、ミドルネーム」、「役職」、「部署」、「組織」フィールドに入力する必要がある場合に面倒になります「など。 もちろん、「コピーと貼り付け」と「ブラインドタイピング」の方法をキャンセルした人はいないと言いますが、試してみると、どのアカウントでユーザーが疲れるのか、疲れていない場合はデータが詰まっているときに発生したエラーの数をカウントできます。

一般に、私はこれで何かをする必要があることに気づき、時間が限られていたため、私は本能が示唆するように、存在するスクリプトを見つけてこの問題を解決するためにインターネットリソースに頼りました。 悲しいかな、私は見たものに実質的に失望しました。 インターネットには、AD環境のさまざまなタスクを自動化するためのあらゆる種類のスクリプトがあふれていましたが、私が必要としていたものは完全に欠けていました。 私は英語のリソースに頼らなければなりませんでしたが、そのうちの1つ(また、執筆時点ですでにサイトリンクを失っていたので、どこを見るべきか考えていました。見つけたら公開します)VBSには特定の「魚」スクリプトが非常に「生」でありました私がテストシステムで使用しようとしたときに判明したフォームは何にもつながりませんでした-後で見つけたように、多くの欠陥と軽微なエラーが存在するため、先験的には機能しませんでした 私は修正し、コードを追加し、すべてに加えて、小さなVBSプログラマーにならなければなりませんでした:)

このために、ADのユーザーアカウントを事前作成されたOU(レベル1)に追加するためのスクリプトを、尊敬される裁判所に紹介させてください。 なぜOUが自動的に作成されないのかという疑問が生じた場合、これを行う方法が見つからなかったと事前に答えます。ADで行われた変更に対するコントロールは非常に厳しいです。サンドボックスではなく、強力で機能する本物の有形の変更を行う必要がありますタイムシステム、いわゆる「Active Directory」。



重要なお知らせ!

事前に、区切り文字「;」を含むファイルを作成する必要があります 必須パラメーター:

ログイン; パスワード 名 姓 位置; 部門; 組織

末尾の区切り文字「;」が必要です 各行に、たとえば:

sirin-bird1; password1; 名1; 姓1; ポジション1; Department1; 組織1;

sirin-bird2; password2; 名前Patronymic2; 姓2; ポジション2; Department2; 組織2;

sirin-bird4; password3; Name2 Patronymic3; 姓3; ポジション3; Department3; 組織3;

sirin-bird3; password4; 名前Patronymic 4; 姓4; ポジション4; Department4; 組織4;

sirin-bird5; password5; Name2 Patronymic5; 姓5; ポジション5; Department5; 組織5;

... ... ... ... ... ... ... ...

そのようなファイルの作成は、初歩的なテキストエディタを扱うことができる未熟な人に任せることができます。 そして、謙虚な使用人がやったように、セパレーターの正しいタイプと配置をチェックしてください。



もう一つの重要なポイント!

「Organization」パラメーターは対応するユーザーのOUであり、このスクリプトによって作成されません。そのため、これが機能するには、まずドメインのルート(OUフォルダー「Users」の近く)に対応するOUを作成します。 これは、私のドメインには、独自のユーザーユーザーを持つクライアント組織が複数あったためです。



したがって、スクリプト自体:

objArgs = WScript.Argumentsを設定します

objArgs.Count = 0の場合

WScript.Echo「ユーザーをドメインに追加します。」

WScript.Echo「add_to_ad.vbs [ファイル名]」

WScript.Echo "[ファイル名]-ユーザーのリストを含むファイル"

WScript.Echo "ファイル形式:ログイン;パスワード;名;姓;位置;部署;組織;"

WScript.Quit

終了する場合

パス= objArgs(0)



Set fso = CreateObject( "Scripting.FileSystemObject")

objFile = fso.OpenTextFile(path、1)を設定します

objFile.AtEndOfStreamまで行う

str = objFile.ReadLine

for i = 1 to Len(str)step 1

strCh = Mid(str、i、1)

strCh = ";"の場合 それから

ケースZを選択

ケース0

UserName = strRez '***ログイン

ケース1

UserPassword = strRez '***パスワード

ケース2

FirstName = strRez '***名

ケース3

LastName = strRez '***姓

ケース4

タイトル= strRez '***位置

ケース5

部門= strRez '***部門

ケース6

会社= strRez '***組織

'ケース7

'Manager = strRez' ***マネージャー

'ケース8

'OfficeRoom = strRez' ***ルーム

終了選択

strRez = ""

strCh = ""

Z = Z + 1

他に

strRez = strRez + strCh

終了する場合

次の

strRez = ""

strCh = ""

Z = 0



Set objRoot = GetObject( "LDAP:// RootDSE")

objADSystemInfo = CreateObject( "ADSystemInfo")を設定します

DomainDNSName = objADSystemInfo.DomainDNSName

DomainDN = objRoot.Get( "DefaultNamingContext")

ContainerDN = "ou ="&Company& "、"&DomainDN



pName = UserName& "@"&DomainDNSName '"@ snb.local"



'!!! 重要!!! ***新しいユーザーが急いでいる高度な作成済みOUを示します*******



Set objOU = GetObject( "LDAP://"&ContainerDN)



'*****************************ユーザーアカウントドメインを作成******************* *****

Set objUser = objOU.Create( "User"、 "cn =" + UserName)

'****ログイン*****

objUser.Put "sAMAccountName"、UserName

objUser.SetInfo



'******パスワード*******

Set objUser = GetObject( "LDAP:// cn =" + UserName + "、" + ContainerDN)

objUser.SetPassword UserPassword



'******* UPN **********

objUser.Put "userPrincipalName"、pName



'******アカウントのシャットダウン*******

objUser.AccountDisabled = TRUE



'********名前*********

objUser.Put "givenName"、FirstName



'*****姓*********

objUser.Put "sn"、LastName



'*****表示名******

objUser.Put "displayName"、LastName& ""&FirstName



''イニシャル

objUser.Put "initials"、左(FirstName、1)& "。" '&左(姓、1)



'*****位置******

objUser.Put "title"、タイトル



'*****部門******

objUser.Put "department"、部門



「組織

objUser.Put "Company"、Company



「頭

'objUser.Put "manager"、マネージャー



'部屋

'objUser.Put "physicalDeliveryOfficeName"、OfficeRoom



'*****セット。 次回ログイン時にパスワードの変更が必要***

objUser.Put "pwdLastSet"、CLng(0)



objUser.SetInfo



'WScript.Echo "ユーザー-" +ユーザー名+ "ADに追加"



ループ

WScript.Echo「ADに追加されたユーザー」

objFile.Close



スクリプトに挿入される追加コード:



''ホームディレクトリ

'objUser.Put "HomeDirectory"、strHomeDirPath



「メールボックス

'objUser.Put "mailNickname"、strName



「サイト

'objUser.Put“ wWWHomePage”、“ www.test.com



'その他の例:

'ObjUser.Put "説明"、 "2年目"

'objUser.Put "physicalDeliveryOfficeName"、sOfficeName

'objUser.Put“ ProfilePath”、sScPath

'sHDrive objUser.Put“ HomeDrive”、“ Z”

'objUser.Put“ TerminalServicesProfilePath”、sTermProf

'objUser.Put“ TerminalServicesHomeDirectory”、sTermHDir



テキストエディターからのコードは、拡張子.vbsで保存する必要があります

スクリプトは、ファイルからパラメーターを渡すことで起動します。

例:script.vbs users.txt

どこで

script.vbs-スクリプト自体

users.txt-入力データを含むファイル。



スクリプトの実行には、瞬時の出力で数秒かかります。

コードからわかるように、2、3行のコメントを外し、入力パラメーターを使用してファイルに追加すると、マネージャーと部屋番号も「自動的に」作成できます。 スクリプトは無期限に開発できます。 たとえば、「電話」などのフィールドに同じ方法で入力する機能を追加します。

Windows用のテキストエディターとして、無料で使用できる非常に機能的なNotepad ++についてアドバイスできます。

VBSにスクリプトがある便利なリンクの1つ: forum.sysadmins.su

提供された情報が誰かにとって非常に有用で必要であることを願っています。



All Articles