テンプレート

 

適用先: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

トピックの最終更新日: 2007-08-29

ここでは、Exchange 管理シェルでテンプレートを使用して、あるオブジェクトの構成を別のオブジェクトにコピーする方法について説明します。

このトピックの例では、New-Mailbox コマンドレットと Set-Mailbox コマンドレットを使用して新しいメールボックスを作成するときにテンプレートを使用する方法について説明します。ただし、多くのコマンドレットを使ってテンプレートを使用できます。コマンドレットごとに固有の要件が異なる可能性がありますが、すべてのコマンドレットで同じ方法でテンプレートを使用できます。

テンプレートが役に立つ理由

Microsoft Exchange Server 2007 では、Exchange 管理シェルを使用して、メールボックス、送信コネクタ、および電子メール アドレス リスト ポリシーなどのオブジェクトを管理できます。これらのオブジェクトは、構成可能な多くのプロパティを含むことができます。管理者が構成できるプロパティの例には、電子メール アドレス リスト ポリシーの条件付きカスタム属性、リモート ドメインでインターネットへの自動応答を許可するかどうか、および送信コネクタで DNS ルーティングが有効かどうかを決定するプロパティがあります。

既存のオブジェクトの構成に基づいて新しいオブジェクトを作成する場合は、テンプレートを使用できます。テンプレートを使用して新しいオブジェクトを作成する場合、Exchange 管理シェルは、必須であり一意であることが必要なプロパティを複製できません。このため、新しいオブジェクトを作成するときは、必須のプロパティおよび一意であることが必要なプロパティを指定する必要があります。

ここでは、以下に示すカスタマイズされた構成を持つ 100 個のメールボックスを作成するときに、テンプレートを使用して時間を節約する方法について説明します。

プロパティ カスタマイズされた値

RetainDeletedItemsFor

30.00:00:00

ProhibitSendQuota

1GB

ProhibitSendReceiveQuota

1500MB

IssueWarningQuota

750MB

UseDatabaseQuotaDefaults

$False

UseDatabaseRetentionDefaults

$False

この表に示すプロパティは、Exchange 管理シェルを使用して、メールボックスで設定できるプロパティの例です。New-Mailbox コマンドレットを使用して新しいメールボックスを作成するときは、これらのプロパティを構成することはできません。プロパティを構成するには、Set-Mailbox コマンドレットを使用する必要があります。テンプレートを使用しない場合は、個々に新しいメールボックスを作成してからそのプロパティを構成する必要があります。テンプレートを使用すると、1 つのメールボックスを作成し、Set-Mailbox コマンドレットを使用してプロパティを構成できます。次に、最初のメールボックスをテンプレートとして使用し、そのテンプレートを使用して残りのメールボックスを作成できます。

note注 :
また、パイプライン処理を使用して、新しいメールボックス オブジェクトを New-Mailbox コマンドレットから Set-Mailbox コマンドレットに渡すこともできます。Set-Mailbox コマンドレットを使用すると、新しいメールボックスのプロパティを設定できます。テンプレートを使用する利点は、新しいオブジェクトを構成する方法そのもので構成されている既存のオブジェクトを使用できることにあります。既存のオブジェクトを使用するときは、これらのオブジェクト間で一貫した構成が維持されていることを確認してください。
パイプライン処理の詳細については、「パイプライン処理」を参照してください。

Exchange 管理シェルがテンプレートを実装する方法

Exchange 管理シェルでは、動詞 NewAdd、および Enable を持つ多くのコマンドレットで TemplateInstance パラメータをサポートすることでテンプレートを使用できます。TemplateInstance パラメータは、作成しようとしているオブジェクトと同じ種類のオブジェクトを受け入れます。たとえば、New-Mailbox コマンドレットを使用して新しいメールボックスを作成する場合、メールボックス オブジェクトを TemplateInstance パラメータに指定する必要があります。コマンドレットの詳細については、「コマンドレットについて」を参照してください。オブジェクトの詳細については、「構造化データ」を参照してください。

note注 :
メールボックスやメールボックスが有効なユーザーなど、テンプレートとして専用で機能する受信者を作成したい場合があります。これらの専用の受信者テンプレートをセキュリティで保護する方法については、「受信者テンプレートをセキュリティで保護する方法」を参照してください。

TemplateInstance パラメータを含むコマンドレットを実行すると、このコマンドレットは、TemplateInstance パラメータで指定したオブジェクトから取得した構成とコマンドレットの必須パラメータで指定した値を組み合わせます。組み合わされた構成は、新しいオブジェクトの作成に使用されます。TemplateInstance パラメータを使用して、必須パラメータの値を構成することはできません。

note注 :
パラメータを指定し、コマンドレットの実行時に値を指定した場合、そのパラメータで指定した値は、テンプレート オブジェクトで構成されている値よりも優先されます。

