私は現在、PowerShellとBatchを使用して大量のユーザー作成スクリプトに取り組んでいます。現在、スクリプトは95行で、これまでにバッチで作成した中で最大のスクリプトです。
スクリプトを可能な限り自動化し、大量のユーザーの作成を支援する必要のあるクライアントにスクリプトを提供することを計画しています。これを行うには、21行の設定ファイルがあり、必要な変数の1つは完全なドメイン名です(これはdsaddに必要です)
これに伴う問題は、ユーザーがこれに対応する変数をいくつでも持つ可能性があることです。テストラボの2つから、学校のような場所の4つまでです。これまでのところ、トークンを分離することはできますが、すべてを%% a、%% bなどの変数として保存する必要があり、すべてを%%aとして保存する必要はありません。トークンの数は動的になるので、これに対する何らかの解決策が必要です。このようなもの(はい、これは正しい構文ではないことを私は知っています):
if number of tokens=4 (
dsadd "cn=%%a,ou=%%b,dc=%DSuffix1%,dc=%DSuffix2%,dc=%DSuffix3%,dc=%Dsuffix4% )
その行の%%aと%%bは、ユーザーリストのExcelファイルから読み取るコードの後半にある別のforループの変数です。2つのトークンから4つのトークンまで、そのようなものが必要になります。これに対する解決策が純粋にBATCHでなくてもかまいませんが、それが私の好みのオプションです。
ありがとう。
編集:これが私が現在持っているforループです、これはユーザーを追加する別のより大きなforループにネストされています:
for /f "tokens=1,2,3,4 delims=." %%a in (Settings.ini) do (
set L=22
if !L!=22 set DSuffix1=%%a&& set DSuffix2=%%b&& set DSuffix3=%%c&& set DSuffix4=%%d
)
settings.iniファイルには、Exchangeサーバーやユーザーのホームディレクトリへのパスなど、さまざまな設定が含まれています。私が解釈する必要がある行は次のように見える22行目です。
DOMAINNAME.SUFFIX(.SUFFIX.SUFFIX.SUFFIX)実際の例は次のようになります:testlab.localまたはtestlab.ghamilton.local
テストラボの場合、設定はドメイン名とサフィックスのみにする必要がありますが、学校や機関などの他の場合、ドメインサフィックスの数は最大4つまで可能です。これを解釈したい。
編集:コードを正しくインデントすることができました、申し訳ありません。