我需要在.NET中的Active Directory用户上设置与远程桌面服务相关的属性(即通过System.DirectoryServices),但我看不到这些属性是否由API公开?我知道有一个用于此目的的COM接口,IADsTSUserEx。请告诉我如何在.NET中获取这些属性:)请记住编程语言是Python。
答案 0 :(得分:0)
.NET DirectoryServices API不会直接公开AD属性:相反,Properties
类上有一个很大的DirectoryEntry
集合。如果您可以在基础AD模式中找到属性的名称,那么您可以在此集合中找到它们。
此列表应包含您感兴趣的属性:http://msdn.microsoft.com/en-us/library/ms675090.aspx
例如,msTSMaxIdleTime
属性:http://msdn.microsoft.com/en-us/library/ms678175.aspx
答案 1 :(得分:0)
其中一些属性的问题是您可以通过Active Directory用户和计算机在UI上看到它们,但您无法通过ADSI编辑器设置它们(或查看它们)。
通常,对于不能直接从DirectoryEntry
对象获得的属性,您可以使用Tim Robbinson所描述的Properties
集合
(例如directoryEntry.Properties["PropertyName"].Value
)。
但是,对于某些属性,您无法使用此方法,必须使用directoryEntry.InvokeSet("PropertyName", new object[]{ "SomeValue" });
,
e.g。适用于TerminalServicesHomeDirectory
,TerminalServicesHomeDrive
和TerminalServicesProfilePath
。
如上所述,您不会使用ADSI Editor看到这三个属性,您只能通过相应选项卡上的“普通”UI查看属性值。
如何将所有这些应用到Python我不知道,但似乎你有DirectoryEntry
类的实例,所以你应该没问题。