【2026最新】Active Directory ユーザー追加の全手法|GUI・コマンド・CSV一括登録からエラー解決までインフラエンジニアが徹底解説

Windowsサーバーの運用や社内システム管理において、もっとも頻繁に発生するコア業務の一つが「Active Directory(アクティブディレクトリ、以下AD)へのユーザー追加」です。
Windows ServerにADの役割をインストールし、ドメイン環境を構築した直後、管理者がまず最初に行うべき実務が、このユーザー作成と適切なグループへの追加です。しかし、いざ実務で作業を行うと、「パスワードポリシーのエラーで先に進めない」「組織変更で大量のユーザー登録を手動で行うのが苦痛」「PowerShellやコマンドでの指定方法がわからない」といった多くの壁にぶつかりがちです。
この記事では、インフラ実務の経験に基づき、GUIツール(dsa.msc / ADAC)での基本手順から、CUI(dsadd)、PowerShell、さらにはExcelやCSVを用いた100人以上の一括自動登録テクニックまでを完全網羅。実務で遭遇するエラーへの対処法や、忘れてはならないセキュリティグループの権限設計、AD構築・インストール時の注意点まで、情報の解像度を極限まで高めて徹底解説します。
1. Active Directory(AD)でユーザーを追加する前に知っておくべき前提知識
ADにユーザーを追加するボタンを押す前に、システム管理者として必ず把握しておくべき「3つの基本概念」があります。これらを疎かにすると、セキュリティ事故やアカウント作成エラーの原因になります。
【図解:AD構築・インストールからユーザー利用までのワークフロー】
[1. Windows ServerにAD役割をインストール]
↓
[2. ドメイン環境の構築(ドメインコントローラー化)]
↓
[3. 組織単位(OU)の設計・作成]
↓
[4. ユーザー追加(ユーザー作成)] ──★本記事で徹底解説!
↓
[5. セキュリティグループへの追加]
↓
[6. ファイルサーバー等の権限付与・クライアントPCでの利用開始]
ユーザー追加に必要な管理者権限
ADオブジェクト(ユーザーやコンピューターなど)を追加・編集・削除するには、ドメインコントローラーに対して適切な実行権限を持っている必要があります。一般ユーザーのアカウントでは追加できません。
※ドメインコントローラー:Active Directoryのデータベースを保持し、ユーザーの認証や認可を一元管理する中心的なサーバーのことです。
- Domain Admins(ドメイン管理者):ドメイン内のすべての権限を持つ最強の特権グループです。ADの構築や初期設定には必須ですが、普段の運用で常用するのはセキュリティリスクが高まります。
- Account Operators(アカウント作成担当者):ユーザーやグループ、コンピューターアカウントの作成・変更・削除に特化した権限を持つグループです。日々の運用の割り当てにはこのAccount Operatorsグループを使用するのが、最小権限の原則に基づく安全なセキュリティ設計です。
忘れると作成エラーに!ADが求める「パスワードの複雑性」要件
ADの標準設定(デフォルトのドメインポリシー)では、アカウントハッキングや不正アクセスを防ぐために「パスワードの複雑性の要件」が最初から有効化されています。インストール直後の初期状態のまま、このポリシーを無視した単純なパスワード(例: password123 など)を指定してユーザー追加を行おうとすると、アカウント作成の最終ステップで確実にエラーが発生します。
| ポリシー項目 | 標準の要件内容(デフォルトドメインポリシー) |
| 文字の種類 | 次の4種類のうち3種類以上を必ず混在させること: ①大文字(A〜Z) ②小文字(a〜z) ③数字(0〜9) ④記号(!, $, #, % など) |
| 最小文字数 | デフォルトでは7文字以上に設定されています。 ※実務の組織(GPO設定)では、セキュリティ強化のため12〜14文字以上に設定されている場合が多いです。 |
| 拒否条件 | ユーザーのアカウント名(sAMAccountName)やフルネーム(氏名)の一部をそのまま含んでいないこと。 |
※グループポリシー(GPO):ドメイン内のユーザーやコンピューターの設定を一括で強制・管理するADの標準機能のことです。
LSIキーワード解説:OU(組織単位)、sAMAccountName、UPNとは?
ADの管理やコマンド操作を行う上で、日常的に登場する最重要用語です。前提知識のない方でもスムーズに理解できるよう、1行補足を含めて以下に整理しました。
- OU(Organizational Unit / 組織単位):ドメイン内でユーザーやコンピューターを「営業部」「開発部」などのフォルダ分けのように階層管理するための容器(コンテナ)です。GPO(グループポリシー)を適用する最小単位でもあります。
- sAMAccountName(Windows 2000以前のユーザーログオン名):ドメイン内で絶対に重複してはならない一意のユーザーID(例: tanaka.taro)です。システム内部での紐付けや、古いファイルサーバーへの認証に多用されます。
- UPN(User Principal Name / ユーザープリンシパル名):メールアドレスのような形式のログオン名(例: tanaka.taro@example.local)です。モダンなWindows環境や、Microsoft 365 / Microsoft Entra ID(旧Azure AD)とのクラウド連携認証における主軸となります。
2. 【GUI編】もっとも確実なユーザー追加の基本手順2選
まずは、Windows Serverの標準ツールを使った、目で見て直感的に確認できる2つのユーザー作成方法を解説します。少人数(1〜5人程度)のユーザー追加であれば、ミスが起きにくいためこの方法がもっとも確実です。
【図解:ADにおけるオブジェクトの階層構造イメージ】
[ 企業ドメイン:example.local ]
│
├── [ OU:Tokyo_Branch ] (東京支店)
│ │
│ └── [ ユーザー:田中太郎 (tanaka.taro) ] ★ここに作成する
│
└── [ Users コンテナ ] (デフォルトの格納先:通常はOUへの作成を推奨)
手法A:定番の「Active Directory ユーザーとコンピューター(dsa.msc)」を使う
Windows Serverの初期の頃から実装されており、現在も多くのインフラエンジニアやシステム運用担当者の間で主流として使われている管理コンソールです。
- ドメインコントローラー、またはリモート管理ツール(RSAT)を導入した管理用PCで「サーバーマネージャー」を開き、右上メニューの [ツール] > [Active Directory ユーザーとコンピューター] を起動します(「ファイル名を指定して実行」から dsa.msc と入力しても直接起動できます)。
- 左側のツリービューを展開し、ドメイン名(例: example.local)の下にある、ユーザーを追加したい任意の【OU】(例: Tokyo_Branch)を選択して右クリックします。
- コンテキストメニューから [新規作成] > [ユーザー] をクリックします。
- 「新しいオブジェクト - ユーザー」ダイアログが表示されるので、以下の必須情報を入力し、[次へ] を選択します。
- 姓 / 名:ユーザーの氏名をそれぞれ入力します。
- フルネーム:姓と名が自動的に結合されて表示されます。
- ユーザーログオン名:任意の半角英数字のIDを入力します(これがUPNおよびsAMAccountNameのベースになります)。
- パスワード設定画面で、前述の「複雑性の要件」を満たす初期パスワードを入力・確認入力します。その後、以下のチェックボックスを用途に合わせて選択して [次へ] を進めます。
- 「ユーザーは次回ログオン時にパスワードを変更する必要がある」:セキュリティ担保のため通常はオンにします。これにより、管理者が設定した初期パスワードを本人しか知らないパスワードへ初回ログイン時に強制変更させます。
- 「パスワードを無期限にする」:サービスアカウントやシステム連携用ユーザーを作成する場合にのみオンにします(一般ユーザーではオフを強く推奨)。
- 最後に表示される概要画面で、入力したログオン名や格納先OUに間違いがないか最終確認し、[完了] をクリックすれば、対象のOU内に新しいユーザーアカウントが追加されます。
手法B:モダンな管理画面「Active Directory 管理センター(ADAC)」を使う
Windows Server 2012以降の環境で導入され、Microsoftが使用を推奨している、Webベースのような洗練されたUIを持つ管理コンソールです。
- サーバーマネージャーの右上メニューから [ツール] > [Active Directory 管理センター] を起動します。
- 左メニューのドメイン名をクリックし、ユーザーを追加したい対象のOUをダブルクリックして開きます。
- 右側の「タスク」ペイン、または画面中央の空欄の右クリックメニューにある [新規] > [ユーザー] をクリックします。
- ユーザー作成用の詳細な1枚の管理シートが表示されます。「アカウント」セクションにおいて、氏名、ユーザーログオン名(UPN)、sAMAccountName、初期パスワード、さらには所属させるグループまでを画面遷移なしでまとめて1画面で入力できるため、効率的に作業が行えます。
- すべての必要項目の入力が完了したら、最下部の [OK] を押すことで設定内容が保存されます。
【実務Tips】既存メンバーの権限を引き継ぐ「ユーザーのコピー」手順
実務において、「新入社員のAさんを、既存の先輩社員であるBさんと全く同じ配属部署のアクセス権限でアクティブディレクトリ ユーザー追加をしたい」というケースは非常に多く発生します。この場合、ゼロから新規作成して手動でグループへの追加を繰り返すのではなく、ADの便利な「コピー機能」を使いましょう。
- dsa.msc(Active Directory ユーザーとコンピューター)を開き、お手本(コピー元)となる既存ユーザー(Bさん)を右クリックして [コピー] を選択します。
- 新しい新入社員Aさんの名前、ログオン名、および新規の初期パスワードを設定するだけで、Bさんが所属していた複数のセキュリティグループ(ファイルサーバーの閲覧権限や社内システム利用権限など)をすべて最初から継承した状態で、新しいユーザーアカウントを瞬時に追加できます。手動でのグループ設定漏れを完全に防げるため、実務で必須のテクニックです。
3. 【CUI・自動化編】コマンド・PowerShellによるユーザー追加手順
「黒い画面(CUI)」を用いたコマンド操作やスクリプト実行は、作業手順書を作成して「誰が実行しても全く同じ結果」を得たい場合や、将来的な運用運用の自動化において非常に強力な武器となります。
手法C:dsadd userコマンドによる個別追加と識別名(DN)の定義方法
dsadd は、Windows Serverのコマンドプロンプトやバッチファイル(.bat)からADオブジェクトを直接追加するための伝統的かつ軽量なコマンドです。このコマンドを使用する際は、オブジェクトのAD内における厳密な住所を示す「識別名(DN: Distinguished Name)」の概念を理解しておく必要があります。
識別名(DN)を構成する3大要素
- CN(Common Name):オブジェクトの名称。ユーザーの場合は「フルネーム(氏名)」を指定します。
- OU(Organizational Unit):オブジェクトが格納されている「組織単位」の名称です。
- DC(Domain Component):ドメイン名の区切りです。例えば example.local であれば、DC=example,DC=local と表現します。
実行コマンド例
以下のコマンドを、管理者権限で起動したコマンドプロンプトに貼り付けて実行します(※実際に入力する際は改行せず、すべて1行のロングコマンドとして入力してください)。
DOS
dsadd user "CN=鈴木一郎,OU=Tokyo_Branch,DC=example,DC=local" -samid suzuki.ichiro -upn suzuki.ichiro@example.local -pwd "P@ssw0rd2026!" -mustchpwd yes -disabled no
【主要オプションの解説】
- -samid:Windows 2000以前のユーザーログオン名(sAMAccountName)の一意のIDを指定。
- -upn:ユーザープリンシパル名(UPN)のメールアドレス形式のアカウントを指定。
- -pwd:アカウント作成と同時に割り当てる初期パスワードを指定。
- -mustchpwd yes:ユーザーが次回ログインした際に、パスワードの強制変更画面を表示させる設定。
- -disabled no:アカウントを作成した直後から、すぐに「有効(利用可能)」な状態にする設定。
手法D:PowerShell(New-ADUser)を使ったモダンなアカウント生成
2026年現在のWindowsシステム管理、およびサーバー環境の自動化において、もっとも推奨される標準の手法がPowerShellの ActiveDirectory モジュールを使用したコマンド実行です。記述がオブジェクト指向で直感的であり、後述するCSVファイル等の外部データ連携が容易なため、実務での採用率が急速に高まっています。
実行コマンド例
管理者権限で起動したPowerShellを開き、以下のコマンドを実行します。
PowerShell
# Active Directory操作用モジュールの読み込み
Import-Module ActiveDirectory
# ユーザーの新規作成コマンドを実行
New-ADUser -Name "佐藤次郎" `
-GivenName "次郎" `
-Surname "佐藤" `
-SamAccountName "sato.jiro" `
-UserPrincipalName "sato.jiro@example.local" `
-Path "OU=Tokyo_Branch,DC=example,DC=local" `
-AccountPassword (ConvertTo-SecureString "P@ssw0rd2026!" -AsPlainText -Force) `
-ChangePasswordAtLogon $true `
-Enabled $true
E-E-A-T視点の実務注意点:PowerShellでユーザーのパスワードを指定する際、セキュリティ上の理由から生の文字列をそのまま引数に渡すことはシステム的に拒否されます。安全に暗号化された文字列型(SecureString)に変換してから渡す必要があるため、上記の (ConvertTo-SecureString ...) というおまじないのような記述方法を、そのまま社内手順書のテンプレートとしてご活用ください。
※PowerShellモジュール:特定の機能(この場合はAD操作機能)を拡張するために用意された、コマンドの詰め合わせパックのことです。
4. 【実務効率化】CSVファイルを使って大量ユーザーを一括追加するプロの技
「組織改編や4月の新卒一括入社、または企業の統合に伴い、100名以上のユーザーを一度にシステムへ登録しなければならない」という状況において、これまで説明したGUIツールでの手動操作や、個別コマンドを1回ずつ叩くのは現実的ではありません。時間的なコストがかかるだけでなく、タイポ(入力ミス)によるアカウント誤設定の温床になります。
ここでは、プロのインフラエンジニアが現場で日常的に使用している、「CSVファイル×PowerShell」による一括自動インポート・一括作成の具体的なステップを完全公開します。
ステップ1:属性エディタで確認するCSVヘッダーとサンプルデータの作成
まずは、追加したい対象のユーザー一覧を記述した元データ(CSVファイル)を作成します。ここで極めて重要なのは、CSVの1行目に記述する「見出し(ヘッダー名)」を、ADの「属性エディタ」に登録されているシステム内部の正確な属性名称(大文字・小文字の区別を含む)と完全に一致させることです。
Excelや高機能テキストエディタを開き、以下のデータ構造で作成します。作成後、ファイルの文字コードを「UTF-8(BOM付き)」または「Shift-JIS」に指定し、ファイル名を users_list.csv として、Cドライブ直下に作成した作業用フォルダ C:\AD_Work\ 内に保存してください。
CSVファイルのデータ構造(users_list.csv)
コード スニペット
Name,LastName,FirstName,SamAccountName,UPN,Department
山田花子,山田,花子,yamada.hanako,yamada.hanako@example.local,営業部
高橋健太,高橋,健太,takahashi.kenta,takahashi.kenta@example.local,開発部
渡辺直美,渡辺,直美,watanabe.naomi,watanabe.naomi@example.local,総務部
ステップ2:PowerShell(Import-Csv)で100人以上を自動追加する実践スクリプト
次に、先ほど作成したCSVファイルをPowerShellに1行ずつ自動で読み込ませ、データの終わりまで無限にループ処理(自動作成)をかけるための実践的な管理スクリプトを作成します。
以下のコード一式をコピーし、「PowerShell ISE」やメモ帳などのテキストエディタに貼り付け、ファイル名を ad_import.ps1 として保存して実行してください。
PowerShell
# =========================================================================
# Active Directory 大量ユーザー一括自動インポートスクリプト (2026年版)
# =========================================================================
# 1. ActiveDirectory操作モジュールのインポート
Import-Module ActiveDirectory
# 2. 環境に合わせた各種変数・パスの設定
$csvPath = "C:\AD_Work\users_list.csv"
$targetOU = "OU=Tokyo_Branch,DC=example,DC=local"
$defaultPassword = ConvertTo-SecureString "InitialP@ss2026!" -AsPlainText -Force
# 3. 事前の安全チェック:CSVファイルの存在確認
if (-not (Test-Path $csvPath)) {
Write-Error "【エラー】指定されたインポート用CSVファイルが見つかりません: $csvPath"
exit
}
# 4. CSVファイルを読み込み、ループ処理(foreach)を開始
$users = Import-Csv -Path $csvPath -Encoding Default
foreach ($user in $users) {
# 既存アカウントとの競合(重複エラー)を事前に検知・回避するためのフィルターチェック
$exists = Get-ADUser -Filter "SamAccountName -eq '$($user.SamAccountName)'"
if ($exists -eq $null) {
# 同名アカウントが存在しない場合のみ、新規ADユーザーオブジェクトを生成
New-ADUser -Name $user.Name `
-Surname $user.LastName `
-GivenName $user.FirstName `
-SamAccountName $user.SamAccountName `
-UserPrincipalName $user.UPN `
-Department $user.Department `
-Path $targetOU `
-AccountPassword $defaultPassword `
-ChangePasswordAtLogon $true `
-Enabled $true
Write-Host "【成功】アカウント作成完了: $($user.Name) ($($user.SamAccountName))" -ForegroundColor Cyan
} else {
# 既に同じIDが存在していた場合はスキップし、ログに警告を表示
Write-Warning "【スキップ】既にドメイン内に同じIDが存在します: $($user.Name) ($($user.SamAccountName))"
}
}
このスクリプトを実行すれば、人事データから抽出したCSVファイルが100人、1,000人と大規模であっても、わずか数分で全ユーザーの作成が完全自動で完了します。実務運用で途中で処理が止まらないよう、事前の重複チェック機能を組み込んだ高信頼性設計となっています。
5. ユーザー追加後に必ず実施すべき「グループ所属」と「権限付与」
インフラ管理の実務において非常によくある勘違いが、「ユーザーアカウントを作成すれば、すぐに仕事が始められる」という思い込みです。実際には、アカウントを単に追加しただけの状態では、社内の共有ファイルサーバーのフォルダを見たり、部署ごとの社内システムにアクセスしたりすることはできません。
Active Directoryの設計・運用における鉄則は、「ユーザーアカウントに対して直接個別にアクセス権を紐付けず、必ず『セキュリティグループ』を介して間接的に権限を付与する」ことです。これにより、将来的な人事異動や退職時の権限管理の手間が100分の1に軽減されます。
【図解:ADにおける正しいアクセス権付与の構造(AGDLPの原則)】
[ ユーザーアカウント:山田花子 ]
↓(所属させる)
[ セキュリティグループ:営業部_ReadOnly_GR ]
↓(グループに対して権限を付与)
[ ファイルサーバーの「営業データ」フォルダの読み取り権限 ]
セキュリティグループへのメンバーシップ追加手順(グループへの追加)
新しく作成したユーザーを、所属部署のアクセス権が設定されている適切なグループに紐付ける手順です。
- dsa.msc(Active Directory ユーザーとコンピューター)を起動し、先ほど追加したユーザー(例: 山田花子)を検索、または所属OUから見つけてダブルクリックしてプロパティ画面を開きます。
- 上部にある複数のタブの中から、 [所属するグループ] タブを選択し、画面下部にある [追加] ボタンをクリックします。
- 「グループの選択」ダイアログボックスが表示されるので、「選択するオブジェクト名を入力してください」と書かれたテキストボックスに、所属させたい特定のグループ名(例: Sales_Group)を入力します。
- 入力後、右側にある [名前の確認] ボタンをクリックします。入力した文字列に間違いがなければ、文字にアンダーラインが引かれてシステムに正式認識されます(※もし名前が見つからない場合はタイポか、検索場所の設定が間違っています)。
- 問題なければ [OK] をクリックし、プロパティ画面の下部にある [適用] または [OK] をクリックして閉じます。
これで、アカウントの「ユーザー追加(器の作成)」から「利用環境に応じた権限の付与(実用化)」までの一連のシステム管理アクションがすべて完了しました。
6. Active Directoryユーザー追加時によくあるエラーと原因・対処法
ドメインコントローラーの稼働状態や、組織が独自に定めているセキュリティポリシーの構成内容によって、ユーザーの追加作業中に原因不明のエラーダイアログが表示され、作業が中断されるトラブルが現場では多発します。ここでは、インフラの現場で遭遇する「3大エラー」の原因と解決策を具体的に明示します。
エラー①「アクセスが拒否されました」(権限不足)
- 発生原因:現在Windowsサーバーにログインして管理ツールを操作している、あるいはPowerShellを実行しているユーザーアカウントに、ADのデータベースを書き換えるためのオブジェクト作成特権が付与されていません。
- プロの対処法:起動している管理ツールやPowerShell、コマンドプロンプトを一度すべて終了させてください。その後、アプリケーションのアイコンを右クリックし、「管理者として実行」を選択して再起動します。または、前述した Domain Admins もしくは Account Operators グループに属している適切なシステム管理者アカウントにサインインし直してから、再度作業を試みてください。
エラー②「パスワードはパスワード ポリシーの要件を満たしていません」
- 発生原因:新規追加画面で指定した初期パスワードの文字列が、ドメイン内で強制されている長さ(最小文字数)や複雑性(文字のバリエーション)のセキュリティ基準をクリアしていません。
- プロの対処法:本記事の第1章に記載されている「パスワードの複雑性要件の表」をもう一度見直し、条件を完全にクリアする英大文字・小文字・数字・記号を組み合わせた、推測されにくい強力なパスワードに変更して入力してください。なお、社内LANから隔離された一時的な「テスト・検証環境」などでこの制限が邪魔な場合は、グループポリシー管理コンソール(gpmc.msc)を開き、[コンピューターの構成] > [Windowsの設定] > [セキュリティの設定] > [アカウント ポリシー] > [パスワードのポリシー] にある「パスワードは複雑性の要件を満たす必要がある」を一時的に「無効(Disabled)」に切り替えることで、単純な文字列でのテストアカウント大量作成が可能になります。
エラー③「指定されたオブジェクトはすでに存在します」(sAMAccountNameの重複)
- 発生原因:新しく登録しようとしたユーザーのログインID(sAMAccountName)が、既にドメイン内の他のOUや、別のコンテナの中で全く同じ文字列で登録されて使用されています。ADのシステム設計上、同一ドメイン内で同じ sAMAccountName を持つオブジェクトを2つ以上重複して登録することは絶対にできません。
- プロの対処法:まず、PowerShellで Get-ADUser -Filter "SamAccountName -eq '重複したとみられるID'" コマンドを実行し、ドメイン内のどこに同名のアカウントが隠れているかを全域検索して特定してください。既存のユーザーと名前が被ってしまっている新入社員などの場合は、社内のネーミングルール(命名規則)に基づき、IDの末尾に「生年月日の数字」を追加したり、「ミドルネームの頭文字」を挟み込んだりして、世界で一意(ユニーク)な重複しない文字列へ修正した上で、再度ユーザー作成をやり直してください。
7. Active Directoryのユーザー追加に関するよくある質問(Q&A 5選)
Q1:ユーザーログオン名(UPN)と、Windows 2000以前のログオン名(sAMAccountName)の具体的な違いと、実務における綺麗な使い分けのルールを教えてください。
A1:UPN(ユーザープリンシパル名)は「ユーザーID @ ドメイン名」という、インターネットのメールアドレスと全く同じ形式でアカウントを表記するモダンな仕様です。一方の sAMAccountName は、Windowsの歴史的な古い互換性を維持するために残されている「ユーザーID」単体のみを記述するレガシーな仕様です。
2026年現在のモダンなIT環境においては、日常の社内PCへのサインインや、Microsoft 365 / クラウドアプリとのシングルサインオン(SSO)連携の認証キーとして「UPN」が主軸として使われます。しかし、社内で長年稼働しているオンプレミス型の古いファイルサーバーや、ネットワーク機器の認証(RADIUS認証)、旧式の業務アプリケーションにログインする際は、バックエンドのシステムが依然として「sAMAccountName」の形式での入力を必須としているケースが極めて多いのが実態です。
そのため、実務における運用のベストプラクティスとしては、新規ユーザー作成時には「UPNの@より前の部分」と「sAMAccountName」に、完全に同一の文字列(例: suzuki.ichiro)をセットで登録しておくのが、エンドユーザーの混乱を防ぎ、認証トラブルを未然に回避するための鉄則です。
Q2:数千人規模のユーザーを一括登録する際、PowerShellスクリプトを組むのが難しく感じます。昔ながらの「dsadd」コマンドだけを数百行並べたバッチファイル(.bat)を作って一発実行する力技の手法は、現在の環境でも問題ありませんか?
A2:結論から申し上げますと、システム技術的には全く問題ありませんし、正常に動作します。
実際に、CSVからPowerShellを使ってスマートにループ処理を回すインフラ構築手法が一般化する前は、Excelの文字列結合関数(例: ="dsadd user ""CN="&A2&",OU=Users,DC=example,DC=local"" -samid "&B2&" -pwd ""Initial123!""")を利用して、セルのドラッグ&ドロップで数百行分の dsadd コマンドのテキストを量産し、それをコマンドプロンプトに一括でコピー&ペーストしたり、拡張子を .bat にしたバッチファイルとして保存してダブルクリックで実行したりする手法が現場の王道でした。
PowerShellの実行制限ポリシー(ExecutionPolicy)の変更手続きが社内ルールで厳しく制限されている環境や、スクリプトのデバッグに時間をかけられない小規模〜中規模の緊急の現場においては、現在でも非常にシンプルで確実、かつバグが起きにくい、実務上極めて有用な代替アプローチと言えます。
Q3:人事異動に合わせて新しいユーザーアカウントを作成した直後、対象の社員から「自分のPCからドメインにログインできない」とヘルプデスクへ連絡がありました。システム管理側としてまず真っ先に確認すべき裏取りポイントはどこですか?
A3:エンドユーザーがIDやパスワードの打ち間違い(Caps Lockの誤有効化など)をしていないという前提の場合、システム管理者がバックエンドで確認すべきプロのチェックポイントは以下の3点に絞られます。
- アカウントのステータスが「無効(Disabled)」になっていないか:一括登録スクリプトのバグやセキュリティの初期設定により、アカウントが作成されたものの、南京錠マークがついた「無効」状態になっていることがあります。対象ユーザーのプロパティを開き、手動で「アカウントを有効にする」をクリックしてください。
- マルチドメインコントローラー環境における「同期(レプリケーション)のタイムラグ」:社内に複数のドメインコントローラー(DC)が稼働している大規模な環境において、システム管理者が「東京本社のDC-A」でユーザー追加の作業を行い、対象の社員が「大阪支店のクライアントPC」からログインを試みている場合、DC-Aから大阪のDC-BへADのデータベース同期が物理的に完了するまで(回線環境により数分〜数十分のラグがある)、大阪側では「そんなユーザーは存在しない」と判定されてログインエラーになります。管理コンソールから手動でレプリケーションを強制キックするか、ユーザーに15分ほど待ってから再試行するよう案内してください。
- 「初回ログイン時のパスワード強制変更」がVPN越しで効いていないか:セキュリティ設定で「次回ログオン時にパスワードの変更が必要」をオンにして作成した場合、対象のPCが社内ネットワークに物理LANケーブルで直接繋がっているか、あるいは起動時VPN(常時接続VPN)が確立された状態でなければ、初回のパスワード書き換え通信がドメインコントローラーに届かず、サインイン画面でネットワークエラーとなり拒否されます。
Q4:自社のActive Directory環境において、特定の共用パソコンの「ローカルユーザー(その特定のPCの内部だけでしか通用しないアカウント)」を追加しようとしたところ、変更がブロックされるエラーになります。ドメイン環境特有の何が原因でしょうか?
A4:PCがADドメインに参加(ドメインジョイン)している場合、企業の統合的なグループポリシー(GPO)によって、セキュリティ保護の観点から一般のドメインユーザーが勝手にパソコンのシステム設定を変更したり、個人のローカルアカウントを勝手に追加・乱造したりする行為を中央集権的に制限・禁止しているケースがほとんどです。
このセキュリティ制限を回避してローカルユーザーを作成する必要がある場合は、まずそのクライアントPCに対して、ドメインのアカウントではなく、PC固有のローカル管理者権限(Local Administrators)を持つアカウント、またはドメインの最高管理者(Domain Admins)のアカウントを使用して特権サインインし直してください。その上で、PCの「コンピューターの管理(compmgmt.msc)」またはコマンドラインから、適切な管理者特権を用いてローカルユーザーの追加アクションを実行する必要があります。
Q5:人事部から送られてきた社員名簿のテキストデータに、JIS第3・第4水準の「環境依存文字(いわゆる外字や特殊な漢字、ハングル、特殊記号)」や「氏名の間の半角・全角スペース」が含まれています。これをそのままADのユーザー名やログインIDに登録しても不具合は起きませんか?
A5:実務上、極めて重大な認証システムインシデントに発展するリスクがあるため、システム内部のID部分への使用は絶対に避けてください。
ユーザーの画面上に表示されるだけの「表示名(DisplayName)」や「説明(Description)」、あるいは「フルネーム(Name)」といったフィールドへの登録であれば、近年のWindows OSやActive Directoryのデータベースは内部的にUnicode(UTF-16)に完全対応しているため、文字化けを起こさず綺麗に表示されるケースがほとんどです。
しかし、システムの認証の心臓部となる「ユーザーログオン名(UPN)」や「sAMAccountName」、およびオブジェクトの厳密な住所である「識別名(DN)」の文字列の中には、環境依存文字や特殊記号、スペースを絶対に混入させてはいけません。
これら認証のキーとなる文字列フィールドに特殊な文字やスペースが含まれていると、将来的に社内のネットワーク機器(ファイアウォール、UTM、Wi-Fiの暗号化認証サーバー)、Linuxベースのオープンソースシステム、あるいは古い基幹業務アプリケーションなどと「LDAP認証(ADのデータベースを外部から参照してログインを共通化する仕組み)」を用いてシステム連携を試みた際、連携先のシステム側で高確率で文字コードのパースエラー(文字化け)やスペースの区切り文字誤認が発生し、「正しいパスワードを打っているのに、なぜか特定の人だけログインが一切できない」という、原因究明が極めて困難なシステムの隠れたバグを引き起こす原因になります。
システム内部で取り扱うID(アカウント名)としての登録は、個人の好みを排除し、「半角の英小文字、数字、および区切り文字としてのピリオド(.)やハイフン(-)」の組み合わせのみで、シンプルの極みとして構成するのが、後々のトラブルをゼロにするためのプロのインフラ設計の鉄則です。


