VMM サーバーからパッケージをエクスポートし、高度なマッピング(スクリプト) を使用して、異なる種類の VMM サーバーにインポート
適用対象: System Center 2012 R2 Virtual Machine Manager,System Center 2012 - Virtual Machine Manager
1 つの VMM 管理サーバーから、テンプレートをエクスポート、インポートされたテンプレートから、対象の環境でのリソースへのリソースをリダイレクトするパッケージのマッピングを作成するテンプレート パッケージをインポートして、異種の VMM 管理サーバー間でのサービス テンプレートを共有することができます。
[!メモ]
このトピックの「スクリプトでは、から関数を保存する パッケージ (スクリプト) をエクスポートする関数を作成します。 エクスポート ServiceTemplate.ps1 名前を持つ。
次のスクリプトを読み込んでエクスポート ServiceTemplate.ps1 をという名前の関数を使用して、指定されたテンプレートをエクスポートします。 パッケージのマッピングを作成し、元のテンプレートをエクスポートしたパッケージのマッピングを使用して、リソースをリダイレクトするものである VMM 管理サーバーに、テンプレートをインポートします。
<#
Description: This script calls a function to export a service template, then
creates a package mapping to map a Run As account and a logical
network to the resources on the target server. The script then
restores the specified template to the dissimilar VMM management
server.
#>
Param (
[parameter(Mandatory=$true)]
[String] $ServiceTemplate=$(throw "Please provide the name of a service template."),
[parameter(Mandatory=$true)]
[String] $Release=$(throw "Please provide a release for the service template."),
[parameter(Mandatory=$true)]
[String] $Path=$(throw "Please provide a share path."),
[parameter(Mandatory=$true)]
[String] $VMMServer=$(throw "Please provide the name of a VMM server.")
)
# Import the file containing the export function into the Windows PowerShell session.
. .\Export-ServiceTemplate.ps1
# Export the service template using the Export-ServiceTemplate function.
Export-ServiceTemplate -Name $ServiceTemplate -Release $Release -Path $Path -VMMServer $VMMServer
# Get the template package.
$RestorePath = "$Path\$ServiceTemplate.$Release.xml"
$Package = Get-SCTemplatePackage -Path $RestorePath
# Create a package mapping.
$PackageMapping = New-SCPackageMapping -TemplatePackage $Package
# Map the resources from the imported template to the resources in
# the target environment.
$Mapping = $PackageMapping | where { $_.PackageID -eq "Domain RAA" }
$NewResource = Get-SCRunAsAccount -Name "DomainAdminRAA"
Set-SCPackageMapping -PackageMapping $Mapping -TargetObject $NewResource
$Mapping = $PackageMapping | where { $_.PackageID -eq "LogicalNetwork01" }
$NewResource = Get-SCLogicalNetwork -Name "LogicalNetwork02"
Set-SCPackageMapping -PackageMapping $Mapping -TargetObject $NewResource
# Import the package to the dissimilar VMM management server.
Import-SCTemplate -VMMServer "VMMServer02.Contoso.com" -Name "New Service Template" -Release "1.0" -
TemplatePackage $Package -PackageMapping $PackageMapping -SettingsIncludePrivate