根据这个问题,我使用以下 SP 来查看在我的数据库服务器中添加为“登录名”的 AD 组中的成员。
EXEC master.dbo.xp_logininfo 'MyDomain\ADGROUPNAME' , 'members'
问题是,结果数据最多只能提供 30 个字符的用户帐户名。这是因为在 Active Directory 中,有两组帐户名,一组是 pre-windows-2000,另一组是 post-windows 2000。pre 的被截断了,这就是我得到的。
例如,如果AD 组中的用户帐户是:MyDomain\ShortName,我得到MyDomain\ShortName。但是如果帐户名称是:MyDomain\HasOverThirtyCharacters,那么我得到 MyDomain\HasOverThirtyCharact
我如何克服这个限制?我可以用什么代替 xp_logininfo?
我完成这项工作的方式是:
您可以将代码包装在一个存储过程中
@ntLogin
作为参数,这就是我在这里所做的,包括错误处理的东西,这也很重要。另一件事是为 windows powershell 安装活动目录模块
还可以从 sql server 内部进行测试,您可以运行以下脚本:
这将显示您的凭据
如果您以正在测试的登录身份执行,您可以看到它的样子。