【发布时间】:2016-04-18 06:59:01
【问题描述】:
我正在尝试自动化 SQL+SSRS 服务器安装(MS SQL 2012 Express)的安装后配置——我认为它或多或少是this。然而,这是我第一次涉足 Powershell,我之前从未配置甚至使用过 MS SQL。我的服务器是 Windows 2008 R2 虚拟机,我是管理员,SQL 服务器安装在本地(不是集群)。我正在使用 Powershell v2.0 运行以下 sn-p(作为管理员):
Write-Output("- Setting service account ...")
Write-Output(" - Loading assembly ...")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement") | out-null
Write-Output(" - Loading server ...")
$mc = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer "$hostname"
Write-Output(" - Loading service ...")
#$service = $mc.Services | Where {$_.Name -eq "MSSQL`$$sqlInstanceName"}
$service = $mc.Services | Where {$_.Name -eq "ReportServer`$$sqlInstanceName"}
Write-Output(" - Changing service account credentials ...")
$service.SetServiceAccount("$hostname\sa", "$sapwd")
Write-Output(" - Commit ...")
$service.Alter()
Write-Output("- OK.")
在“更改服务帐户凭据”和“提交”之间,我的代码失败并显示以下消息:
使用“2”参数调用“SetServiceAccount”的异常: “设置服务帐号失败。”
$sapwd 是 SQL Server 安装期间提供的密码。从来没有要求我提供相应的用户名,但有人告诉我暗示有一个“SA”用户。我在本地计算机上没有该名称的 Windows 用户;我不确定(新安装的)SQL 服务器中定义了哪些用户。
我这里的目标相当于使用GUI将“服务帐号”设置为“使用内置帐号:网络服务”,代码sn -p是基于this代码。 This post 并非完全不相关,但是 (a) 它没有得到回答,并且 (b) 我不使用聚类。
许多其他人都遇到过这个问题,但似乎没有任何可靠的答案对我有用。我如何才能找到有关此错误含义的信息,以及如何解决它?
奖金
我还需要更改“Web 服务 URL”和“报表管理器 URL”;如果你有任何关于如何做到这一点的提示,你会为我节省很多时间。
【问题讨论】:
标签: sql-server powershell configuration automation