Powershell によるAD ユーザーの一括登録(改訂版)

Powershell によるAD ユーザーの一括登録 (改訂版)

<準備>
・WindowsServer2008R2
・「Active Directory サービス」(役割)のインストール、設定
・「Windows Powershell用のActive Directoryモジュール」(機能)のインストール
・「PowerShell」のヴァージョンアップ ( V.2 —> V.4.0 )
1)Microsoft Download Centerから「.Net Framework 4.5以降」を入手しインストール
        (Windows Update有効の場合はインストール済みか?)
2)同上から「Windows Management Framework 4.0」を入手、インストール

<手順>
・「UserData.txt」ファイルの設置 (例:C:\直下に)
    ——C:\UserData.txt———
    Name,UserPrincipalName,SamAccountName,Path,Description
    Yoshi Oshima,Yoshi_Oshima@tcoffice.virtual,Yoshi_Oshima,”CN=Users,DC=tcoffice,DC=virtual”,練習テスト用
    Kaku Kobayashi,Kaku_Kobayashi@tcoffice.virtual,Kaku_Kobayashi,”CN=Users,DC=tcoffice,DC=virtual”,練習テスト用
    Sari Suzuki,Sari_Suzuki@tcoffice.virtual,Sari_Suzuki,”CN=Users,DC=tcoffice,DC=virtual”,練習テスト用
    Misa Shimazoe,Misa_Shimazoe@tcoffice.virtual,Misa_SHimazoe,”CN=Users,DC=tcoffice,DC=virtual”,練習テスト用
    ……
    …..
・「スタート」→「管理ツール」→「Windows Powershell用のActive Directoryモジュール」の起動

  ・コマンドレット実行権限の確認
    PS> Get-ExecutionPolicy // Restricted の場合に RemoteSigned に変更する
PS> Set-ExecutionPolicy RemoteSigned
  
  ・Csvファイルをインポートし、ADユーザ追加のコマンドレットの実行
——–PS—————–
PS >Import-Csv C:\UserData.txt | New-ADUser `
>>-AccountPassword ( ConvertTo-SecureString ‘P@ssw0rd’ -AsPlainText -Force ) `
>>-Enabled $true
>>
 
 ・「練習テスト用」ユーザを抽出し、ADユーザ設定のコマンドレットの実行
PS > Get-ADUser -Filter ‘Description -eq “練習テスト用” | Set-ADUser `
>>-ChangePasswordAtLogon $true
>>

以上。—————–

Powershellを使ったAD ユーザの一括登録

環境:
  ・Windows Server 2008 R2
  ・Active Directory 構築済み: 
  ・Domain& DC: srv2008.puccini.com とする
  ・Adminユーザー: Administrator
  *必要な「機能」のインストール
   ・「Windows Powershell 用のActive Directory モジュール」

手順1.準備
・登録するユーザーのリスト(.txt形式、Unicode 保存)をC:直下(C:\UserData.txt)に置く
  ・書式(1行目はパラメータ名、2行目から必要な人数分を書く。全てカンマ区切り。
    Name,SurName,GivenName,DisplayName,UserPrincipalName,SamAccountName,Path,Description
    Yamada Taro,Yamada,Taro,Taro YAMADA,yamada@puccini.com,yamada,”cn=Users,dc=puccini,dc=com”,練習用
    Kawada Suguru,Kawada,Suguru,Suguru KAWADA,kawada@puccini.com,kawada,”cn=Users,dc=puccini,dc=com”,練習用
    ………
    ……….
   *パラメータ指定のユーザー属性:
    ・名前(Name) ・姓(SurName) ・名(GivenName) ・表示名(DisplayName) ・ユーザーログオン名(UserPrincipalName)
    ・ユーザーログオン名(Windows2000より前)(SamAccountName) ・パス名(Path) ・説明(Description)  

手順2.「メニュウ」から「Windows Powershell 用のActiveDirectoryモジュール」を開く
 ・プロンプトが出たら、実行権限の状態を調べて必要なら変更する
   PS> Get-ExecutionPolicy
   PS> Set-ExecutinPolicy RemoteSigned  ( Restricted の場合 RemoteSignedに変更する)

手順3. ユーザーリストをインポートして、ADユーザーの作成をする
PS> Import-Csv C:\UserData.txt | New-ADUser `          *( ` + Enter でスクリプト途中で改行)
>> -AccountPassword ( ConvertTo-SecureString ‘Pa$$w0rdx42’ -AsPlainText -Force) `
*( ‘Pa$$w0rdx42’は初期設定パスワード)
>> -ChangePasswordAtLogon $true `                 *(ログオン時にパスワード変更を即す)
>> -Enabled $true                          *(最後の行は、そのままEnter,2回で終了)
>>
*上記コマンドのパラメータ:
      ・Import-Csvにてユーザーリストをインポート
      ・アカウントパスワード(難解なパスワードをセキュアな文字列に変換してプレインテキストとして格納する)
      ・ログオン時にパスワードの変更をする → ON
      ・アカウントを有効化する。

*)以上で終了。「Active Directory ユーザーとパスワード」などで設定状態を確認する

めざすスキル

 今現在、社内で使うPCのセットアップを中心にした「インフラ・チーム」にいます。ネットワーク補助の肩書きも頂いて、ネットワーク周りのサブとしてもいろいろやらせてもらっています。フロア的に研修部門と同居しているので、2カ月おきに入ってくる新入社員や外部研修生に混ざって毎日を過ごしている感じです。
 そんなわけですぐ隣で行われているエンジニア研修を毎日見ているのですが、入ってくる段階ではほとんどPCのPの字も知らない女子などもかなりな数見受けるのに、そのほとんどがわずか2ヶ月でプログラミングの現場にしっかりと配属されていくのです。若い人達の理解力、対応力の早いのは納得するがそれにしてもである。
 その隣で口をあけてあっけにとられている自分は、そんな優秀な若者たちとは違うので、高望みせずに地道にスキルアップを目指そうと思うのだが、入社から2年が過ぎ、仕事上必要なスキルはしっかり習得していかなくてはならず、芸術系のアナログな古い頭のデジタル化に挑戦をしています。
ネットワークの補助としてはWindowsを中心にしたネットワークやサーバーの知識、技術は避けて通れないものだが、幸運にも最初からサーバーやネットワークの構築、Active Directoryや、データベースなどなど、そこそこ触らせてもらい経験させてもらっています。
 最近はやっと自分がどこにいて、どのくらいのスキルがあるのかほんの少しだが見えるようになってきた気がします。もちろんまだまだ初心者の域を抜けきっていない状況を考えると、ネットワーク、サーバ関係のスキルはもちろんですが、それらを支える基礎として、ある程度しっかりしたプログラミングの力が必要だと痛感しています。そこで今年に入ってから、以前にLinuxで自宅サーバを立てて遊んでいた頃のコマンドや、かじっただけだったPHPを勉強しなおしたり、さらに今は、JAVAを一から何とか身に付けようと必死にもがいています。
 言語のアルゴリズムや概念はゆっくりかんで含めるように頭に入れていくとそれなりに分かってくるが、何重にも重なった構文の中で複雑な演算を組み合わせてゆく数学的な知識や発想力が徹底的に足りない事がわかり、本当に今の自分の頭ではついて行けず、15分ぐらいごとに頭を解放して、やり直し、考え直しの連続です。
 というわけで一念発起して再開したこのブログではプログラミング言語習得の七点八倒、随時メモのようなものをアップしてゆこうと思います。