我正在尝试使用以下代码段读取所选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.DirectoryServices.dll中发生了... System.Runtime.InteropServices.COMException' System.Runtime.InteropServices.COMException(0x80020006):未知名称。 (来自HRESULT的异常:0x80020006(DISP_E_UNKNOWNNAME))
我碰到了..
我知道参数TerminalServicesProfilePath
在AD中的"userParameter"
哈希值。
调用它应该可以获得可读性。
我做错了什么?
附注:AD位于2003级别域。