鸿 网 互 联 www.68idc.cn

如何知道用户属于哪一个ActiveDirectory组

来源:互联网 作者:佚名 时间:2015-06-04 21:16
在我的登录脚本中 如何知道用户属于哪一个 Active Directory 组? 你好 在登录脚本中实现这一点非常容易 On Error Resume Next Set objADSysInfo = CreateObject( ADSystemInfo ) strUser = objADSysInfo UserName Set objUser = GetObject( LDAP:// strGrou

  在我的登录脚本中如何知道用户属于哪一个 Active Directory 组?
  
  你好在登录脚本中实现这一点非常容易
  
  On Error Resume Next
  Set objADSysInfo = CreateObject(ADSystemInfo)
  strUser = objADSysInfoUserName
  Set objUser = GetObject(LDAP:// & strUser)
  For Each strGroup in mberOf
  Set objGroup = GetObject(LDAP:// & strGroup)
  WscriptEcho objGroupCN
  Next
  
  那么这里会发生什么呢?好的我们首先使用 ADSystemInfo 对象确定登录用户的可分辨名称这个名称应该类似于
  
  CN=kenmyer OU=Managers DC=fabrikam DC=com
  
  在取得了可分辨名称之后可以使用 LDAP 提供者将用户帐户绑定到 Active DirectoryActive Directory 用户帐户有一个 memberOf 属性它是一个数组包括了用户所属的所有组由于 memberOf 是一个数组因此可以使用 For Each 循环来列出所有组
  
  在获得返回的组名后我们还要做最后一件事默认情况下组按照可分辨名称保存在 memberOf 属性中因此可以得到如下所示的信息
  
  CN=Production Leads OU=Managers DC=fabrikam DC=com
  
  可分辨名称非常适于绑定到 Active Directory但是对于回答用户属于 Production Leads 组吗?这样的问题却没有多少帮助所以我们还要再进一步在取得组的可分辨名称后将组帐户绑定到 Active Directory这样做之后便可以取得组的 CN (公用名common name)并返回类似如下的组名
  
  Production Leads
  
  这样要容易一点至少说起来是这样
  
  在这里要记住两件事情第一本脚本只能运行于 Windows Windows XP 和 Windows 这是因为 Windows NT 和 Windows 不支持 ADSystemInfo 对象第二本脚本只能返回用户作为独立成员所属于的组您问是这话什么意思?好的假定用户是 A 组的成员而 A 组碰巧是 B 组的成员本脚本无法识别出组中的组(组的嵌套)这需要稍微复杂一些的编程才能实现我们将在以后讨论这个问题
网友评论
<