AD属性对照表
最近在做AD编程方面的东西,参考了网上流传的ADHelper,貌似AD的属性赋值的方法都是有误的。
原方法类似下面这样:
2 {
3 if(propertyValue != string.Empty || propertyValue != "" || propertyValue != null)
4 {
5 if(de.Properties.Contains(propertyName))
6 {
7 de.Properties[propertyName][0] = propertyValue;
8 }
9 else
10 {
11 de.Properties[propertyName].Add(propertyValue);
12 }
13 }
14 }
要将属性值赋值为空值,是用移除的方法来实现的,下面的方法是经过更正的:
2 {
3 if (entry.Properties.Contains(propertyName))
4 {
5 if (string.IsNullOrEmpty(propertyValue))
6 {
7 object o = entry.Properties[propertyName].Value;
8 entry.Properties[propertyName].Remove(o);
9 }
10 else
11 {
12 entry.Properties[propertyName][0] = propertyValue;
13 }
14 }
15 else
16 {
17 if (!string.IsNullOrEmpty(propertyValue))
18 {
19 entry.Properties[propertyName].Add(propertyValue);
20 }
21 }
22 }
姓 Sn
名 Givename
英文缩写 Initials
显示名称 displayName
描述 Description
办公室 physicalDeliveryOfficeName
电话号码 telephoneNumber
电话号码:其它 otherTelephone 多个以英文分号分隔
电子邮件 Mail
网页 wWWHomePage
网页:其它 url 多个以英文分号分隔
国家/地区 C 如:中国CN,英国GB
省/自治区 St
市/县 L
街道 streetAddress
邮政信箱 postOfficeBox
邮政编码 postalCode 
用户登录名 userPrincipalName 形如:pccai1983@hotmail.com
用户登录名(以前版本) sAMAccountName 形如:S1
登录时间 logonHours
登录到 userWorkstations 多个以英文逗号分隔
用户帐户控制 userAccountControl (启用:512,禁用:514, 密码永不过期:66048)
帐户过期 accountExpires 
配置文件路径 profilePath
登录脚本 scriptPath
主文件夹:本地路径 homeDirectory
连接 homeDrive
到 homeDirectory 
家庭电话 homePhone (若是其它,在前面加other。)
寻呼机 Pager 如:otherhomePhone。
移动电话 mobile 若多个以英文分号分隔。
传真 FacsimileTelephoneNumber
IP电话 ipPhone
注释 Info 
职务 Title
部门 Department
公司 Company 
隶属于 memberOf 用户组的DN不需使用引号, 多个用分号分隔
“拨入”标签 远程访问权限(拨入或VPN) msNPAllowDialin
允许访问 值:TRUE
拒绝访问 值:FALSE
回拨选项 msRADIUSServiceType
由呼叫方设置或回拨到 值:4
总是回拨到 msRADIUSCallbackNumber 
名:GivenName
属性
|
显示名称 |
属性名称 |
|
First Name |
givenName |
|
Last Name |
sn |
|
Initials |
initials |
|
Description |
description |
|
Office |
physicalDeliveryOfficeName |
|
Telephone Number |
telephoneNumber |
|
Telephone: Other |
otherTelephone |
|
|
|
|
Web Page |
wwwHomePage |
|
Web Page: Other |
url |
帐号属性:
|
显示名称 |
属性名称 |
|
UserLogon Name |
userPrincipalName |
|
User logon name (pre-Windows 2000) |
sAMAccountname |
|
Logon Hours |
logonHours |
|
Log On To |
logonWorkstation |
|
Account is locked out |
userAccountControl |
|
User must change password at next logon |
pwdLastSet |
|
User cannot change password |
N/A |
|
Other Account Options |
userAccountControl |
|
Account Expires |
accountExpires |
地址属性
|
显示名称 |
属性名称 |
|
Street |
streetAddress |
|
P.O.Box |
postOfficeBox |
|
City |
l |
|
State/Province |
st |
|
Zip/Postal Code |
postalCode |
|
Country/Region |
c, co, and countryCode |
成员属性
|
显示名称 |
属性名称 |
|
Member of |
memberOf |
|
Set Primary Group |
primaryGroupID |
组织属性
|
显示名称 |
属性名称 |
|
Title |
title |
|
Department |
department |
|
Company |
company |
|
Manager:Name |
manager |
|
Direct Reports |
directReports |
外型属性
|
显示名称 |
属性名称 |
|
Profile Path |
profilePath |
|
Logon Script |
scriptPath |
|
Home Folder: Local Path |
homeDirectory |
|
Home Folder: Connect |
homeDrive |
|
Home Folder: To |
homeDirectory |
电话相关属性
|
显示名称 |
属性名称 |
|
Home |
telephoneNumber |
|
Home: Other |
otherTelephone |
|
Pager |
pager |
|
Pager: Other |
pagerOther |
|
Mobile |
mobile |
|
Mobile: Other |
otherMobile |
|
Fax |
facsimileTelephoneNumber |
|
Fax: Other |
otherFacsimileTelephoneNumber |
|
IP phone |
ipPhone |
|
IP phone: Other |
otherIpPhone |
|
Notes |
info |
C#操作AD例子:
GetUserEntry
public static DirectoryEntry GetUserEntryByAccount(DirectoryEntry entry, string account)
{
DirectorySearcher searcher = new DirectorySearcher(entry);
searcher.Filter = "(&(objectClass=user)(SAMAccountName=" + account + "))";
SearchResult result = searcher.FindOne();
entry.Close();
if (result != null)
{
return result.GetDirectoryEntry();
}
return null;
}
Set Property
public static void SetProperty(DirectoryEntry entry, string propertyName, string propertyValue)
{
if (entry.Properties.Contains(propertyName))
{
if (string.IsNullOrEmpty(propertyValue))
{
object o = entry.Properties[propertyName].Value;
entry.Properties[propertyName].Remove(o);
}
else
{
entry.Properties[propertyName][0] = propertyValue;
}
}
else
{
if (string.IsNullOrEmpty(propertyValue))
{
return;
}
entry.Properties[propertyName].Add(propertyValue);
}
}
Get Property
public static string GetProperty(DirectoryEntry entry, string propertyName)
{
if (entry.Properties.Contains(propertyName))
{
return entry.Properties[propertyName].Value.ToString();
}
else
{
return string.Empty;
}
}

浙公网安备 33010602011771号