为了给出背景知识,我试图通过PowerShell脚本在远程计算机上自动安装我们的Windows应用程序(setup.exe),并且由于依赖性而陷入困境,在我们的案例中是SQLExpress Edition 2005。 / p>
由于我们的应用程序依赖于SQLExpress,因此在安装过程中它会尝试安装SQL Server 2005 Express Edition,并且当它永远被卡住时。我可以在任务管理器中看到进程(SQLExpress **。exe),之后没有任何反应。但是,当我登录到远程计算机并进行手动安装(自己运行setup.exe)以及在本地运行PowerShell脚本(以便验证setup.exe或PowerShell脚本没有问题)时,这可以正常工作
我尝试了不同的事情,但没有成功。任何地方都没有日志或消息。我所知道的是,它在设置启动SQLExpress安装时卡住了。
任何帮助都将受到高度赞赏。
PowerShell命令:
Start-Process -FilePath "C:[myapplicatonname]\setup.exe" -ArgumentList '-s -f2"c:\LogFiles\setup.log" -K"XXXXXXX-XXXX-XXXXX;XXXX-XXXX-XXXXXX" -gS' -Wait -PassThru
远程静默安装应用程序的PS脚本:
$username = "[username]"
$password = "[pwd]"
$cred = new-object -typename System.Management.Automation.PSCredential ` -argumentlist $username, $password
$testCon = Test-Connection [machine name]
echo ($testCon + "==========================")
$dc1 = New-PSSession -ComputerName \\machinename -Credential $cred
Enter-PSSession -Session $dc1
$script = {
$p = Start-Process -FilePath "C:\[application name]\setup.exe" -ArgumentList '-s -f2"c:\LogFiles\setup.log" -K"1A34AQ9-SAHYTH-UMA68;JA34AQ9-YLMT-C7THH" -gS' -Wait -PassThru
}
invoke-command -computername \\machinename -Credential $cred -scriptblock $script
if($p.ExitCode -ne 0)
{
Write-Host " successfully installed"
}
else
{
Write-Host "installer exit code $($p.ExitCode)"
}
Exit-PSSession