我正在尝试从 Exchange 中查找一些 ActiveSync 属性。我找到了一篇很好的文章,其中显示了用于查找此信息的 PowerShell cmdlet。但我试图找到这些信息的实际存储位置。我在ADSI编辑中查看了我的用户对象,以查看是否有任何属性是这些值,但情况似乎并非如此。 如何使用 C# 找到这些信息?
2 回答
要获取特定 ActiveDirectory 对象(即用户)的 ActiveSync 属性,您可以使用 CASMailbox类。
它有一个采用 ADObject 的构造函数,然后为您提供几个属性,例如HasActiveSyncDevicePartnership
- 您甚至可以更改这些属性(前提是您具有所需的权限)。
编辑 - 根据评论:
CASMailbox
课堂上有你所要求的一切。
例如ActiveSyncMailboxPolicy
,ADObjectId
可以依次查询多个属性...
另一个示例ActiveSyncAllowedDeviceIDs
,MultiValuedProperty
您可以查询 DeviceID 等。
这种访问属性的方式可能不太好,但它肯定会为您提供所有信息......如果您想要一些相当不错的源代码(在这种情况下适用于 PS),请参阅http://www.java2s.com/Open-来源/CSharp/Web/dotpanel/dotPanel/Providers/HostedSolution/Exchange2007.cs.htm
Get-CASMailbox将为您提供HasActiveSyncDevicePartnerShip等基本信息。这些属性存储在活动目录中,您可以在个人帐户下使用 adsiedit 查看它们。
如果您需要更多属性,例如DeviceFriendlyName、LastSuccessSync、DeviceImei,则必须使用 PS Cmdlet Get-MobileDeviceStatistics 从邮箱本身检索它们。
有几种方法可以在 C# 代码中使用 PS CmdLets,作为交换,您可能需要使用 PS Remoting:https ://stackoverflow.com/a/9627716/1984242