我需要在 .NET 中设置与 Active Directory 用户的远程桌面服务相关的属性(即通过 System.DirectoryServices),但我看不到这些属性是由 API 公开的吗?我知道有一个用于此目的的 COM 接口,IADsTSUserEx。请告诉我如何在 .NET 中获得这些属性 :) 请记住,编程语言是 Python。
2 回答
其中一些属性的问题在于,您可以通过 Active Directory 用户和计算机在 UI 上看到它们,但不能通过 ADSI 编辑器设置(或查看)它们。
通常,对于不能直接从DirectoryEntry
对象获得的属性,您可以使用Properties
Tim Robbinson 所描述的它的集合(例如directoryEntry.Properties["PropertyName"].Value
)。
但是,对于某些属性,您不能使用这种方法,而必须使用directoryEntry.InvokeSet("PropertyName", new object[]{ "SomeValue" });
,
例如对于TerminalServicesHomeDirectory
和。TerminalServicesHomeDrive
TerminalServicesProfilePath
如上所述,您不会使用 ADSI Editor 看到这三个属性,您只能通过相应选项卡上的“普通”UI 看到属性值。
我不知道如何将所有这些应用到 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