在远程计算机上调用msiexec并获得0x80070005错误

时间:2013-08-19 09:34:05

标签: powershell powershell-remoting msiexec invoke-command

我正在尝试在powershell中执行一个脚本,该脚本在同一域中的远程计算机上安装msi文件。当我使用Invoke-Command在远程计算机上运行简单的cmdlet时一切正常,但是当我尝试调用msiexec时,我从msi日志中收到此错误

  

MSI(c)(50:C4)[10:50:30:962]:无法连接到服务器。错误:   0X80070005

在InstallFunction.ps1文件中的功能

function ManageMsi {
Param (
    [Parameter(Mandatory=$true)]
    [string] $msiFile,

    [Parameter(Mandatory=$true)]
    [MsiOperation] $operation,

    [string] $TARGETVDIR,
    [string] $TARGETAPPPOOL = "DefaultAppPoll" ,
    [string] $logPath = $msiFile + ".txt"

)       
begin {}

process {
    try {
        if($operation -eq [MsiOperation]::Install)
        {
            Start-Process -FilePath "$env:systemroot\system32\msiexec.exe" `
            -ArgumentList "/i `"$msifile`" /qn /L* `"$logPath`"" -Wait    
        }
        if($operation -eq [MsiOperation]::Uninstall)
        {
            Start-Process -FilePath "$env:systemroot\system32\msiexec.exe" `
            -ArgumentList "/x `"$msifile`" /qn /L* `"$logPath`"" -Wait 
        }
        if($operation -eq [MsiOperation]::InstallService)
        {
            Start-Process -FilePath "$env:systemroot\system32\msiexec.exe" `
            -ArgumentList "/i `"$msifile`" TARGETVDIR=`"$TARGETVDIR`" TARGETAPPPOOL=`"$TARGETAPPPOOL`" /qn /L* `"$logPath`"" -Wait    
        }   
    }
    catch {
        Write-Error $_.Exception.Message.ToString()
    }
}
end {}

}

主脚本中的代码

Invoke-Command -ScriptBlock {
. InstallFunctions.ps1
ManageMsi -msiFile $msiFile -operation InstallService -TARGETVDIR $vdir } -ComputerName $servName

功能ManageMsi在本地计算机上正常工作。 谢谢你的回答

修改:当我使用

$session = New-PSSession -ComputerName $servName
Enter-PSSession $sesion

然后在远程机器

msiexec /i "SomeSetup.msi" TARGETVDIR="SomeVDir" TARGETAPPPOOL="DefaultAppPoll" /qn /L* logMsiTest.txt

我收到此错误(抱歉上面的格式)

  

W W W W W W W W W W W s s s s s s s s s s s s s s s s我爱你的人   我不知道怎么回事。你可以根据自己的需要来选择自己的办公室   s t a n c e。

0 个答案:

没有答案