1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CSVを使ったユーザー括登録スクリプト【Powershell】

Last updated at Posted at 2021-01-08

アカウント登録を手作業でやるのが面倒なので、いろいろ参考にしつつ作りました。

UserAcountInfomation.csv
SurName,GivenName,DisplayName,UserName,Domain,Profile,OU,Group1,Group2,Group3,Group4,Group5
スクリプト確認ユーザ,01,スクリプト確認ユーザ01,ScriptUser01,JahsDev2.local,,TestOU,DNSAdmins,Protected Users,TestGroup1,TestGroup2,TestGroup3
スクリプト確認ユーザ,02,スクリプト確認ユーザ02,ScriptUser02,JahsDev2.local,,TestOU,DNSAdmins,Protected Users,TestGroup1,TestGroup2,TestGroup3
スクリプト確認ユーザ,03,スクリプト確認ユーザ03,ScriptUser03,JahsDev2.local,,TestOU,DNSAdmins,Protected Users,TestGroup1,TestGroup2,TestGroup3
test

Import-Module ActiveDirectory
$CSV_FilePath = ".\UserAcountInfomation.csv"

Test-Path $CSV_FilePath
switch ($?){
    True{
    #真判定処理
        $Password = "Password!2#"
         Import-Csv $CSV_FilePath | %{
            $AddADUsers = @{
                Name = $_.UserName                                                         #ユーザアカウント名
                Surname = $_.SurName                                                       #姓
                GivenName = $_.GivenName                                                   #名
                DisplayName = $_.DisplayName                                               #表示名
#                msDS-PhoneticLastName = $_.FirstName                                       #姓(カナ)
#                msDS-PhoneticFirstName = $_.LustName                                       #名(カナ)
#                msDS-PhoneticDisplayName = ($_.FirstName + ' ' + $_.LustName)              #フルネーム(カナ)
                UserPrincipalName = $_.UserName + '@' + $_.Domain                          #ユーザプリシンパル名
                AccountPassword = (ConvertTo-SecureString -AsPlainText $Password -Force)   #パスワード
                ChangePasswordAtLogon = $True                                              #次回ログオン時にパスワード変更する
                Enabled = $True                                                            #ユーザ有効化  
            }
            New-ADUser @AddADUsers  # アカウント追加
        }
        Import-Csv $CSV_FilePath | ForEach-Object{
            Add-ADGroupMember -Identity $_.Group1 -Members $_.UserName
            Add-ADGroupMember -Identity $_.Group2 -Members $_.UserName
            Add-ADGroupMember -Identity $_.Group3 -Members $_.UserName
            Add-ADGroupMember -Identity $_.Group4 -Members $_.UserName
            Add-ADGroupMember -Identity $_.Group5 -Members $_.UserName
        }
    }
    False{
    #偽判定処理
        Write-Host(" Error:CSVファイルが存在しません。 ")
        pause
    }
    Default{
    #判定外処理
    Write-Host(" 例外処理 ")
        pause
    }
}

※CSV上にOUの項目がありますが、一括で移動したいなーという理由で作ったは良いものの
 ドメインの情報を「 . 」毎に分割したり、OUは変数的に入れたりなど考えたら面倒になって
 実装してないです。
※最初からグループは5つまで設定可能です。
※カナはあってもなくてもいいのでコメントアウトにしてます。

【参考資料】
https://syachiku.net/ad-powershell-add-csv/
https://qiita.com/mindwood/items/6c4324604bec234f050c

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?