Udostępnij za pośrednictwem


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 管理センター”を紹介したいと思っております。