我正在尝试使用 Invoke-Command 通过 Powershell 在 Win 2012 r2 服务器上远程安装 SQL Server 2012,但失败并出现此错误
"Validation for setting 'SQLSVCACCOUNT' failed. Error message: The SQL Server service account login or password is not valid. Use SQL Server Configuration Manager to update the service account."
登录名和密码正确。当我直接在服务器上执行相同的命令时,它运行正常。我不明白。
我正在使用域管理员凭据来启动我的 PSSession。
这是我的代码:
$SApwd = "MyPassword"
$ServiceAccount= "SPRINGFIELD\SQLCitrix"
$ServicePassword = "MyPassword"
$SqlCollation = "French_CI_AS"
$user = "Springfield\Administrator"
$password = ConvertTo-SecureString -AsPlainText -Force -String "MyPassword"
$credentials = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$password
$session = New-PSSession -ComputerName $ipsqlserver -Credential $credentials
Invoke-Command -Session $session -ScriptBlock {Set-Location -Path C:\sources\sql }
Invoke-Command -Session $session -ScriptBlock {.\Setup.exe /SAPWD=$using:SApwd /IACCEPTSQLSERVERLICENSETERMS /Q /UpdateEnabled="False" /FEATURES=SQLENGINE,SSMS,ADV_SSMS /INDICATEPROGRESS="True" /X86="False" /ACTION=INSTALL /INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server" /INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server" /INSTANCENAME="MSSQLSERVER" /INSTANCEID="MSSQLSERVER" /SQMREPORTING="False" /ERRORREPORTING="False" /INSTANCEDIR="C:\Program Files\Microsoft SQL Server" /AGTSVCACCOUNT=$using:ServiceAccount /AGTSVCPASSWORD=$using:ServicePassword /AGTSVCSTARTUPTYPE="Automatic" /SQLSVCSTARTUPTYPE="Automatic" /FILESTREAMLEVEL="0" /ENABLERANU="False" /SQLCOLLATION="French_CI_AS" /SQLSVCACCOUNT=$using:ServiceAccount /SQLSVCPASSWORD=$using:ServicePassword /SQLSYSADMINACCOUNTS="CASTOR\Administrator" /SECURITYMODE="SQL" /TCPENABLED="1" /NPENABLED="0" /BROWSERSVCSTARTUPTYPE="Automatic"}
这里有一个更详细的日志文件:http://pastebin.com/nNurAz0g
感谢您的帮助
答案1
您需要让目标计算机获得委派信任。在 ADUC 中,转到目标计算机的属性->委派选项卡 -> 信任此计算机委派任何服务(仅限 Kerberos).然后设置正确的 SPN 以允许服务帐户模拟目标框:
setspn -A MSSQLSvc/FQDNofYourTargetBox domain\accountname
setspn -A MSSQLSvc/FQDNofYourTargetBox:1433 domain\accountname
setspn -A MSSQLSvc/NetbiosNameofYourTargetBox domain\accountname
等待一段时间让 SPN 信息在您的林中传播,然后重试。有关 SPN 的更多信息,请访问:http://msdn.microsoft.com/en-gb/library/ms191153.aspx。