【问题标题】:List all mailboxes a user has loaded in Outlook列出用户在 Outlook 中加载的所有邮箱
【发布时间】:2016-08-10 08:56:03
【问题描述】:

我正在尝试列出用户的共享邮箱。我们有一个混合环境,因此有些是通过 Exchange 自动映射的,有些则不是(安全组权限)。我想在登录过程中添加一个 Powershell 脚本来记录用户在 Outlook 中加载的所有邮箱。我想将此列表保存到文本文件或 csv 中。

我可以通过$outlook.getnamespace("mapi") 获取名称。然而,一些名称已经改变,用户的 Outlook 没有显示这些变化,所以这个名字在 Exchange 或 AD 上没有任何意义,但不知何故仍然神奇地起作用。

我需要更具体的东西,samaccountname 或 smtp 地址.. 类似的东西。

编辑

我继续在这方面工作,在MFCMAPI 的帮助下,我能够确定我需要PR_USER_NAME 属性。我需要使用 vanilla Powershell 来执行此操作才能在客户端系统上运行(我有数千个,所以安装 EMS 不是一种选择)。

【问题讨论】:

    标签: powershell outlook-2010 mapi


    【解决方案1】:

    使用Namespace.Stores 集合。 MFCMAPI 显示您在 PS 中无法访问的 MAPI 对象。要查看实时 Outlook 对象模型对象,请使用 OutlookSpy(它同时显示 MAPI 和 OOM 对象)。

    更新:如果使用Redemption 是一个选项,您可以使用RDOExchangeMailbox.Owner 属性:

      skPstAnsi = 1
      skPstUnicode = 2
      skPrimaryExchangeMailbox = 3
      skDelegateExchangeMailbox = 4
      skPublicFolders = 5
      set Session = CreateObject("Redemption.RDOSession")
      Session.MAPIOBJECT = Application.Session.MAPIOBJECT
      for each Store in Session.Stores
        'for i = 1 to Session.Stores.Count
        'set Store = Session.Stores(i)
        Debug.Print Store.Name
        If (Store.StoreKind = skPrimaryExchangeMailbox) or (Store.StoreKind = skDelegateExchangeMailbox) Then
          Debug.Print Store.Owner.SmtpAddress
        End If
        Debug.Print " ------ "
      next
    

    【讨论】:

    • 感谢您让我知道我无法获得该信息,感谢您的帮助。问题是商店似乎没有向我展示我需要的东西。我在那里看到的唯一东西是“DisplayName”..它是添加共享框时使用的显示名称,而不是现在的显示名称。因此,在许多情况下,显示名称无法在交换或活动目录中解析。
    • 如果存储没有缓存,您可以使用 Store.PorpertyAccessor.GetProperty 读取 PR_MAILBOX_OWNER_ENTRYID 属性,将其转换为十六进制并使用它来调用 Namespace.GetAddressEntryFromId,然后读取 AddressEntry.GetExchangeuser()。 PrimarySmtpAddress 属性。也可以读取store entry id,解析提取EX类型地址,从id构造一个GAL entry id,然后调用Namespace.GetAddressEntryFromId。如果使用 Redemption 是一个选项,您可以使用 RDOExchangeMailbox.Owner 属性(请参阅上面的更新答案)。
    • 不幸的是,赎回不是一种选择。所以我沿着商店路走……当商店没有 getproperty 方法时被挡住了……我在这里遗漏了一些简单的东西吗?
    • 你需要 Store.PropertyAccessor.GetProperty。
    猜你喜欢
    • 2018-02-01
    • 2014-03-21
    • 1970-01-01
    • 2013-05-21
    • 2016-05-02
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多