【问题标题】:Outlook: Retrieve distribution type groups from a AD userOutlook:从 AD 用户检索通讯组类型
【发布时间】:2020-06-30 20:05:08
【问题描述】:

在 Outlook 中,我创建了一个用户窗体,它从域中获取用户并显示他的 lastlogon、过期日期、组成员身份等。但是对于组成员身份,它只显示安全类型组,而不是所选用户的分发类型组。

我正在尝试同时获取(安全和通讯组),但不知道如何做到这一点。即使在我的大朋友谷歌的帮助下。 我猜 Objuser.Groups 是问题所在,但 .memberOf 或 .Members 似乎不起作用。
我究竟做错了什么?

代码截图:

Sub FindUser(Username As String)
Dim objGroup As Object
Dim Objuser As IADsUser

  Set WSHnet = CreateObject("WScript.Network")
  UserDomain = WSHnet.UserDomain

  Set Objuser = GetObject("WinNT://" & UserDomain & "/" & Username & ",user")  

  For Each objGroup In Objuser.Groups
  '!!at this part I only get the Security type groups, not the distribution groups!!

    'Do things with the objGroup
  Next

【问题讨论】:

    标签: vba outlook active-directory


    【解决方案1】:

    WScript.Network 与 Exchange 中的通讯组无关,因此不会有太大帮助。您需要使用 Outlook 对象模型 - 请参阅“Access Exchange User or Distribution List Information from the Address Book”。

    【讨论】:

    • 您好埃里克,感谢您的回复。也许我没有得到您的答案,但是当我使用 Active Directory 搜索同一用户并在“成员”选项卡中检查他的成员资格时,我会在他的共享和应用程序(安全类型组)中看到分发列表(分发类型组) .所以我的想法是我应该能够从 AD 中检索成员资格。如果没有,我会尝试根据您的建议来解决。但我希望了解为什么我会看到带有 AD 的组,而不是使用 VBA 时。
    • 啊,对不起,我误会了。我相信您需要使用 LDAP,但我不记得有哪些 COM 对象可用于执行此操作,或者是否可以使用 WSH。这里讨论了一种 .NET 方法:stackoverflow.com/questions/3195617/…
    • 用 LDAP 试过了,现在我得到了我想要的所有项目。虽然它解决了我的问题,但我仍然很好奇为什么我不能用 WinNT 得到它。有人知道为什么 WinNT 不给我所有的组和/或 WINNT 和 LDAP 之间有什么区别吗?
    猜你喜欢
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2017-03-24
    • 2014-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    相关资源
    最近更新 更多