我想使用 PowerShell 将现有本地用户作为系统管理员添加到 SQL Server。经过一些研究,到目前为止我有以下脚本:
$Username = "JohnDoe"
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
$SqlServer = New-Object ('Microsoft.SqlServer.Management.Smo.Server') "localhost"
$SqlUser = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Login -ArgumentList $SqlServer, "$Username"
$SqlUser.LoginType = 'WindowsUser'
$SqlUser.Create()
$SqlUser.AddToRole('sysadmin')
用户存在于本地主机上,它是用户和管理员组的成员。我收到以下错误消息:
使用“0”参数调用“创建”的异常:“登录 'JohnDoe' 创建失败。”在 C:\Users\LocalAdmin\Desktop\try.ps1:7 char:16 + $SqlUser.Create <<< < () + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException
使用“1”参数调用“AddToRole”的异常:“登录 'JohnDoe' 添加到角色失败。”在 C:\Users\LocalAdmin\Desktop\try.ps1:8 char:23 + $SqlUser.AddToRole < <<< ('sysadmin') + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException
Windows Server 2008 R2 和 SQL Server 2008 R2 我做错了什么或者我错过了什么?
编辑:根据 CB 和 mortb 的建议更新了脚本,但仍然无法正常工作。我已将上面的脚本更新为当前状态,以及我现在得到的错误消息。