转:读AD里特殊的属性in C#
AD里的一些属性:"accountExpires", "pwdLastSet" 等,在ADSIEDIT.msc中查看类型为LargerInteger,但不能通过DirectoryEntry属性直接读出,读他人一篇blog得到解决方法。添加com引用using ActiveDs;使用ActiveDs里的类型,强制转化属性的value为IADsLargeInteger类型,在调用GetLongValue方法转为long型,下面代码拷贝自引用blog。
public class AdUser : AdItem
internal long GetLongValue(IADsLargeInteger value)
{
// 将 IADsLargeInteger 内容转换为 long 之前必须小心溢出
// http://www.rlmueller.net/Integer8Discussion.htm
return (long)(((ulong)value.HighPart << 32) + (uint)value.LowPart);
}
用户是否可以远程登录属性的读取方法:
引用名称空间:using TSUSEREXLib;
先将DirectoryEntry 变成基本的adsi类型,然后再定义为IADsTSUserEx类型,在调用里面的方法。
object objAD = userDEntry.NativeObject ;
int k = ((IADsTSUserEx)objAD).AllowLogon;
//Value that specifies whether to allow remote observation or remote control of the user's
//Terminal Services session. Values include: "Disable" (0), "EnableInputNotify" (1),
//"EnableInputNoNotify" (2), "EnableNoInputNotify" (3), and "EnableNoInputNoNotify" (4).
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](https://www.cnblogs.com/Images/dot.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
用户是否可以远程登录属性的读取方法:
引用名称空间:using TSUSEREXLib;
先将DirectoryEntry 变成基本的adsi类型,然后再定义为IADsTSUserEx类型,在调用里面的方法。
object objAD = userDEntry.NativeObject ;
int k = ((IADsTSUserEx)objAD).AllowLogon;
//Value that specifies whether to allow remote observation or remote control of the user's
//Terminal Services session. Values include: "Disable" (0), "EnableInputNotify" (1),
//"EnableInputNoNotify" (2), "EnableNoInputNotify" (3), and "EnableNoInputNoNotify" (4).