2010-03-06 65 views
0

我需要設置在.NET與遠程桌面服務上的Active Directory用戶屬性(即通過的System.DirectoryServices),但我不能看到這些屬性通過API暴露?我知道有一個COM接口用於此目的,IADsTSUserEx。請告訴我如何在.NET中獲得這些屬性:)請記住,編程語言是Python。如何在.NET中更改AD用戶的遠程桌面服務屬性?

回答

0

.NET DirectoryServices API不直接公開AD屬性:相反,DirectoryEntry類中有一個大的Properties集合。如果您可以找到底層AD架構中的屬性名稱,那麼您可以在此集合中找到它們。

此列表應該具有的屬性你感興趣的:http://msdn.microsoft.com/en-us/library/ms675090.aspx

例如,msTSMaxIdleTime屬性:http://msdn.microsoft.com/en-us/library/ms678175.aspx

+0

我看不出這個工程。在Active Directory用戶和計算機控制檯中,我將特定用戶的遠程桌面服務用戶配置文件路徑(通過「屬性」 - >「遠程桌面服務配置文件」)設置爲特定路徑。我假設相應的DirectoryEntry屬性是「msTSProfilePath」?但是,當我獲得與該用戶相對應的DirectoryEntry時,沒有爲msTSProfilePath屬性設置值。 我已經在http://pastebin.com/gJJM3PEH上發佈了相關的Python代碼。結果輸出是一個空列表。 – aknuds1 2010-03-08 20:37:17

+0

我現在沒有權限設置它(我在工作),但讓我看看我以後可以檢查。 您可以修改Python代碼以轉儲出所有屬性的名稱嗎? – 2010-03-09 11:03:05

0

與這些性質的問題是,你可以看到他們在通過UI Active Directory用戶和計算機,但不能通過ADSI編輯器設置(或查看它們)。

通常,對於不是直接可從DirectoryEntry對象屬性,則可以使用其Properties集合作爲由Tim Robbinson (例如directoryEntry.Properties["PropertyName"].Value)中所述。

對於某些屬性,但是,你不能使用這種方式,必須使用directoryEntry.InvokeSet("PropertyName", new object[]{ "SomeValue" });

例如對於TerminalServicesHomeDirectory,TerminalServicesHomeDriveTerminalServicesProfilePath

正如上面所說的,你不會看到使用ADSI編輯器這三個屬性,你只能通過相應的選項卡上的「正常」的用戶界面看到的屬性值。

如何將所有這些應用到Python我不知道,但似乎你已經有DirectoryEntry類的實例,所以你應該沒問題。

相關問題