オブジェクトをテンプレートとして使用するには、最初にオブジェクトを作成し、次にそのプロパティを構成する必要があります。オブジェクトを構成した後、その構成済みオブジェクトをテンプレートとして使用することで追加のオブジェクトを作成できます。たとえば、前述のセクションの表に示されている構成を持つ新しいメールボックスを作成する場合は、最初に New-Mailbox コマンドレットを使用してメールボックスを作成し、次に Set-Mailbox コマンドレットを使用して以下の例のようにメールボックス オブジェクトのプロパティを構成する必要があります。

$Password = ConvertTo-SecureString Pass@word1 -AsPlainText -Force
New-Mailbox -Name "Kim Akers" -Database "Mailbox Database" -UserPrincipalName kim@contoso.com -Password $Password
Set-Mailbox "Kim Akers" -RetainDeletedItemsFor 30.00:00:00 -ProhibitSendQuota 1GB -ProhibitSendReceiveQuota 1500MB -IssueWarningQuota 750MB -UseDatabaseQuotaDefaults $False -UseDatabaseRetentionDefaults $False

メールボックスを管理する方法の詳細については、「ユーザーのメールボックスの管理」を参照してください。

テンプレートとして使用するメールボックス オブジェクトを作成して構成した後、同じ構成のメールボックス オブジェクトをさらに作成することができます。最初に、次の例のように、テンプレートとして使用するメールボックス オブジェクトを変数に割り当てる必要があります。

$Template = Get-Mailbox "Kim Akers"

変数の名前は何であってもかまいません。変数の詳細については、「ユーザー定義変数」を参照してください。

以上でテンプレートとして使用するメールボックス オブジェクトを選択しました。ここで、次の例に示すようにテンプレートを使用して新しいメールボックスを作成できます。

$Password = ConvertTo-SecureString Pass@word1 -AsPlainText -Force
New-Mailbox -Name "David Simpson" -Database "Mailbox Database" -UserPrincipalName david@contoso.com -Password $Password -TemplateInstance $Template

新しいメールボックスを作成した後、次のコマンドを使用して、テンプレートを使って構成したメールボックス オブジェクトのプロパティを表示し、プロパティが正しく設定されていることを確認できます。

Get-Mailbox "David Simpson" | Format-List Name, ProhibitSendQuota, ProhibitSendReceiveQuota, IssueWarningQuota, UseDatabaseQuotaDefaults, UseDatabaseRetentionDefaults, RetainDeletedItemsFor

Name                         : David Simpson
ProhibitSendQuota            : 1GB
ProhibitSendReceiveQuota     : 1500MB
IssueWarningQuota            : 750MB
UseDatabaseQuotaDefaults     : False
UseDatabaseRetentionDefaults : False
RetainDeletedItemsFor        : 30.00:00:00

Format-List コマンドレットの詳細については、「コマンド出力の操作」を参照してください。

複数のオブジェクトの作成時にテンプレートを使用する

テンプレートは、同時に多くのオブジェクトを作成するときにきわめて役に立ちます。たとえば、コンマ区切り値 (CSV) ファイルに示されているユーザーのメールボックスを作成して、すべての新しいメールボックスに同じ構成を適用したい場合があります。Import-CSV コマンドレットと ForEach コマンドレットを使用して、CSV ファイルからデータを読み取り、ファイルに示されている各ユーザーのメールボックスを作成できます。たとえば、次の CSV ファイルのユーザーの新しいメールボックスを作成し、Kim Akers メールボックス オブジェクトで構成されているメールボックス オブジェクトのプロパティを適用するとします。CSV ファイル、Users.csv には、次の情報が含まれています。

Name,UPN,MailboxDatabase
Adam Bar,adam@contoso.com,Sales
Mike Ray,mike@contoso.com,Sales
Angela Barbariol,angela@contoso.com,Marketing
Chris Barry,chris@contoso.com,Marketing
Sanjay Jacob,sanjay@contoso.com,Marketing

最初に、次の例のように、テンプレートで使用する構成を含むメールボックス オブジェクトを割り当てます。

$Template = Get-Mailbox "Kim Akers"

次に、Import-CSV コマンドレットと ForEach コマンドレットを使用してメールボックスを作成できます。

$Password = ConvertTo-SecureString Pass@word1 -AsPlainText -Force
Import-CSV C:\Users.CSV | ForEach { New-Mailbox -Name $_.Name -UserPrincipalName $_.UPN -Database $_.MailboxDatabase -Password $Password -Template $Template }

ForEach コマンドレットおよび複数の受信者を追加する方法の詳細については、以下のトピックを参照してください。

参照している情報が最新であることを確認したり、他の Exchange Server 2007 ドキュメントを見つけたりするには、Exchange Server TechCenter を参照してください。