氏名の生成(2)

氏名の生成(1)で作成した姓と名のファイルを使って、氏名を生成する。

(make_name.rb)

#!/usr/bin/env ruby

file_name_family = File.open("name_family.txt","r")
file_name_first  = File.open("name_first.txt","r")

array_name_family = []
array_name_first  = []

file_name_family.each do |line|
  array_name_family.push(line.chomp)
end

file_name_first.each do |line|
  array_name_first.push(line.chomp)
end

(1..ARGV[0].to_i).each do |num|
  name_family, kana_family = array_name_family[rand(0..array_name_family.size-1)].split(/\t/)
  name_first,  kana_first  = array_name_first[rand(0..array_name_first.size-1)].split(/\t/)
  puts "#{name_family} #{name_first}\t#{kana_family} #{kana_first}\n"
end

(name_family.txt)

$ more name_family.txt 
大浦	Oura
細谷	Hosoya
野本	Nomoto
デイビス	Davis
...

(name_first.txt)

$ more name_first.txt 
颯太	Sota
将司	Masashi
建吾	Kengo
アレックス	Alex
...


実行してみる。

$ ./make_name.rb 10
岡田 峻平	Okada Syunpei
細谷 ライアン	Hosoya Ryan
竹内 朝飛	Takeuchi Asahi
辻 堅信	Tsuji Kenshin
ラシード エドワード	Rashid Edward
菊地 技	Kikuchi Takumi
フリッピン 暢	Flippin Noboru
カルファニ 祐眞	Calfani Yuma
山口 シャノン	Yamaguchi Shannon
安藤 圭	Ando Kei

データを使ってみる

Windows Server 2012評価版にActive Directoryをインストールした。
 Active Directoryをインストールする
 https://www.atmarkit.co.jp/ait/articles/1002/04/news106.html
 Windows Server 2012 R2へのActive Directoryインストールと基本設定
 https://www.rem-system.com/post-671/


Active Directoryにユーザ登録するためのファイルを作成する。
 make_name.rbを改修して、以下のファイルを作成した。

(写真部.txt)

Name,DisplayName,UserPrincipalName,Password,Department
ChambersYoshiki,チェンバース 由毅,ChambersYoshiki@example.com,P@ssw0rd,写真部
WashburnTsubasa,ウォッシュバーン 翼,WashburnTsubasa@example.com,P@ssw0rd,写真部
TakedaKota,竹田 皓太,TakedaKota@example.com,P@ssw0rd,写真部
YamaguchiKai,山口 海,YamaguchiKai@example.com,P@ssw0rd,写真部
WatanabeYoshiyuki,渡辺 圭志,WatanabeYoshiyuki@example.com,P@ssw0rd,写真部
SakuraiYudai,桜井 優大,SakuraiYudai@example.com,P@ssw0rd,写真部
ThomasKimitake,トーマス 公威,ThomasKimitake@example.com,P@ssw0rd,写真部
FlippinShuhei,フリッピン 修平,FlippinShuhei@example.com,P@ssw0rd,写真部
ArayaRyoma,荒谷 竜馬,ArayaRyoma@example.com,P@ssw0rd,写真部
TajimaNick,多嶋 ニック,TajimaNick@example.com,P@ssw0rd,写真部

(書道部.txt)

Name,DisplayName,UserPrincipalName,Password,Department
KirkTakashi,カーク 駿,KirkTakashi@example.com,P@ssw0rd,書道部
SakuraiTsubasa,桜井 翼,SakuraiTsubasa@example.com,P@ssw0rd,書道部
IkedaZack,池田 ザック,IkedaZack@example.com,P@ssw0rd,書道部
HosoyaJosh,細谷 ジョシュ,HosoyaJosh@example.com,P@ssw0rd,書道部
RossiterYuto,ロシター 裕土,RossiterYuto@example.com,P@ssw0rd,書道部
ShinoyamaNick,篠山 ニック,ShinoyamaNick@example.com,P@ssw0rd,書道部
NohmiNoboru,納見 暢,NohmiNoboru@example.com,P@ssw0rd,書道部
HayashiRyuto,林 龍斗,HayashiRyuto@example.com,P@ssw0rd,書道部
TakeuchiKotaro,竹内 孝太朗,TakeuchiKotaro@example.com,P@ssw0rd,書道部
OmiyaYuta,大宮 勇太,OmiyaYuta@example.com,P@ssw0rd,書道部
NomotoKenta,野本 健太,NomotoKenta@example.com,P@ssw0rd,書道部
SolomonShannon,ソロモン シャノン,SolomonShannon@example.com,P@ssw0rd,書道部


