取消捆绑捆绑管理包,以便与 Service Manager 创作工具一起使用
System Center 中的捆绑管理包 (.mpb) 文件 - Service Manager 包含多个管理包 (.mp) 文件。 此外,它可能包括对资源(如图像或窗体程序集)的引用。 若要自定义 .mpb 文件,必须访问和自定义捆绑包中的单个文件。
在此版本的 Service Manager 创作工具中,无法直接打开 .mpb 文件来访问其单个文件。 相反,你必须手动解包 .mpb 文件,并将所有 .mp、.xml 和其他资源文件存储在创作工具可访问的单个文件夹中。 然后,可以按照自定义其他管理包的方式在创作工具中打开和自定义各个文件。 完成自定义后,必须重新打包文件并生成新的 .mpb 管理包文件。
可以使用 Windows PowerShell 脚本从 .mpb 文件中提取大部分资源文件。 以下过程提供从 .mpb 文件中提取文件的 Windows PowerShell 示例脚本。 有关如何使用 Service Manager SDK 创建其他脚本的详细信息,请参阅 Service Manager SDK。
无法从 .mpb 文件中提取密封的管理包。 包所有者必须为密封的管理包单独提供每个文件。
从 .mpb 文件中提取单个未密封的管理包
启动 Service Manager Windows PowerShell 会话。
在 Windows PowerShell 控制台中,输入以下命令:
mkdir <mpdir>
Get-SCSMManagementPack -bundlefile .\<filename>.mpb | Export-SCSMManagementPack -path <mpdir>
在命令中,将 mpdir 占位符替换为将存储提取的管理包文件的文件夹。
将 文件名 占位符替换为 .mpb 文件的名称。
现在可以导航到当前工作文件夹中的 mpdir 文件夹,以查看和访问提取的管理包文件。
从 .mpb 文件中提取资源文件
在 Windows PowerShell 窗口中,输入以下命令:
$SM2016DirKey = Get-ItemProperty "hklm:\SOFTWARE\Microsoft\System Center\2016\Common\Setup" $SM2016Dir = $SM2016DirKey.InstallDirectory [reflection.assembly]::loadfrom($SM2016Dir + "\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。ManagementPacks;这些是 .mpb 捆绑包中的管理包。 可以访问$mpb。GetStreams(ManagementPack),它将资源与该捆绑包中的管理包相关联。 这些资源将以可写入文件的二进制流的形式提供。
后续步骤
- 使用 Service Manager 创作自定义和创作类。