[AzureaD] csv를 사용하는 사용자 스크립트 추가

개시하다


AzureaD에서 csv를 사용하는 사용자를 추가하는 PowerShell 스크립트를 만들어 보았습니다. 지금부터 출력을 시작합니다.
※ 잘못된 처리 등은 충분히 고려하지 않았습니다.Azuread 학습의 일환으로 해봤어요.

작업 환경


항목
컨텐트
OS
Windows10 Pro
PowerShell 버전
5.1.19041.610
AzureaD(모듈)
2.0.2.76
※ AzureaD 등록(Office 365 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
※ 도메인 이름은 잠정적으로'contro.com'이다.

csv 프로젝트 설명


항목
설명
입력 예
DisplayName
사용자 이름
TestTaro
UPN
사용자 인터페이스 이름
[email protected]
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」を押下: 
    
  • 사용자가 처리를 추가하기 전의 확인 팝업을 표시합니다.
  • 문제가 없으면 "예"를 누르세요.

    ※ "아니오"를 누르면 다음과 같이 스크립트가 종료됩니다.
  • AzureaD에 사용자 추가 처리
  • 사용자 추가 처리
    #####################################
    AzureADへのユーザー追加処理
    -------------------------------------
    True :追加処理成功
    False:追加処理失敗
    #####################################
    TestTaro:True
    YamadaSaburo:True
    

    스크립트 실행 후 확인

  • 다음 명령을 통해 사용자가 추가되었음을 확인합니다.
  • 명령하다
    Get-AzureADUser
    
    실행 예)
  • AzureaD의 GUI 화면

  • ※ Azuread의 관리 화면 링크는 다음과 같습니다.
    Azure Active Directory admin center

    최후


    이러한 형식으로 AzureaD에 사용자를 추가할 수 있는 스크립트가 생성되었습니다.
    아주레어드가 학습 중이기 때문에 앞으로 아주레어드 관련 지식을 출력할 계획이다.
    ※ 시간 되시면 유튜브에도 소개해드리고 싶어요.
    내 유튜브 채널

    좋은 웹페이지 즐겨찾기