ユーザを登録する。


Active Directoryのユーザ登録をPower Shellで
https://blog.onodai.com/posts/2018-03-28-wed

C:\Users\Administrator>powershell
Windows PowerShell
Copyright (C) 2012 Microsoft Corporation. All rights reserved.

PS C:\Users\Administrator> Import-Csv "C:\Users\Administrator\Desktop\写真部.txt" | %{New-ADUser -Name $_.DisplayName -DisplayName $_.DisplayName -Department $_.Department -UserPrincipalName $_.UserPrincipalName -sAMAccountName $_.Name -AccountPassword (ConvertTo-SecureString -AsPlainText $_.Password -Force) -ChangePasswordAtLogon $false -Enabled $true -PasswordNeverExpires $true}
PS C:\Users\Administrator> Import-Csv "C:\Users\Administrator\Desktop\書道部.txt" | %{New-ADUser -Name $_.DisplayName -DisplayName $_.DisplayName -Department $_.Department -UserPrincipalName $_.UserPrincipalName -sAMAccountName $_.Name -AccountPassword (ConvertTo-SecureString -AsPlainText $_.Password -Force) -ChangePasswordAtLogon $false -Enabled $true -PasswordNeverExpires $true}


ユーザを検索する。


【 Get-ADUser 】コマンドレット――Active Directoryのユーザー一覧を参照する
https://www.atmarkit.co.jp/ait/articles/1705/09/news006.html

PS C:\Users\Administrator> get-aduser -filter {department -like "写真部"}


DistinguishedName : CN=チェンバース 由毅,CN=Users,DC=example,DC=co,DC=jp
Enabled           : True
GivenName         :
Name              : チェンバース 由毅
ObjectClass       : user
ObjectGUID        : 32b06525-fe9c-49f6-8068-e0b2cababfa6
SamAccountName    : ChambersYoshiki
SID               : S-1-5-21-1987145385-2827726975-614161766-1154
Surname           :
UserPrincipalName : ChambersYoshiki@example.com

DistinguishedName : CN=ウォッシュバーン 翼,CN=Users,DC=example,DC=co,DC=jp
Enabled           : True
GivenName         :
Name              : ウォッシュバーン 翼
ObjectClass       : user
ObjectGUID        : 9d700c25-9c0e-4471-b0c8-061101452e3f
SamAccountName    : WashburnTsubasa
SID               : S-1-5-21-1987145385-2827726975-614161766-1155
Surname           :
UserPrincipalName : WashburnTsubasa@example.com

DistinguishedName : CN=竹田 皓太,CN=Users,DC=example,DC=co,DC=jp
Enabled           : True
GivenName         :
Name              : 竹田 皓太
ObjectClass       : user
ObjectGUID        : ac9f0d71-13d7-419f-9a6d-da7dc6fc4302
SamAccountName    : TakedaKota
SID               : S-1-5-21-1987145385-2827726975-614161766-1156
Surname           :
UserPrincipalName : TakedaKota@example.com
...

PS C:\Users\Administrator> get-aduser -filter {department -like "書道部"}


DistinguishedName : CN=カーク 駿,CN=Users,DC=example,DC=co,DC=jp
Enabled           : True
GivenName         :
Name              : カーク 駿
ObjectClass       : user
ObjectGUID        : fb9de1b0-b074-4ae3-aa48-d151ba061a90
SamAccountName    : KirkTakashi
SID               : S-1-5-21-1987145385-2827726975-614161766-1164
Surname           :
UserPrincipalName : KirkTakashi@example.com

DistinguishedName : CN=桜井 翼,CN=Users,DC=example,DC=co,DC=jp
Enabled           : True
GivenName         :
Name              : 桜井 翼
ObjectClass       : user
ObjectGUID        : ba9ce318-404f-41e1-91b8-3599f9ba0a17
SamAccountName    : SakuraiTsubasa
SID               : S-1-5-21-1987145385-2827726975-614161766-1165
Surname           :
UserPrincipalName : SakuraiTsubasa@example.com

DistinguishedName : CN=池田 ザック,CN=Users,DC=example,DC=co,DC=jp
Enabled           : True
GivenName         :
Name              : 池田 ザック
ObjectClass       : user
ObjectGUID        : e9d7bdd1-873f-4cfb-902c-b41353c8b9f5
SamAccountName    : IkedaZack
SID               : S-1-5-21-1987145385-2827726975-614161766-1166
Surname           :
UserPrincipalName : IkedaZack@example.com
...