PowerShell无提示安装Windows应用程序

时间:2015-04-23 23:01:28

标签: sql-server powershell automation powershell-remoting silent-installer

为了给出背景知识,我试图通过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

0 个答案:

没有答案