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