Falha de instalação silenciosa do SQL Server 2008 R2

1

Baixei o software SQL Server 2008 R2 da Microsoft e estou trabalhando no script de uma instalação silenciosa. Estou recebendo os seguintes erros (e o trabalho de colar duplicado não é um acidente, é assim que aparece para mim)

The following error occurred:
Exception has been thrown by the target of an invocation.

Error result: 1152035024
Result facility code: 1194
Result error code: 43216

Please review the summary.txt log for further details
The following error occurred:
Exception has been thrown by the target of an invocation.

Error result: 1152035024
Result facility code: 1194
Result error code: 43216

Please review the summary.txt log for further details
Microsoft (R) SQL Server 2008 R2 Setup 10.50.1600.01

Isso é o que aparece no log detalhado de instalação do SQL.

2011-02-23 09:53:13 Slp: Running Action: ExecuteInitWorkflow
2011-02-23 09:53:13 Slp: Workflow to execute: 'INITIALIZATION'
2011-02-23 09:53:13 Slp: Error: Action "Microsoft.SqlServer.Configuration.BootstrapExtension.ExecuteWorkflowAction" threw an exception during execution.
2011-02-23 09:53:13 Slp: Microsoft.SqlServer.Setup.Chainer.Workflow.ActionExecutionException: Exception has been thrown by the target of an invocation. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.ArgumentNullException: Value cannot be null.
2011-02-23 09:53:13 Slp: Parameter name: InstallMediaPath

Espero que alguém possa me ajudar a trabalhar com isso. Aqui está uma versão simples do meu código do PowerShell.

$arguments = @()
$arguments += "/q"
$arguments += "/ACTION=Install"
$arguments += "/FEATURES=SQL,Tools"
$arguments += "/INSTANCENAME=MSSQLSERVER"
$arguments += "/SQLSVCACCOUNT='"$NetBIOSDomainName\$SQLServerServiceAccount'""
$arguments += "/SQLSVCPASSWORD='"$SQLServerServiceAccountPassword'""
$arguments += "/SQLSYSADMINACCOUNTS='"$NetBIOSDomainName\$SQLSysAdminAccount'""
$arguments += "/AGTSVCACCOUNT='"$NetBIOSDomainName\$SQLServerAgentAccount'""
$arguments += "/IACCEPTSQLSERVERLICENSETERMS"
Start-Process "$SQLServerSetupLocation\setup.exe" -Wait -ArgumentList $arguments -RedirectStandardOutput error.txt
    
por pk. 23.02.2011 / 19:11

1 resposta

1

Acho que meu problema acabou sendo que eu não estava usando o parâmetro -WorkingDirectory do cmdlet Start-Process. O arquivo setup.exe chama todos os tipos de processos como parte da instalação e eu acho que os processos filho que ele estava chamando não estavam cientes do "WorkingDirectory" correto. O código que funciona é o seguinte.

Start-Process "$SQLServerSetupLocation\setup.exe" -Wait -WorkingDirectory $SQLServerSetupLocation -ArgumentList $arguments
    
por 26.02.2011 / 00:01