添加第一个域用户的 PowerShell 脚本 [权限问题]
Posted
技术标签:
【中文标题】添加第一个域用户的 PowerShell 脚本 [权限问题]【英文标题】:PowerShell script to add first domain user [permissions issue] 【发布时间】:2017-11-14 09:47:15 【问题描述】:我在 Azure 中有一个 SQL Server 2014 VM,它是从 Azure 商店创建的。一旦新 VM 可用,我想添加一个 PowerShell CustomExtension 来设置我的数据库环境。我有权限问题。如果我以本地管理员身份运行下面的 PowerShell 代码,我会收到一条消息,指出找不到 Windows NT 用户或组,因为该本地管理员没有域管理员权限。如果我以域管理员身份运行以下 PowerShell,则该域管理员无权登录 SQL Server,这实际上是我想要完成的任务。
cls
import-module sqlps –DisableNameChecking -Verbose:$false | Out-Null
$sql = "USE [MASTER]
GO
CREATE LOGIN [ABC.PROD\My Group Name] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO"
Invoke-Sqlcmd -Query $sql
如果上面以域管理员身份运行,我会收到此错误
Invoke-Sqlcmd : 用户 'ABC\myadminusername' 登录失败。
如果上面以本地管理员身份运行,我会收到此错误
Invoke-Sqlcmd : Windows NT 用户或组 'ABC.PROD\My Group Name' 不是 成立。再次检查名称。
有没有使用一些方便的 PowerShell 轻松摆脱这个 22 条问题的方法?如果我手动执行此操作,我只需以本地管理员身份登录 SQL Server,添加用户、列出位置并在询问时提供域管理员凭据。但是我看不到任何方法可以为这个 SQL 命令提供这些域管理员凭据。
谢谢你, 大卫
【问题讨论】:
【参考方案1】:好的,我在写这个问题时实际上发现了这个问题。鉴于问题已经写好了,我想我会继续发布并给出答案,以防这对其他人有所帮助。
问题似乎是我不应该提供完全限定的域名。以下代码在以本地管理员身份运行时有效。我刚刚将“ABC.PROD\My Group Name”更改为“ABC\My Group Name”,并且成功了。
cls
import-module sqlps –DisableNameChecking -Verbose:$false | Out-Null
$sql = "USE [MASTER]
GO
CREATE LOGIN [ABC\My Group Name] FROM WINDOWS WITH DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english]
GO"
Invoke-Sqlcmd -Query $sql
【讨论】:
以上是关于添加第一个域用户的 PowerShell 脚本 [权限问题]的主要内容,如果未能解决你的问题,请参考以下文章
PowerShell 批量添加域用户(Windows 2012 R2)
powershell powershell脚本将用户添加到指定SharePoint网站中的指定组。