🦔
【AzureAD】csvを利用したユーザー追加スクリプト
はじめに
AzureAD上にcsvを利用したユーザーを追加するPowerShellスクリプトを作成してみましたので、アウトプットしていきます。
※エラー処理等深く考慮できておりません。AzureAD学習の一環でさくっと作成してみました。
作業環境
項目 | 内容 |
---|---|
OS | Windows10 Pro |
PowerShellバージョン | 5.1.19041.610 |
AzureAD(モジュール) | 2.0.2.76 |
※AzureAD登録済み(Office365 E3試用版) |
確認
PS C:\WINDOWS\system32> Get-Module
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Binary 2.0.2.76 AzureAD {Add-AzureADApplicationOwner, Add-AzureADDeviceRegisteredOwner, Add-AzureADDeviceRegisteredUser, Add-AzureADDirectoryRoleMember...}
Script 5.8.2 AzureRM.profile {Add-AzureRmEnvironment, Clear-AzureRmContext, Clear-AzureRmDefault, Connect-AzureRmAccount...}
Script 1.0.0.0 ISE {Get-IseSnippet, Import-IseSnippet, New-IseSnippet}
Manifest 3.1.0.0 Microsoft.PowerShell.Management {Add-Computer, Add-Content, Checkpoint-Computer, Clear-Content...}
Manifest 3.1.0.0 Microsoft.PowerShell.Utility {Add-Member, Add-Type, Clear-Variable, Compare-Object...}
Script 1.4.6 PackageManagement {Find-Package, Find-PackageProvider, Get-Package, Get-PackageProvider...}
Script 1.0.0.1 PowerShellGet {Find-Command, Find-DscResource, Find-Module, Find-RoleCapability...}
PS C:\WINDOWS\system32> $PSVersionTable
Name Value
---- -----
PSVersion 5.1.19041.610
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.19041.610
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
PS C:\WINDOWS\system32>
スクリプトのフロー
読み込むcsvファイル
users.csv
DisplayName,UPN,Location,MailNickname
TestTaro,ttest@contoso.com,JP,ttaro
YamadaSaburo,syamada@contoso.com,JP,syamada
※ドメイン名は、暫定的に「contoso.com」としています。
csvの項目説明
項目 | 説明 | 入力例 |
---|---|---|
DisplayName | ユーザーの名前 | TestTaro |
UPN | ユーザープリンシパル名 | ttest@contoso.com |
Location | 利用場所 | JP |
MailNickname | 組織内でのユーザーのエイリアス | ttaro |
作成したスクリプト
AzureAD_Useradd.ps1
###############################################
# 【AzureAD】ユーザー追加スクリプト
###############################################
# ①各種指定
## csvファイル指定
$users = Import-Csv "C:\Users\owner\Desktop\AzureAD\users.csv"
## ログ保存先指定
$Log = "C:\Users\owner\Desktop\AzureAD\Log"
# ②ログ取得開始
$formatted_date = (Get-Date).ToString("yyyyMMdd-hhmmdd")
Start-Transcript -Path ($Log + "\" + $formatted_date + ".log") | Out-Null
# ③csv事前確認
Write-Host "`r`n"
Write-Host "#####################################"
Write-Host "csv処理前事前確認"
Write-Host "#####################################"
Write-Host "※誤りがある場合は、「Ctrl+C」を押下"
$users | Format-Table
Read-Host "問題ない場合は、「Enter」を押下"
# ④パスワード指定(永続的にパスワード変更無しの設定も付与)
$PW=New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$PW.Password="P@ssw0rd"
$PW.ForceChangePasswordNextLogin=$false
# ⑤ユーザー追加処理
$msgBoxInput = [System.Windows.MessageBox]::Show('本当に実行して良いですか?','ユーザー追加処理前確認','YesNo','Question')
switch ($msgBoxInput) {
'Yes' {
Write-Host "#####################################"
Write-Host "AzureADへのユーザー追加処理"
Write-Host "-------------------------------------"
Write-Host "True :追加処理成功"
Write-Host "False:追加処理失敗"
Write-Host "#####################################"
foreach($user in $users){
# エラー無効化ON
$ErrorActionPreference = "silentlycontinue"
# csvの値を各変数に入力
$displayname = $user.DisplayName
$upn = $user.UPN
$location = $user.Location
$mailnickname = $user.MailNickname
# ユーザー作成処理
New-AzureADUser -DisplayName $displayname -UserPrincipalName $upn -PasswordProfile $PW -AccountEnabled $true -UsageLocation $location -MailNickName $mailnickname | Out-Null
# 結果確認処理
$result = echo $?
if($result -eq "True"){
Write-Host($displayname + ":True")
}else{
Write-Host($displayname + ":False") -ForegroundColor Red
}
# エラー無効化OFF
$ErrorActionPreference = "continue"
}
}
'No' {
Write-Host "スクリプトを終了します。"
exit
}
}
# ⑥ログ取得停止
Stop-Transcript | Out-Null
スクリプト実行手順
事前準備
- 「PowerShell ISE」起動後、本スクリプト「AzureAD_Useradd.ps1」を開く。
- csvファイル/ログ保存先フォルダを指定する。
- 以下コマンドにてAzureADへログインを実施する。
コマンド
Connect-AzureAD
- ログインポップアップが表示されるため、AzureADの管理者アカウントにてログインを実施する。
- ログインが完了すると、以下のように結果が表示される。
スクリプト実行
- 「PowerShell ISE」の実行ボタンを押下する。
- csv処理前事前確認が表示される。
問題なければ、「Enter」を押下する。
csv処理前事前確認
#####################################
csv処理前事前確認
#####################################
※誤りがある場合は、「Ctrl+C」を押下
DisplayName UPN Location MailNickname
----------- --- -------- ------------
TestTaro ttest@contoso.com JP ttaro
YamadaSaburo syamada@contoso.com JP syamada
問題ない場合は、「Enter」を押下:
- ユーザー追加処理前の確認ポップアップが表示される。
問題なければYesを押下する。
※Noを押下した場合は、以下のように表示され、スクリプトが終了する。
- AzureADへのユーザー追加処理が走る。
ユーザー追加処理
#####################################
AzureADへのユーザー追加処理
-------------------------------------
True :追加処理成功
False:追加処理失敗
#####################################
TestTaro:True
YamadaSaburo:True
スクリプト実行後確認
- 以下コマンドにて、ユーザーが追加されていることを確認する。
コマンド
Get-AzureADUser
実行例)
- AzureADのGUI画面
※AzureADの管理画面のリンクは以下になります。
Azure Active Directory admin center
さいごに
このような形で、さくっとAzureADにユーザーを追加するためのスクリプトを作成しました。
AzureAD学習中のため、今後もAzureAD関連の知識をアウトプットする予定です。
Discussion