我有一台大约两个月前刚刚安装了 Windows Server 2008 Enterprise 的全新机器。在事件日志中,我看到记录了数千个 EventID 1035。这是 MsiInstaller 一遍又一遍地重新配置大约十几个产品,大约每半小时循环一次。
有没有人看到这个?一开始,我进行了一般的网络搜索,大多数解决方案都围绕戴尔系统中心或谷歌工具栏被安装为罪魁祸首。
我们没有安装这些产品。
谢谢你的帮助,
戴尔
默认情况下,Windows Installer 使用最大的驱动器进行临时存储,无论是否需要(意味着系统驱动器上也有足够的空间)。
摘自http://msdn.microsoft.com/en-us/library/aa371372%28VS.85%29.aspx:
在管理安装期间,安装程序将 ROOTDRIVE 设置为它发现可以写入的第一个连接的网络驱动器。如果不是管理安装,或者安装程序找不到网络驱动器,则安装程序会将 ROOTDRIVE 设置为可写入的本地驱动器,使其具有最多的可用空间。
现在我的系统驱动器是 SSD,我最大的驱动器是 RAID,它在不使用时会降低转速。还记得 SSD 作为系统驱动器吗?现在一切都安静了!直到我安装了一些东西并且 Windows Installer 再次唤醒我的 RAID 只是为了在它上面放一个小的 .tmp 文件......我怎样才能阻止 Windows Installer 使用最大的驱动器作为临时存储?我可以设置一些访问权限来禁止 Windows 安装程序在我的 RAID 驱动器上写入吗?还有其他想法吗?谢谢!
MSI 缓存文件夹( C:\Windows\Installer)的大小大幅增加,现在占用了我(域)计算机上的太多磁盘空间。这个文件夹可以消除或缩小吗?
同样的问题适用于:
C:\WINDOWS\WinSxS( %SystemRoot%\WinSxS)C:\System32\DriverStore( %SystemRoot%\System32\DriverStore)installation windows-installer disk-space-utilization msi uninstall
我有一个使用 Windows Installer 的内部应用程序。此应用程序的每次更新都是一次“重大升级”(不同的产品代码,相同的升级代码),它调用 RemoveExistingProducts。(实际上,这意味着每次创建新版本时,您只需单击 MSI 文件即可安装它,因为它会卸载旧版本,然后安装新版本。)
它目前通过组策略中的机器配置进行部署。任何链接的 GPO 都将在下次启动时安装该软件,这非常有效。
我还有一个持续集成服务器 (TeamCity),每次我们向源代码控制提交一些内容并“固定”以进行部署时,它都会为这个软件构建和运行测试。我什至可以将新构建的 MSI 文件复制到网络共享以准备部署。
不幸的是,作为集成过程的一部分,我没有看到实际告诉 GPO 以编程方式重新部署新更新的 MSI 文件的方法。
如果我只是覆盖现有的 MSI 文件并且不接触 GPO,那么安装了旧 MSI 的机器不会注意到这种变化,而较新的机器在找不到包含产品代码的 MSI 文件时会吓坏组策略管理编辑器生成的脚本。不错,有道理
如果我只是覆盖现有的 MSI 文件并在 GPME 中单击“重新部署应用程序”,似乎会发生相同的行为。同样,我们似乎不高兴我们试图重新部署一个 MSI 文件,该文件的包代码与 GPME 生成的脚本中的代码不匹配。不错,有道理
什么做的工作是右键单击在GPME安装包,打“立即删除”,然后将安装包右后卫-创建一个新的* .aas脚本和老包被删除,并在下次安装新的软件包引导。有没有办法通过批处理脚本来做到这一点,我可以将它添加到我的集成服务器的构建过程中?
谢谢!
在查看了 Evan 的评论后,我最终只编写了一个在 Startup 上运行的小批量脚本。我还编写了一个名为msicheck确定是否安装了给定 MSI 包的小实用程序。这很好地满足了我的需求,比翻阅 LDAP 规范的页面要好得多!=)
我一直在尝试建立一个窗口的 7 和 2k8 EFI 部署 ISO 或 USB。但是甚至很难从 VMware Workstation EFI 实施中获得 ISO 来启动。问题是对 EFI 引导加载程序要查找的内容没有明确要求,“例如 EFI 引导文件”甚至可引导的 ISO 和 USB 也找不到所需的 .efi 文件。
我想知道 EFI 引导加载程序启动 EFI 文件的过程是什么。例如;
在 EFI Windows 系统中;
C:\Windows\Boot\EFI\bootmgfw.efi从 DVD 是;
F:\efi\microsoft\boot\cdboot.efi人们告诉我它在 USB 上;
G:\efi\boot\bootx64.efi (bootmgfw.efi renamed)
我一直在测试带有 EFI 2.0 和 VMware Workstation 8.0 的 HP 笔记本电脑,带有 .vmx 文件固件 =“efi”
如果 MSI 安装设置为按用户安装,并且 3 个不同的用户登录并且每个用户都安装该应用程序,会发生什么情况?Windows Installer 会识别出相同的 MSI 已经安装到 Program Files 中,因此不需要再次安装吗?
如果 3 个用户之一在登录时卸载该应用程序,会发生什么情况?Windows Installer 是否会识别出其他 2 个用户仍然需要安装该应用程序,因此不会在 Program Files 中保留应用程序文件夹?
我正在使用 powershell 脚本自动无人值守地检索和安装指定的 .msi 包,但如果调用命令时出现语法错误,尽管存在 /quiet 和/或 /passive,msiexec 将无限期地等待对其帮助显示的确定单击.
目前我正在调用它:
(start-process -FilePath "msiexec" -ArgumentList "/i <path_to_package> /quiet /passive" -PassThru -Wait).ExitCode
Run Code Online (Sandbox Code Playgroud)
有没有办法禁用 msiexec 帮助显示?
我有一台生产服务器,需要知道运行的是哪个版本的 Windows 安装程序,有什么快速的方法可以在服务器上不运行 4.5 安装程序的情况下找到它?
首先,我不能使用组策略,因为我们的团队不管理它。该公司是一家庞大的 FTSE 公司,拥有一支涵盖您能想到的 IT 各个方面的团队。
我们的团队需要一种通过批处理文件或使用 Windows Installer 和 .msi 文件的脚本远程安装程序的方法。
到目前为止,我已经成功地使用 psexec 安装了 Java(见下文)
psexec \\pcname -u *username* -p *password* -i
msiexec.exe /a "msilocation\install.msi"
Run Code Online (Sandbox Code Playgroud)
这没有任何问题。但是我想要一些比这更自动化的东西。
但是,我想要做的是能够从我的机器运行脚本或批处理文件,以便在列出的所有远程工作站上安装 msi。我很确定你可以在批处理文件中列出工作站,但我可能错了。
老实说,如果我必须在脚本或批处理文件中进行修复,我不会大惊小怪。我只是不能使用组策略等。
我正在尝试在目前装有 Ubuntu 的机器上安装 Windows XP。我希望安装程序格式化磁盘并删除 Ubuntu。Windows 安装程序启动,但是当它进入应该能够请求格式化硬盘驱动器的屏幕时,它没有出现在列表中。
当我msiexec.exe使用msi文件运行时,它运行完美。问题是许多安装文件不是msi's but exe's。
我的问题是:如何exe使用msiexec.exe命令运行文件?如果不可能,有没有办法正确转换exe为msi?
非常感谢,
问候。
msi ×6
windows ×4
installation ×2
batch-file ×1
bios ×1
deployment ×1
executable ×1
group-policy ×1
powershell ×1
pstools ×1
scripting ×1
uefi ×1
uninstall ×1
users ×1
windows-7 ×1