Sitecore包安装通过PowerShell失败

Sitecore包安装通过PowerShell失败,powershell,sitecore,Powershell,Sitecore,通过Powershell在Sitecore中安装软件包时出现以下错误 我们在社区中报告了一个类似的问题 问题是我们构建的web服务在安装向导的长时间运行过程中遇到超时。我们提供了一个解决方案,您可以在其中创建后台ScriptSession作业,稍后可以检索该作业 在我们的示例中,我们提供了这个示例 Import-Module -Name SPE $session = New-ScriptSession -Username admin -Password b -ConnectionUri http

通过Powershell在Sitecore中安装软件包时出现以下错误


我们在社区中报告了一个类似的问题

问题是我们构建的web服务在安装向导的长时间运行过程中遇到超时。我们提供了一个解决方案,您可以在其中创建后台ScriptSession作业,稍后可以检索该作业

在我们的示例中,我们提供了这个示例

Import-Module -Name SPE
$session = New-ScriptSession -Username admin -Password b -ConnectionUri http://remotesitecore

$job = Invoke-RemoteScript -Session $session -ScriptBlock {
    Start-ScriptSession -ScriptBlock {
        # Replace the contents of this scriptblock with your installation steps. 
        # I just put $true there so something would come back.
        Start-Sleep -Seconds 10
        [PSCustomObject]@{"IsComplete"=$true}
    }
}

$keepRunning = $true
while($keepRunning) {
    $done = Invoke-RemoteScript -Session $session -ScriptBlock {
        $scriptSession = Get-ScriptSession -Id $params.JobId
        $scriptSession.State -ne "Busy"
    } -Arguments @{"JobId" = $job.ID} 

    if($done) {
        $keepRunning = $false

        Invoke-RemoteScript -Session $session -ScriptBlock {
            $scriptSession = Get-ScriptSession -Id $params.JobId
            if($scriptSession.State -ne "Busy") {
                $scriptSession | Receive-ScriptSession
            }
        } -Arguments @{"JobId" = $job.ID}    
    } else {
        Start-Sleep -Milliseconds 500
    }
}
随着SPE4的发布,希望看到本书的更新以简化用法。

这是示例代码
你的意思是什么错误?请编辑原始问题我认为您忘记附加错误消息。是否尝试在没有Power Shell的情况下安装程序包?Sitecore程序包安装通过Powershell失败。我已经附上了截图。请找到它。是的,我在没有powershell的情况下进行了尝试,工作正常。显然,安装程序包的过程已超时。出现这种情况的原因有几个,但一个很好的原因是当前w3wp.exe对包可能试图替换的各种文件有一个锁定。这可能会导致僵局——老实说,我从未见过这种情况发生,但至少在理论上是可能的。正如@siteCoreclimper所提到的,我会尝试正常安装该包,看看它是否与该包或PowerShell有关。如果是后者,你可以在我试过密码的时候开罚单。但出现以下错误[在此处输入图像描述][1][1]:我向您的脚本提交了一个编辑,以便您可以获得一个工作示例。
Import-Module -Name "C:\Scripts_31DEC\SPE Remoting-3.3\SPE"
$session = New-ScriptSession -Username admin -Password b -ConnectionUri http://quuintranet
$job = Invoke-RemoteScript -Session $session -ScriptBlock {
    Start-ScriptSession -ScriptBlock {
        # Replace the contents of this scriptblock with your installation steps. 
        # I just put $true there so something would come back.

        Install-Package -Path "C:\Scripts_31DEC\quutest_ow.zip" -InstallMode Overwrite
        [PSCustomObject]@{"IsComplete"=$true}
    }
}

$keepRunning = $true
while($keepRunning) {
    $done = Invoke-RemoteScript -Session $session -ScriptBlock {
        $scriptSession = Get-ScriptSession -Id $params.JobId
        $scriptSession.State -ne "Busy"
    } -Arguments @{"JobId" = $job.ID} 

    if($done) {
        $keepRunning = $false

        Invoke-RemoteScript -Session $session -ScriptBlock {
            $scriptSession = Get-ScriptSession -Id $params.JobId
            if($scriptSession.State -ne "Busy") {
                $scriptSession | Receive-ScriptSession
            }
        } -Arguments @{"JobId" = $job.ID}    
    } else {
        Start-Sleep -Milliseconds 500
    }
}