如何在.NET中更改AD用户的远程桌面服务属性?

0 投票
2 回答
2439 浏览
提问于 2025-04-15 20:05

我需要在.NET中为Active Directory用户设置与远程桌面服务相关的属性(也就是通过System.DirectoryServices),但是我发现这些属性在API中似乎没有暴露出来?我知道有一个COM接口可以实现这个功能,叫做IADsTSUserEx。请告诉我如何在.NET中访问这些属性 :) 请注意,编程语言是Python。

2 个回答

0

有些属性在“活动目录用户和计算机”这个界面上可以看到,但在ADSI编辑器里却看不到,也不能设置。

通常情况下,对于那些在DirectoryEntry对象中无法直接获取的属性,你可以通过它的Properties集合来访问,就像Tim Robbinson所说的那样(比如directoryEntry.Properties["PropertyName"].Value)。

不过,对于某些属性,你不能用这种方法,而是需要使用directoryEntry.InvokeSet("PropertyName", new object[]{ "SomeValue" });来设置。

例如,TerminalServicesHomeDirectoryTerminalServicesHomeDriveTerminalServicesProfilePath这几个属性就是这样。

正如上面所说的,你在ADSI编辑器里看不到这三个属性,只能通过对应的标签在“正常”界面上查看它们的值。

至于如何把这些应用到Python上,我就不太清楚了,但看起来你已经有了DirectoryEntry类的实例,所以应该没问题。

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

撰写回答