msiexec / p(用于修补) – 在另一次更改后不会更新

我有一个由Office 2007自定义工具生成的.msp文件。

如果我创build.msp文件并将其应用于其工作的机器。 但是,如果我再次修改该机器的办公室安装,然后再次尝试运行.msp文件对该计算机再次它不会安装.msp文件(它运行,但没有任何更改)。

如果我回到OCT工具并再次重新保存.msp文件,然后在计算机上重新运行它,然后再次运行。

所以我的猜测是某种序列号或类似的,但有什么办法可以简单地强制.msp文件来改变现有的安装,无论序列号或任何阻止它的工作?

当看到msiexec详细日志logging时,我得到了“预期的产品ID ###,但发现产品ID ###”,这使我相信它正在sorting的东西。

重新创build问题的步骤:

  1. 使用OCT工具创build自定义Office 2k7安装(setup.exe / admin)
  2. 将自定义Office 2k7安装部署到一台XP sp2机器上,其中没有其他任何东西(setup.exe / adminfile custom.msp)
  3. 现在…有一个.NET可编程性支持Infopath设置的一部分,将不会被安装,因为它需要台式机上的.NET 2.0或更高版本。
  4. 在客户端上安装.NET 2.0或更高版本
  5. 仅为.NET Programmability支持创build新的“维护补丁”(setup.exe / admin)。
  6. 在客户端计算机上运行新的修补程序(msiexec / p newpatch.msp)
  7. 在“添加/删除程序”Office 2007中validationInfopath子菜单现在显示.NET Programmability支持(它应该)。
  8. 在添加/删除程序中修改Office安装…删除.NET可编程性支持选项并继续…这将删除该function。
  9. 尝试并重新运行“msiexec / mp newpatch.msp”…它像它运行,但实际上并没有安装任何东西。

步骤8-9是重新创build实际问题的最简单的方法…如果您问“为什么要这样做”,这是因为其他补丁,如WSUS安全补丁程序等最终也使得newpatch.msp变得毫无价值,因为它们碰撞新序列#超过newpatch.msp时间/date戳记序列号。

在与微软就此问题合作之后,唯一合适的解决scheme如下:

Pranav,来自我们的安装团队,告诉我他已经能够找出问题了。 他向我解释说,在修改“InfoPath”下的“.NET可编程性支持”function时,您将无法安装msp,删除office,然后使用相同的msp重新安装。
显然这个问题可以通过创build一个与原始msp相同的新的msp来解决。

这似乎是解决其他Office更新导致.msp文件失败的问题的唯一解决方法。

所以,我们决定做以下事情:

  1. 创build.msp修补程序并通过计算机启动脚本进行部署
  2. 在部署期间,每天一次“重新保存”.msp修补程序2周,以确保其对客户端计算机的影响
  3. 在脚本中,客户端计算机将“回报”到一个中央日志文件(追加它)与他们的计算机名称和一个是/否的答复。
  4. 两个星期后,我们将使用我们回来的“否”回应手动打这些机器,并修复它们。

这很糟糕,但它必须做的。 我们将更新我们的基本计算机图像的未来,所以我们不必再处理这个。