首页 文章

powershell远程安装msi失败

提问于
浏览
2

我正在尝试使用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

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

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

  • 0

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

相关问题