Windows PowerShell用Active Directory モジュールの概要
こんにちは、ウィンドウズ開発統括部のサーバー担当、Aaronです。
Server 2008 R2の新機能の一つは役割別のPowershell Applets です。Active Directory やRemote Desktop Server (以前Terminal Server)やServer Manager (サーバー管理ツール)のApplets があります。
この記事はActive Directory Powershell の概要となります。
最初はServer 2008 R2のActive Directory をインストールする必要あります。「初期構成タスク」からでも「サーバーマネージャ」からでも「役割の追加」を選択して、「Active Directory ドメイン サービス」を選択して、インストールしてください。役割がインストールされたら、dcpromo.exe を実行する必要があります。これServer 2008 とあまり変わりません。
Active Directory ドメインのインストールが終わったら、管理すること方法、いろいろがあります。昔のままのMMC の「Active Directory ユーザーとコンピューター」でも可能です。cmd.exeのdsadd.exe やdsquery.exe のコマンドラインツールも残っています。でもServer 2008 R2 にてPowershellのActive Directory のApplet も追加しています。最後にそのActive Directory用PowerShellを使っている「Active Directory 管理センター」もあります。(次のブログで説明する予定です)
私はPowershellの新しい統合スクリプト環境 (Integrated Scripting Environment – ISE)を使うのが好きなので教えてあげます。使う前に「サーバー マネージャー」の「機能」からインストールする必要があります。
スタート¥アクセサリ¥Windows PowerShell¥Windows PowerShell V2 ISE を起動してください。(普通のPowershellでも、「管理ツール」にある「Windows PowerShell 用Active Directory モジュール」でも大丈夫です。PowerShell ISEだとUnicode対応なので、英語のOS からでも日本語の入力を手間がかかりません。
「Windows PowerShell 用Active Directory モジュール」じゃない場合、最初にActive Directory のApplet達をロードする必要があります。(「Windows PowerShell 用Active Directory モジュール」だと自動的にロードされます)
PS C:\Users\Administrator> Import-Module ActiveDirectory
Import-Module のコマンドでActive Directory のApplet をロードします。
Active Directory のPowerShellのモジュール からほとんどのことができます。ここで複数の例しか書きませんが、「これ知りたい!」なものありましたらコメントでお聞きください。
次、日本向けのActive DirectoryのPowerShell のコマンドをちょっと紹介したいと思っています。
最初はNew-ADUserです。新規にユーザーを作成するコマンドです。コマンドの説明を表示するには以下の方法でできます。
>get-help New-ADUser
又は
>get-help New-ADUser -full
などなどです。
たとえば、新しいユーザーの「佐井等 四朗」を「Sales」の組織単位(OU)に入れたいです。「サイトウ」という名前は非常に多くありますので、検索やソートするために、名前のふりがなもつけてみましょう。
>New-ADUser -SamAccountName "shiros" -Name "佐井等 四朗" -GivenName "佐井等" -Surname "四朗" -DisplayName "佐井等 四朗" -Path ‘OU=Sales,DC=Contoso,DC=COM’ -OtherAttributes @{‘msDS-PhoneticDisplayName’="サイトウ シロウ";'msDS-PhoneticFirstName’="シロウ";'msDS-PhoneticLastName'="サイトウ"}
注目するのは「 -OtherAttributes」 のところです。多く使っている項目だとパラメーターがほぼあります。例:「名」は「-GivenName」などです。ヘルプの「-full」をご覧になさったら、全部が見えます。それ以外の項目は「-OtherAttributes」で示すことが可能です。上で書いてあるふりがなの例があった用にスキーマの属性(Attribute)名を示せばほとんど何の情報でも追加することが可能となります。たとえば、社員番号の場合だと:
-OtherAttributes @{‘otherMobile’=”090-XXXX-XXXX”}
で出来ます。
じゃ、新しいユーザーを入れましたので、「サイトウ」という名前のいっぱいある「Sales」 OU の人々を検索してみましょう。
>get-help Get-ADUser –full
をご覧ください。
>Get-ADUser –Filter ‘msDS-PhoneticLastName –like “サイトウ”’ –Properties msDS-PhoneticDisplayName,DisplayName –SearchBase “OU=Sales,DC=Contoso,DC=COM” | sort-object –property msDS-PhoneticDisplayName | format-table msDS-PhoneticDisplayName,DisplayName –A
を入力すると出力は: (私のテスト環境の場合)
msDS-PhoneticDisplayName DisplayName
------------------------ -----------
サイトウ サブロウ 差異等 三郎
サイトウ シロウ 佐井等 四朗
サイトウ ジロウ 債等 二郎
サイトウ ジロウ 際等 次郎
サイトウ タロウ 斉藤 太郎
サイトウ タロウ 齋藤 太郎
Get-ADUser を使って検索したい場合、「-Filter」を使ったらなんでも検索できます。上の例の場合、msDS-PhoneticDisplayName の属性の検索となります。「-SearchBase」を使って、「Sales」のOUのみの検索となります。
Get-ADUserの出力をソートするために sort-object のコマンドを使って、msDS-PhoneticDisplayName 順で表示します。
見やすくするためにformat-table (又はアリアスのFT でも可能)のコマンドを使います。
上の例だと、PhoneticDisplayNameとDisplayNameが半額スペースが入っています。それを修正したい場合、Set-ADUser を使って出来ます。でも最初にGet-ADUser を使って変えたいUser のリストを検索します。
>Get-ADUser –Filter ‘Name –like “*”’ –SearchBase ‘OU=Sales,DC=Contoso,DC=COM’ –Properties msDS-PhoneticDisplayName,msDS-PhoneticFirstName,msDS-PhoneticLastName
を使ったら、Sales のOU のオブジェクトを表示されます。msDS-Phonetic* の情報もつきます。そのリストをSet-ADUser へパイプします。
>Get-ADUser –Filter ‘Name –like “*”’ –SearchBase ‘OU=Sales,DC=Contoso,DC=COM’ –Properties msDS-PhoneticDisplayName,msDS-PhoneticFirstName,msDS-PhoneticLastName | % {Set-ADUser $_ –Replace @{‘msDS-PhoneticDisplayName’=($_.’msDS-PhoneticLastName’ + $_.’msDS-PhoneticFirstName’)}}
(この例にはmsDS-PhoneticFirstNameとmsDS-PhoneticLastNameが既にデータが入っている状態じゃないと失敗します)
最後にちゃんと変えたかどうかを確認しましょう。
>Get-ADUser –Filter ‘Name –like “*”’ –Properties msDS-PhoneticDisplayName,DisplayName –SearchBase “OU=Sales,DC=Contoso,DC=COM” | sort-object –property msDS-PhoneticDisplayName | format-table msDS-PhoneticDisplayName,DisplayName –A
msDS-PhoneticDisplayName DisplayName
------------------------ -----------
アンドウミキ 安藤 美木
サイトウサブロウ 差異等 三郎
サイトウシロウ 佐井等 四朗
サイトウジロウ 債等 二郎
サイトウジロウ 際等 次郎
サイトウタロウ 斉藤 太郎
サイトウタロウ 齋藤 太郎
モリオウガイアーロン 森鷗外 あーろん
ヤスダエイジ 安田 永智
msDS-PhoneticDisplayName から半額スペースがなくなりました。復活したい場合、上のコマンドの一部変えれば復活することが出来ます。
–Replace @{‘msDS-PhoneticDisplayName’=($_.’msDS-PhoneticLastName’ + “ “ + $_.’msDS-PhoneticFirstName’)}}
ここまで頑張って読んでいただいて、お疲れ様です。
次回はActive Directory の新管理ツールの”Active Directory 管理センター”を紹介したいと思っております。