powershell 远程安装 msi 失败

标签 powershell windows-installer

我正在尝试使用 powershell 在远程服务器上安装一个 msi 文件。

服务器 1 是我的构建服务器,服务器 2 是我的应用程序服务器。 当构建服务器完成构建时,我想触发一个 powershell 脚本以将最新版本安装到我的应用程序服务器。

我正在使用以下命令创建 session 并执行安装:

# Create session to Application Server
$Session = New-PSSession -Name <ApplicationServer> -ComputerName <ApplicationServer> -Auth CredSSP -cred OURDOMAIN\MyUser 

# Prepare expression and create script block
$Script = "Invoke-Expression 'msiexec /i <InstallerFile> /qn /L*v C:\Temp\install_fail.log'"
$ScriptBlock = [Scriptblock]::Create($Script)

# Execute in the session
Invoke-Command -ScriptBlock $ScriptBlock -Session $Session

# Clean up the session
Remove-PSSession $Session

日志有如下错误(完整日志见附件install_fail.log)

MSI (s) (C4:1C) [17:08:05:333]: Note: 1: 1708 
MSI (s) (C4:1C) [17:08:05:333]: Product: WindowsService1 -- Installation failed.

MSI (s) (C4:1C) [17:08:05:335]: Windows Installer installed the product. Product Name: WindowsService1. Product Version: 8.0.0.0. Product Language: 1033. Manufacturer: MyCompany. Installation success or error status: 1603.

当我在 powershell 命令 promt 上启动 session 并执行安装时,安装成功(请参阅附件 install_success.log 以获取完整日志): ENTER-PSSession -ComputerName 调用表达式 'msiexec/i/qn/L*v C:\Temp\install_success.log' 退出

当我在这两种情况下打印 whoami 时,它都会返回 OURDOMAIN\MyUser。

Microsoft 列出了以下关于 1603 的内容:( http://support.microsoft.com/kb/834484 ) 您尝试将 Windows Installer 程序包安装到的文件夹已加密。

The folder is not encrypted

包含您尝试安装 Windows Installer 程序包的文件夹的驱动器作为替代驱动器被访问。

The drive is a partition on the harddisk of the server

SYSTEM 帐户对您尝试安装 Windows Installer 程序包的文件夹没有完全控制权限。您注意到错误消息是因为 Windows Installer 服务使用 SYSTEM 帐户安装软件。

The SYSTEM account has Full Control on the drive and all folders.

请指教...

最佳答案

您尝试过使用 PSEXEC 吗?还是您出于某种原因使用powershell?我发现远程安装比尝试通过 powershell 更容易。

只需PSEXEC 进入服务器CMD。将文件复制到本地,然后运行 ​​MSIExec 进行安装。

关于powershell 远程安装 msi 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21402351/

相关文章:

.net - Powershell表单布局

powershell - 如何在 Powershell 中转义反斜杠

installation - InstallShield 中的嵌套 Wow6432Node key

powershell - start-Transcript 未将所有输出捕获到日志文件..?

html - Powershell:下载或保存整个 ie 页面的源代码

xml - 使用 PowerShell 更改 XML 中的项目(0)

visual-studio-2008 - 如何通过 VS2008 设置和部署向注册表 Run 键添加条目

windows-installer - 为 MSI 应用转换时出错

dll - 在基于 WiX msi 的安装程序中包含 dll

installation - 如何与静默安装的 msi 交互? (进度数据并取消)