如何在不通过整个地址列表的情况下获取Outlook Rooms

时间:2017-09-14 14:46:19

标签: c# powershell outlook

我在Powershell中有以下内容:

make_reserved

以及C#中的以下内容:

#include <vector>
#include <iostream>
#include <utility>
#include <functional>

template <class T>
std::vector<T> make_reserved(const std::size_t n)
{
  std::vector<T> v;
  v.reserve(n);
  return v;
}

int main()
{
  using Q = std::priority_queue<int, std::vector<int>>;
  auto q = Q(std::less<int>(), make_reserved<int>(100));
  std::cout << q.size() << std::endl;
}

最后一个是:

[System.Collections.ArrayList] $ConfRooms = $Outlook.Session.GetGlobalAddressList().AddressEntries | ?{$_.Name -match "^Conf Room"} | %{$_.Name}

我遇到的问题是它遍历整个地址簿以找到房间。有什么办法可以获得房间清单吗?当直接通过Outlook时,我点击新项目,选择会议,选择计划助理,然后选择“添加房间”,它只给我地址列表中的房间,所以必须有一个标志某处定义地址条目为一个房间(因为它还包括作为财产的能力)。这个弹出窗口是即时的,我希望在我写的程序中实现相同的目标。

1 个答案:

答案 0 :(得分:0)

对于一个房间,PR_DISPLAY_TYPE_EX MAPI属性为DT_ROOM(您可以在OutlookSpy中看到属性 - 点击IAddrBook按钮并向下钻取到任何房间。)

另请注意,GAL会曝光所有客房&#34;容器(您应该能够通过Namespace.AddressLists集合访问它)。请注意,可以有多个&#34;所有房间&#34;容器,如果您有多个Exchange帐户并且容器名称已本地化。如果您循环遍历所有地址簿列表,那么&#34;所有房间&#34;的PR_CONTAINER_FLAGS MAPI属性。 list将包含0x00000200位。

如果使用Redemption是一个选项,则会公开RDOExchangeAccountAllRoomsRDOAddressBookAllRooms属性(返回RDOAddressList对象)。