我正在尝试使用以下代码片段读取选定 AD 用户的终端服务配置文件路径。
...
using System.DirectoryServices;
using System.DirectoryServices.ActiveDirectory;
...
try
{
Debug.WriteLine("Looking for: " + DisplayName);
DirectoryEntry entry = new DirectoryEntry(strLDAP, strUserName, strPassword);
DirectorySearcher Searcher = new DirectorySearcher(entry);
Searcher.Filter = "(displayName="+ DisplayName +")";
SearchResult result = Searcher.FindOne();
DirectoryEntry found = result.GetDirectoryEntry();
// tell if we found the right user
Debug.WriteLine(found.Properties["mail"][0].ToString());
// tell what the current terminal services profile path is
Debug.WriteLine(found.InvokeGet("TerminalServicesProfilePath").ToString());
}
catch (DirectoryServicesComException e)
{
Debug.WriteLine(e.Message.ToString());
}
可悲的是,当我执行以下操作时出现以下错误InvokeGet
:
... System.Runtime.InteropServices.COMException'发生在 System.DirectoryServices.dll System.Runtime.InteropServices.COMException (0x80020006):未知名称。(来自 HRESULT 的异常:0x80020006 (DISP_E_UNKNOWNNAME))
我在这里碰到了..我知道参数TerminalServicesProfilePath
在"userParameter"
哈希中的 AD 中。调用它应该得到一些可读的东西。
我究竟做错了什么?
旁注:AD 驻留在 2003 级域上。