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

时间:2010-03-06 15:20:39

标签: .net python active-directory directoryservices

我需要在.NET中的Active Directory用户上设置与远程桌面服务相关的属性(即通过System.DirectoryServices),但我看不到这些属性是否由API公开?我知道有一个用于此目的的COM接口,IADsTSUserEx。请告诉我如何在.NET中获取这些属性:)请记住编程语言是Python。

2 个答案:

答案 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。适用于TerminalServicesHomeDirectoryTerminalServicesHomeDriveTerminalServicesProfilePath

如上所述,您不会使用ADSI Editor看到这三个属性,您只能通过相应选项卡上的“普通”UI查看属性值。

如何将所有这些应用到Python我不知道,但似乎你有DirectoryEntry类的实例,所以你应该没问题。