在 Windows 平台上,有哪些方法可以在没有活动目录的远程计算机上安装软件(MSI)?
目的是创建通用应用程序,将软件安装在不同位置和不同客户网络的所有工作站上。
答案1
使用 PSExec 复制并执行远程命令(例如 .msi 文件),并设置适当的开关。不过,您仍需向每台机器提供管理员凭据。
答案2
您的问题可以分为两种。如果问题是“如何在不使用 Active Directory 及其相关产品的情况下在企业级 Windows 上管理软件安装”,那么还有许多其他产品可以满足您的需求——我使用的产品是 Novell Zenworks(可以选择使用 AD,也可以使用 Novell 的 eDirectory——因此没有 AD),多年来我对它非常满意。
但是,如果您的问题(正如我所料)更像是“我如何才能以低成本远程部署一批独立工作站上的软件”,那么我们可以更有趣一点。安装 MSI 的基本过程永远不会改变 - 您从命令行运行 Windows 安装程序,将其指向 MSI 文件,并为其提供与您要完成的安装类型相应的标志。如果您尝试自定义安装程序,或者供应商没有提供特别符合 msi 要求的文件(一些公司因将自己的 .exe 安装程序包装在普通的 MSI 上而臭名昭著),那么事情就会变得有点棘手,为此,您可能需要使用 AdminStudio 之类的应用程序来修改 MSI 文件或创建您自己的文件。我还建议您查看 MSI Wisdom 之类的网站(http://msiwisdom.com) 以获取有关使用一些比较麻烦的流行应用程序安装程序的提示。
当您需要所有这些工作站都能够在无需太多干预的情况下运行这些安装程序命令,并能够运行不断变化的软件列表时,麻烦就开始了。
我强烈建议您获得组织的支持,购买和部署中央目录服务(如 Active Directory 或 eDirectory)和工作站管理软件(如 Microsoft 的内置产品 Altiris 或上述 Zenworks)。这类软件不仅比自行开发的解决方案更可靠,而且还提供安装报告等功能(安装在哪里、安装失败等),从而大大减少您的工作站维护工作量。
尽管如此,“廉价”的解决方案涉及四个方面:
1)专门用于软件部署的具有只读帐户的文件服务器
2)每个工作站上都有一个具有标准用户名和密码的本地管理员帐户
3)使用能够运行 Windows 安装程序的语言编写的文件服务器上的远程脚本(我建议使用 VBScript 或 C#)和
4) 放入调度程序的本地工作站上的补充脚本。
因此,实际发生的情况如下:
调度程序中的本地脚本每晚在设定的时间运行(最好在工作站之间错开),并且只执行映射到文件服务器->运行远程脚本->在远程脚本完成后删除映射。
安装程序文件与远程脚本位于同一文件服务器共享中。默认情况下,远程脚本不执行任何操作,但当您需要安装软件时,您可以更改它(保持相同的名称)。当需要安装软件时,脚本将调用以本地管理员身份运行的 Windows 安装程序并安装您当前在文件服务器上拥有的任何 MSI 包。
从长远来看,廉价的解决方案将更加昂贵。但如果您不想通过 Sneakernet 进行安装,并且不打算部署带有托管软件的集中目录系统,那么这就是我要采用的方法。