powershell远程安装msi失败

时间:2014-01-28 10:01:11

标签: powershell windows-installer

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

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

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

# 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上启动会话并执行安装时,安装成功(请参阅附件install_success.log以获取完整日志):     ENTER-PSSession -ComputerName     Invoke-Expression'msiexec / i / qn / L * v C:\ Temp \ install_success.log'     出口

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

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

  

该文件夹未加密

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

  

驱动器是服务器硬盘上的分区

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

  

SYSTEM帐户对驱动器和所有文件夹具有完全控制权。

请告知......

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用PSEXEC?或者你使用PowerShell是有原因的吗?我发现远程安装比尝试使用PowerShell更容易。

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

答案 1 :(得分:0)

@AudioDroid:我最后编写了第二个PowerShell脚本,该脚本在服务器上运行,查看新msi文件的特定文件夹。该脚本运行实际执行安装任务的第一个脚本。