[NT] メンバー サーバー上のローカル グループを自動更新

文書翻訳 文書翻訳
文書番号: 180546 - 対象製品
この記事は、以前は次の ID で公開されていました: JP180546
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
すべて展開する | すべて折りたたむ

概要

バッチ ファイルを使用して、ドメイン環境において Windows NT Server または WindowsNT Workstation が動作しているコンピュータすべてのローカル グループに対してリモートでユーザー アカウントを追加することができます。

詳細

この資料では、ドメイン環境において、Windows NT Server または Windows NT Workstation が動作しているすべてのコンピュータの Administrators ローカル グループにユーザーを追加するバッチ ファイルの作成方法を説明します。

このバッチ ファイルは、Windows NT 4.0 リソース キットに含まれる Netdom.exe を使用して、ドメイン内でメンバー サーバーやメンバー ワークステーションとして稼働している Windows NT コンピュータの一覧が作成します。次に、一覧にある各コンピュータが現在オンラインであるかどうかを、ping を使用して調べます。コンピュータがオンラインである場合、Addusers.exe が呼び出されて、そのコンピュータの Administrators ローカル グループに新しいユーザーを追加します。オフラインのコンピュータについては、その名前がテンポラリ ファイルに置かれます。コンピュータすべてについて処理が終了すると、テンポラリ ファイルはそのドメインのコンピュータ一覧と比較され、まだアップデートされていないコンピュータの一覧が新しく作成されます。このバッチ ファイル システムは、まだ処理が必要なコンピュータだけを対象にして、何度でも実行できます。

このバッチ ファイルを作成するには、次の手順を実行します。
  1. 以下の一覧から、次のバッチ ファイルを作成します。
    INSUSER.BAT, SUB1.BAT, SUB2.BAT, SUB3.BAT, SUB4.BAT,
    SUB5.BAT, および ADDUSERS.DAT.
  2. 対象となるコンピュータが属するドメイン名を表すように INSUSER.BAT の 1 行目を変更します。
  3. 各コンピュータのローカル管理者グループに追加したいユーザーの名前を表すように Addusers.dat の 2 行目にある <domain\user> を変更します。Addusers.dat ファイルの冒頭に空白行がないことを確認してください。
  4. 変更したいドメインの管理者アカウントで、そのネットワークにログオンします。
    Windows NT 4.0 リソース キットをインストール済みで、パスが通っていることを確認してください。このシステムでは、リソース キットの Netdom.exe と Addusers.exe を使用します。
  5. INSUSER.BAT を実行します。このバッチ ファイルが完了するまで何時間もかかる場合があります。
  6. Complete.txt および Working.txt の内容を調べます。Complete.txt ファイルにはアップデート済みのコンピュータの名前が含まれ、Working.txt ファイルには、まだ処理が必要なコンピュータの名前が含まれます。
必要に応じて、手順 5 および 6 を繰り返します。

すべての処理を最初からやり直したい場合は、.txt ファイルをすべて消去したうえで、手順 1 から始めます。

Filename: INSUSER.BAT
set CurrentDomain=mydomain
echo off
cls
if (%CurrentDomain%) == (mydomain) echo Edit the first line of INSUSER.BAT.
if (%CurrentDomain%) == (mydomain) echo then rerun INSUSER.BAT
if (%CurrentDomain%) == (mydomain) goto verybottom
if not exist addusers.dat goto DisplayAddUsers
rem *** 現在の変数の設定を表示する ***
echo 現在のドメインは %CurrentDomain% です。
echo.
rem *** サーバーの一覧があるかどうかを調べます。***
If exist working.txt echo サーバーの一覧が見つかりました。続行します。
If exist working.txt goto SkipCreateList
echo %CurrentDomain% のメンバー サーバーの一覧を作成しています。
echo.
netdom /d:%CurrentDomain% member > working.txt
rem *** NETDOM を削除して書式を整えます。***
if exist temp.txt del temp.txt
for /F "skip=6 delims=\\ tokens=2" %%a in (working.txt) do call sub1.bat
%%a
del working.txt
ren temp.txt working.txt
:SkipCreateList
rem *** マシンがオンラインかどうかを調べます。***
if exist online.txt del online.txt
for /F "delims=\\ tokens=1" %%a in (working.txt) do call sub2.bat %%a
rem *** 処理済みのサーバーを WORKING.TXT から削除します。***
if not exist online.txt goto NoServersOnline
echo.
echo 処理が必要なサーバーの一覧をアップデートしています。
for /F "delims=  tokens=1" %%a in (online.txt) do call sub4.bat %%a
echo 一覧の作成が完了しました。
goto Bottom
:DisplayAddUsers
Echo.
Echo. ADDUSERS.DA の内容を編集してから、ファイル名を ADDUSERS.DAT に
Echo. 変更してください。その後、このバッチ ファイルを再実行してください。
goto verybottom
:NoServersOnline
Echo.
Echo 処理できるオンラインのサーバーがありません。
:Bottom
echo.
echo ---------------------------------------
echo --- サーバーへの処理が完了しました。---
echo ---------------------------------------
:verybottom

Filename: SUB1.BAT

rem *** Netdom 出力から削除し、書式を整えます。***
echo %1 >> temp.txt

Filename: SUB2.BAT

echo  %1 を ping テストしています...
ping %1 > PING.TXT
for /F "skip=6 delims=  tokens=4" %%a in (PING.TXT) do call sub3.bat %%a %1
del PING.TXT

Filename: SUB3.BAT

rem *** サーバーがオンラインなら、後の処理のために online.txt に記録します。**
*
rem ***    %2 はニセの変数なので捨てます。
if not (%1) == (bytes) goto NotOnline
echo %3 >> ONLINE.TXT
echo [%3 is online.]
rem *********************************************************
rem *** サーバーごとの処理コマンドはここより下に記します。***
rem *********************************************************
ECHO 新しいユーザーを %3 の Administrators ローカル グループに追加しています。
ECHO *** \\%3 *** >> local.log
rem 各メンバー サーバーの Administrator ローカル グループに
rem ユーザーを追加します。
ADDUSERS \\%3 /C addusers.dat > nul
rem *********************************************************
rem *** サーバーごとの処理コマンドはここより上に記します。***
rem *********************************************************
goto Sub3Bot
:NotOnline
:Sub3Bot

Filename: SUB4.BAT

rem *** working.txt にある名前はそのまま残し、 ***
rem *** online.txt にあったサーバーは削除します。***
echo %1 を一覧から削除しています。
if exist temp.txt del temp.txt
for /F "tokens=1" %%a in (working.txt) do call sub5.bat %%a %%1
del working.txt
if exist temp.txt ren temp.txt working.txt

Filename: SUB5.BAT

rem *** アップデート済みのサーバーは除外します。***
rem %1 は working.txt にある名前です。
rem %2 は online.txt にある名前です。
if (%1) == (%2) echo %1 >> complete.txt
if not (%1) == (%2) echo %1 >> temp.txt

Filename: ADDUSERS.DAT

[Local]
Administrators,Members can fully administer the computer,<domain\user>,

関連情報

この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 180546 (最終更新日 1998-06-08) をもとに作成したものです。

プロパティ

文書番号: 180546 - 最終更新日: 2014年2月22日 - リビジョン: 3.0
この資料は以下の製品について記述したものです。
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 Developer Edition
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
キーワード:?
kbnosurvey kbarchive kbinfo ntdomain ntsrvwkst ntsecurity KB180546
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com