PowerShell & AD ツールで Active Directory に一括ユーザーを作成
Dec 17, 2024
今日の組織は非常にダイナミックで、従業員、契約社員、その他のユーザーが絶えず参加しています。そのため、IT 管理者はしばしば Active Directory(AD)または Entra ID(旧 Azure AD)でユーザー オブジェクトを作成する必要があります。単一のユーザーを手作業で作成するのは簡単ですが、複数のユーザーに対して同じ作業を繰り返すのは面倒で時間がかかります。さらに、セキュリティと生産性を危険にさらしうるエラーが起きやすいという問題もあります。
この記事では、PowerShell を使って AD ユーザーを一括で作成するプロセスをどのように効率化できるか、またネイティブのウィザードを使って Entra ID でユーザーを一括作成する方法を説明します。さらに、直感的なインターフェースから AD または Entra ID に簡単にユーザーを作成できるサードパーティ製のソリューションも紹介します。
PowerShell を使用した Active Directory での一括ユーザー作成
Microsoft PowerShell は、Active Directory ユーザーを一括で作成するための一般的な選択肢です。ISE PowerShell モジュールをインストールしておき、Active Directory にユーザー アカウントを作成するための管理者権限が必要です。
PowerShell を使用すべきなのは、確かなスクリプト作成スキルを持つ IT プロだけです。内容を十分に理解していないスクリプトは絶対に実行しないでください。
- 作成したいユーザーの詳細情報を含む CSV ファイルを作成する。ファイルには、以下のフィールドを含める必要があります:SAMAccount、FirstName、LastName、Password、OU。必要に応じて、さらにフィールドを追加しても構いません。以下は、メモ帳(Notepad)で表示される CSV ファイルの例です:
行と列をより見やすくするには、Microsoft Excel でファイルを開くことができます:
- ユーザーを作成します。次の PowerShell スクリプトを Windows PowerShell ISE から実行します:
# Import the PowerShell module for running AD cmdlets
Import-Module activedirectory
#Store the data from your CVS file in the $ADUsers variable
$ADUsers = Import-csv C:\BulkUsers.csv
#Read each row of input data and assign each user’s details to variables
foreach ($User in $ADUsers)
{
$Username = $User.name
$Password = $User.password
$Firstname = $User.firstname
$Lastname = $User.lastname
$OU = $User.OU
$email = $User.email
$streetaddress = $User.address
$city = $User.city
$state = $User.state
$country = $User.country
$zipcode = $User.zipcode
$telephone = $User.telephone
$jobtitle = $User.title
$company = $User.company
$department = $User.department
#Check whether the user already exists in the AD
if (Get-ADUser -F {SamAccountName -eq $Username})
{
#If the user already exists, display a warning
Write-Warning "A user account with username $Username already exists in Active Directory."
}
else
{
#Otherwise, create the new user account in the specified OU
New-ADUser SamAccountName $Username UserPrincipalName "$Username@milkyway.local" Name “$Firstname $Lastname” GivenName $Firstname Surname $Lastname Enabled $True DisplayName "$Lastname, $Firstname" Path $OU City $city Company $company State $state StreetAddress $streetaddress OfficePhone $telephone EmailAddress $email Title $jobtitle Department $department AccountPassword (convertto-securestring $Password -AsPlainText Force) ChangePasswordAtLogon $True
}
}
- 結果を確認します。Active Directory Users and Computers (ADUC) でユーザー オブジェクトを確認できます。
Entra ID でのユーザー一括作成
Entra ID では、スクリプトなしでユーザーを一括作成できます。手順は次のとおりです:
- ユーザー一括作成ウィザードを開く。ユーザー管理者またはグローバル管理者としてポータルにサインインします。Users に移動します。Bulk operations をクリックし、Bulk create を選択します(以下の図のとおり)。
- CSV ファイルを作成 ユーザー分。 ウィザードがテンプレート CSV ファイルを提供します。例の行を、作成したい各ユーザーの行に置き換え、必要な属性すべてと、任意で使いたい属性を指定してください。ファイルを保存します。
- ファイルをアップロードします。 クリック Upload your File して、作成したファイルを選択します。システムがユーザーの作成を開始します。
- 結果を確認します。 上部の通知バーから、成功した結果と失敗した結果、および作成されたユーザー アカウントの概要を確認できます。ユーザー アカウントを確認するには、Users タブに移動します。
Netwrix Directory Manager を使った一括ユーザー作成
Netwrix Directory Manager Synchronize モジュールを使用して、ユーザーを簡単に一括作成できます。新しいジョブを作成し、ウィザードの手順に従ってください。
- データ ソースと宛先 identity store を指定します。 対応しているデータ ソースには、CSV ファイルや、Oracle、SQL Server などの主要なデータベースがあります。対応している identity store プロバイダーには、Active Directory と Entra ID に加え、一般的な LDAP および Google Workspace も含まれます。HR(CSV ファイルを含む)をソース データ プロバイダーとして選択し、NBC を、AD identity provider Milkyway のコンテナー内で作成します:
- 作成するオブジェクトの種類を選択します。 この場合は、ユーザー オブジェクトを作成するように選択します:
- ユーザー属性のマッピング をソースから宛先へ行います。 クリック +フィールドの追加/編集 の 作成 ラジオ ボタンを選択し、作成中の各ユーザー オブジェクトに含める属性を選択します。クリック 保存。
- ダイアログの下部で、ソースから宛先への属性マッピングを指定します:
- ソース データを変換 (任意)。 宛先でユーザーを作成する前に、ソース データを操作することを選択できます。たとえば、2 つのソース フィールドの値を 1 つの宛先フィールドに結合したり、フィールドに文字列の定数を割り当てたりできます。必要に応じて、Visual Basic .NET エディターを使って変換スクリプトを書き込むこともできます。
- セットアップ ジョブ通知。 ジョブ通知に使用する 1 つ以上のメールアドレスを指定します。通知の送信条件を指定することもできます。
- ジョブをプレビューして実行します。 ウィザードはジョブのプレビューを提供し、要件に合わない箇所を簡単に修正できるようにします。ジョブが正しいことを確認したら実行して、ユーザーを一括作成し、生成された統計を確認してください。
ユーザーを一括更新
管理者によっては、新しいユーザーを作成するのではなく、既存の一連のユーザーオブジェクトに対して作業が必要になる場合があります。手作業でのユーザー作成と同様に、手作業でのユーザー更新は時間がかかり、ミスも起きやすくなります。そこで、Netwrix Directory Manager では、ユーザー作成に使用したジョブをテンプレートとして保存できます。後でそれらのユーザーを更新する必要がある場合は、ジョブを編集して実行するだけです。さらに、ジョブを定期的に実行するようスケジュールし、実行が完了したときに通知を受け取ることもできます。
Netwrix Directory Manager の無料トライアルを申し込む
共有する
もっと詳しく
著者について
Jonathan Blackwell
ソフトウェア開発責任者
2012年以降、エンジニアでありイノベーターである Jonathan Blackwell は、エンジニアリングのリーダーシップを通じて Netwrix GroupID を、Active Directory および Azure AD 環境におけるグループとユーザー管理の最前線に押し上げてきました。開発、マーケティング、営業での経験により、Jonathan は Identity 市場と買い手の考え方を深く理解できています。