バンドルされた管理パックのバンドルを解除する方法
公開日: 2016年3月
対象: System Center 2012 SP1 - Service Manager、System Center 2012 R2 Service Manager、System Center 2012 - Service Manager
System Center 2012 – Service Manager でバンドルされた管理パック (.mpb) ファイルには、複数の管理パック (.mp) ファイルが含まれています。 また、イメージやフォーム アセンブリなどのリソースへの参照が含まれている場合もあります。 .mpb ファイルをカスタマイズするには、該当するバンドル内の各ファイルにアクセスし、個別にカスタマイズする必要があります。
このバージョンの System Center 2012 – Service Manager Authoring Tool では、.mpb ファイルを直接開いて、その中の各ファイルにアクセスすることはできません。 代わりに、.mpb ファイルのバンドルを手動で解除し、すべての .mp ファイル、.xml ファイル、その他のリソース ファイルをオーサリング ツールからアクセスできる単一のフォルダーに保存する必要があります。 そうすると、各ファイルをオーサリング ツールで開き、他の管理パックをカスタマイズする場合と同様にカスタマイズできるようになります。 カスタマイズが終了したら、ファイルを再度バンドルし、新しい .mpb 管理パック ファイルを生成する必要があります。
ほとんどのリソース ファイルは、Windows PowerShell スクリプトを使用して、.mpb ファイルから抽出できます。 次の手順では、.mpb ファイルからファイルを抽出する Windows PowerShell サンプル スクリプトを提供します。 の詳細については 使用する方法、 Service Manager を他のスクリプトを作成する SDK を参照してください Service Manager SDKします。
封印された管理パックは .mpb ファイルから抽出できません。 封印された管理パックについては、パッケージ所有者が各ファイルを個別に提供する必要があります。
封印された個々の管理パックを .mpb ファイルから抽出するには
開始、 Service Manager Windows PowerShell セッションです。 詳細については、次を参照してください:構成して、System Center 2012 - Windows PowerShell の Service Manager コマンドレットを使用してします。
Windows PowerShell コンソールで、次のコマンドを入力します。
mkdir <mpdir>
Get-SCSMManagementPack -bundlefile .\<filename>.mpb | Export-SCSMManagementPack -path <mpdir>
コマンドでは、置換、 < mp ディレクトリ> プレース ホルダーを抽出した管理パック ファイルを格納するフォルダ。
置き換える、 < filename> 、.mpb ファイルの名前のプレース ホルダーです。
今すぐに移動することができます、 < mp ディレクトリ> フォルダーに現在の作業フォルダーを表示し、抽出した管理パック ファイルにアクセスします。
.mpb ファイルからリソース ファイルを抽出するには
Windows PowerShell ウィンドウでは、次のコマンドを入力します。
$SM2012DirKey = Get-ItemProperty "hklm:\SOFTWARE\Microsoft\System Center\2012\Common\Setup" $SM2012Dir = $SM2012DirKey.InstallDirectory [reflection.assembly]::loadfrom($SM2012Dir + "\SDK Binaries\Microsoft.EnterpriseManagement.Packaging.dll") [reflection.assembly]::LoadWithPartialName("Microsoft.EnterpriseManagement.Core") | out-null $emg = new-object Microsoft.EnterpriseManagement.EnterpriseManagementGroup localhost $mpbReader = [Microsoft.EnterpriseManagement.Packaging.ManagementPackBundleFactory]::CreateBundleReader() $mpb = $mpbReader.Read("$PWD\Administration.mpb", $emg)
これで、$mpb オブジェクトから、.mpb バンドル内の管理パックである $mpb.ManagementPacks にアクセスできるようになります。 さらに、リソースをバンドル内の管理パックに関連付ける $mpb.GetStreams(ManagementPack) にアクセスできます。 関連付けられたリソースは、ファイルに書き込み可能なバイナリ ストリームの形式になります。