如何在.NET中更改AD用户的远程桌面服务属性?
我需要在.NET中为Active Directory用户设置与远程桌面服务相关的属性(也就是通过System.DirectoryServices),但是我发现这些属性在API中似乎没有暴露出来?我知道有一个COM接口可以实现这个功能,叫做IADsTSUserEx。请告诉我如何在.NET中访问这些属性 :) 请注意,编程语言是Python。
2 个回答
有些属性在“活动目录用户和计算机”这个界面上可以看到,但在ADSI编辑器里却看不到,也不能设置。
通常情况下,对于那些在DirectoryEntry
对象中无法直接获取的属性,你可以通过它的Properties
集合来访问,就像Tim Robbinson所说的那样(比如directoryEntry.Properties["PropertyName"].Value
)。
不过,对于某些属性,你不能用这种方法,而是需要使用directoryEntry.InvokeSet("PropertyName", new object[]{ "SomeValue" });
来设置。
例如,TerminalServicesHomeDirectory
、TerminalServicesHomeDrive
和TerminalServicesProfilePath
这几个属性就是这样。
正如上面所说的,你在ADSI编辑器里看不到这三个属性,只能通过对应的标签在“正常”界面上查看它们的值。
至于如何把这些应用到Python上,我就不太清楚了,但看起来你已经有了DirectoryEntry
类的实例,所以应该没问题。
.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