2-3-3 活动目录(Active Directory)域故障解决实例
 
       这部分内容将以实例的形式,介绍活动目录( Active Directory )的域故障排除,基本上遵循由易到难,由简到繁的顺序来讲解讨论。
 
Q1 、客户机无法加入到域?
 
一、权限问题。
要想把一台计算机加入到域,必须得以这台计算机上的本地管理员(默认为 administrator )身份登录,保证对这台计算机有管理控制权限。普通用户登录进来,更改按钮为灰色不可用。并按照提示输入一个域用户帐号或域管理员帐号,保证能在域内为这台计算机创建一个计算机帐号。
二、不是说 2000/03 域中,默认一个普通的域用户( Authenticated Users )即可加 10 台计算机到域。 吗?这时如何在这台计算机上登录到域呀!
显然这位网管误解了这名话的意思,此时计算机尚未加入到域,当然无法登录到域。也有人有办法,在本地上建了一个与域用户同名同口令的用户,结果可想而知。这句话的意思是普通的域用户就有能力在域中创建 10 个新的计算机帐号,但你想把一台计算机加入到域,首先你得对这台计算机的管理权限才行。再有就是当你加第 11 台新计算机帐号时,会有出错提示,此时可在组策略中,将帐号复位,或干脆删了再新建一个域用户帐号,如 joindomain 。注意:域管理员不受 10 台的限制。
三、用同一个普通域帐户加计算机到域,有时没问题,有时却出现 拒绝访问 提示。
这个问题的产生是由于 AD 已有同名计算机帐户,这通常是由于非正常脱离域,计算机帐户没有被自动禁用或手动删除,而普通域帐户无权覆盖而产生的。解决办法: 1 、手动在 AD 中删除该计算机帐户; 2 、改用管理员帐户将计算机加入到域; 3 、在最初预建帐户时就指明可加入域的用户。
四、域 xxx 不是 AD 域,或用于域的 AD 域控制器无法联系上。
       2000/03 域中, 2000 及以上客户机主要靠 DNS 来查找域控制器,获得 DC IP 地址,然后开始进行网络身份验证。 DNS 不可用时,也可以利用浏览服务,但会比较慢。 2000 以前老版本计算机,不能利用 DNS 来定位 DC 只能利用浏览服务、 WINS lmhosts 文件来定位 DC 。所以加入域时,为了能找到 DC 应首先将客户机 TCP/IP 配置中所配的 DNS 服务器,指向 DC 所用的 DNS 服务器
加入域时,如果输入的域名为 FQDN 格式,形如 mcse.com ,必须利用 DNS 中的 SRV 记录来找到 DC ,如果客户机的 DNS 指的不对,就无法加入到域,出错提示为 xxx 不是 AD 域,或用于域的 AD 域控制器无法联系上。 ”2000 及以上版本的计算机跨子网(路由)加入域时,也就是说,加入域的计算机是 2000 及以上,且与 DC 不在同一子网时,应该用此方法。
       加入域时,如果输入的域名为 NetBIOS 格式,如 mcse ,也可以利用浏览服务(广播方式)直接找到 DC ,但浏览服务不是一个完善的服务,经常会不好使。而且这样虽然也可以把计算机加入到域,但在加入域和以后登录时,需要等待较长的时间,所以不推荐。再者,由于客户机的 DNS 指的不对,则它无法利用 2000DNS 的动态更新动能,也就是说无法在 DNS 区域中自动生成关于这台计算机的 A 记录和 PTR 记录。那么同一域另一子网的 2000 及以上计算机就无法利用 DNS 找到它,这本应该是可以的。
       若客户机的 DNS 配置没问题,接下来可使用 nslookup 命令确认一下客户机能否通过 DNS 查找到 DC (具体见前)。能找到的话,再 ping 一下 DC 看是否通。
 
Q2 、用户无法登录到域?
 
一、用户名、口令、域
       确保输入正确的用户名和口令,注意用户名不区分大小写,口令是区分大小写的。看一下欲登录的域是否还存在(比如子域被非正常删除了,域中唯一的 DC 未联机)。
二、 DNS
       客户机所配的 DNS 是否指向 DC 所用的 DNS 服务器,讨论同前。
三、计算机帐号
       基于安全性的考虑,管理员会将暂时不用的计算机帐号禁用(如财务主管渡假去了),出错提示为 无法与域连接 …… ,域控制器不可用 …… ,找不到计算机帐户 ……” ,而不是直接提示 计算机帐号已被禁用 。可到 AD 用户和计算机中,将计算机帐号启用即可。
       对于 Windows 2000/XP/03 ,默认计算机帐户密码的更换周期为 30 天。如果由于某种原因该计算机帐户的密码与 LSA 机密不同步,登录时就会出现出错提示: 计算机帐户丢失 ……” 此工作站和主域间的信任关系失败 。解决办法:重设计算机帐户,或将该计算机重新加入到域。
四、默认普通域用户无权在 DC 上登录
       见下一小节的 Q1
五、跨域登录中的问题
2000 及以上计算机上登录到域的过程是这样的:域成员计算机根据本机 DNS 配置去找 DNS 服务器, DNS 根据 SRV 记录告诉它 DC 是谁,客户机联系 DC ,验证后登录。
  如果是在林中跨域登录,是首先查询 DNS 服务器,问林的 GC 是谁。所以要保证林内有可用的 GC 。如果是要登录到其它有信任关系的域(不一定是本林的),要保证 DNS 能找到对方的域。
 
Q3 、如何解决本地或域管理员密码丢失?
 
  本地管理员密码丢失,可通过删除 sam 文件( 2000SP3 以前)或通过 NTpassword 软件来解决。但要解决域管理员密码丢失,它们就无能为力了 , 这时就需要用到 凤凰万能启动盘 中的 ERD Commander 2002 了,接下来我们将详细讨论使用此盘解决管理员密码丢失问题。
1 、上网搜索 凤凰启动盘 凤凰万能启动盘 ,大约 178M
2 、下载后解压缩,将其内容刻录成光盘;
3 、用此光盘启动计算机,显示 XP 安装界面, Start ERD Commander 2002 环境;
4 、出现选择菜单,选择第一项: ERD Commander 2002
5 、出现类似 XP 的启动界面
6 、进入选择系统安装的路径,一般会自动测出操作系统、版本及是否域控制器;
7 、出现类似的 XP 桌面:选择 Start/Administrative Tools/Locksmith
8 、进入 ERD Commander 2002 locksmith 向导界面,下一步;
9 、选择 Administrator ,重设其密码;(此时切不可手动重新启动计算机,否则此修改将无效)
10 、选择 Start/Logoff ,点 OK
11 、稍候片刻,点 reboot 后重新启动计算机
凤凰启动盘中的 ERD Commander 2002 功能强大,不仅可破解本地管理员密码,包括 NT/2000/XP/03 的各个版本。还可以破解 NT/2000/03 域管理员密码,均已实验证明。
由于可自动识别操作系统和版本,及是否 DC ,所以用户在操作时,重设密码的方法都是一样的。对于 03 ,重设密码时要注意符合密码策略中要求的符合复杂性要求,且密码最小长度为 7 ,否则重设的密码会无效。
 
 
Q4 、无法使用域内的共享打印机?
 
       现象:计算机重启或注销,再登录进来,无法使用以前安装的域内的共享网络打印机,
为用户重新安装打印机,当时可以打印,但不久问题又会出现。用户反映说有时能打印,有时就是不能打印。
       其原因在于用户没有登录到域(很多用户即使计算机加入到了域,也经常习惯性地选择登录到本地机),没有域用户身份,当然无权访问域内的资源。而且关键是 Windows 系统在这里有个小毛病,它并不象你访问共享文件夹那样,由于没有身份而提示你输入用户名和密码来进行验证,而是直接提示你 拒绝访问,无法连接 当前打印机安装有问题 “RPC 服务不可用 等等(在不同的操作系统或应用程序中提示会所不同)。
       解决办法有 3 种,最好还是用方法 1 。:
1 、要求用户将其域用户帐号加入到本地管理员组,以后每次都以域用户帐号登录。
说明:这本身就是微软推荐的一种办法。因为如果不这样,普通用户以本地管理员身份登录时,控制本机没问题,但访问域资源时需要输入域用户名和口令;而用户若以域用户身份登录,又没有本机管理特权。比如说:无法关机,无法修改网络等配置,无法安装软件、驱动等。这样做了以后,用户以域用户身份登录,同时他又是本地管理员。
2 、在打印服务器上启用 Guest 用户,保证 everyone 有打印权限。但这样做不安全,所以不推荐。
3 、在客户机上每次要使用打印机前,在开始 运行: \\PrintServer ,这时会提示你输入用户名和密码。通过验证后,再去使用打印机。很显然这样方法比较麻烦。
 
Q5 、无法访问域内的共享资源?
 
       上例中我们提到过客户机如果加入到了域,但用户选择登录到本地机。当访问域内共享资源时,会提示输入用户名和口令。若不出现提示,直接出现拒绝访问。一般是由于目标计算机上启用了 guest ,而 guest 用户没有权限造成的。
       接下来的讨论实质和域的关系不太,但确实是我们访问网络共享资源中经常会碰到的问题:基于 UNC 路径的 IP 形式来访问时的故障,如在开始 / 运行: \\10.63.243.1
前提:在网卡、协议、连接没问题的情况下。即在可 ping 通的前提下,若 \\10.63.243.1 不通,排错可从下面几个方面来考虑。
1 、目标机的 “Microsoft 网络的文件和打印机共享 服务的问题。
提示: “\\10.63.243.1 文件名、目录名或卷标语法不正确
检查:服务是否安装、是否选中,或重装一下。
操作:网上邻居 / 右键 / 属性 / 本地连接 / 右键 / 属性
2 、由于访问相关的 net logon server workstation 服务务未正常启动的影响。
提示:
1 )若目标机(为域成员)上的 net logon 服务停了: 试图登录,但网络登录服务未启动
2 )若目标机上的 server 服务停了: “\\10.63.243.1 文件名、目录名或卷标语法不正确。
3 )若本机的 worstation 服务停了: “\\10.63.243.1 网络未连接或启动 。连其它计算机,也是一样的提示。
检查:相应服务是否已经正常启动。
操作:我的电脑 / 右键 / 管理 / 服务和应用程序 / 服务下
3 、由于本机与其它计算机重名(指 NetBIOS 名称)的影响
提示:访问任何计算机均提示: 找不到网络路径
检查:重启一下,看是否有 网络中存在重名 的提示。可能上次开机时没注意给忽略了。
操作:我的电脑 / 属性 / 网络标识 / 属性 / 计算机名下,修改计算机名。
4 XP/03 由于默认安全策略: 帐户:使用空白密码的本地帐户只允许进行控制台登录 的影响
提示: \\10.63.243.1 无法访问。您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。登录失败:用户帐户限制。可能的原因包括不允许空密码,登录时间限制,或强制的策略限制。
检查:改用非空密码的帐户试试,或查看 XP/03 目标机上的本地策略。
操作:开始 / 运行: gpedit.msc 。计算机配置 /Winodws 设置 / 安全设置 / 本地策略 / 安全选项下,由默认值 启用 改为 禁用
注意:域帐号访问不受此策略限制。
5 、网络共享访问被筛选器的设置所阻止
提示:找不到网络路径
检查: TCP/IP 筛选、 IPSEC RRAS 筛选器是否被启用,且 TCP 端口 139 445 被禁用。
操作:
1 )网上邻居 / 属性 / 本地连接 / 属性: TCP/IP— 高级 选项 —TCP/IP 筛选
2 )网上邻居 / 属性 / 本地连接 / 属性: TCP/IP— 高级 选项 —IP 安全机制
3 )开始 / 程序 / 管理 / 路由和远程访问 /IP 路由选择 / 常规 / 接口 / 右键属性 / 常规:输入 / 输出筛选器。
说明:
1 RRAS 筛选器只在 2000/03 Server 版中才有, IPSEC 只有在 2000 的上述位置才有。
2 )若你就想设置筛选器,基于端口控制,不让别人访问你的网络共享资源,需要同时禁止 TCP 139 445 口。
3 )由于此种原因产生的访问故障,一般是由于实验后忘了复原,或别人故意和你开玩笑。
 
Q6 、在 AD 域中,如何批量添加域用户帐号?
 
作为网管,有时我们需要批量地向 AD 域中添加用户帐户,这些用户帐户既有一些相同的属性,又有一些不同属性。如果逐个添加、设置的话,十分地麻烦。一般来说,如果不超 10 个,我们可利用 AD 用户帐户复制来实现。如果再多的话,我们就应该考虑使用 csvde.exe ldifde.exe 来减轻我们的工作量了。最后简单介绍一下利用脚本(可利用循环功能)批量创建用户帐号
 
一、 AD 用户帐户复制
1 、在 “AD 域和计算机 中建一个作为样板的用户,如 S1
2 、设置相关需要的选项,如所属的用户组、登录时间、用户下次登录时需更改密码等。
3 、在 S1 / 右键 / 复制,输入名字和口令。
说明:
1、  只有 AD 域用户帐户才可以复制,对于本地用户帐户无此功能。
2、  帐户复制可将在样板用户帐户设置的大多数属性带过来。具体如下:
选项卡
复制到新用户帐号的属性
常规
无。
地址
除了 街道 之外所有
帐户
除了 用户登录名 之外所有
配置文件
配置文件路径 主文件夹 。欲复制它们,应该使用 %username% 变量,如: \\server\share\%username%
电话
单位
除了 职务 之外所有。
隶属于
全部
拨入
无,将默认值应用于新帐户。
环境
无,将默认值应用于新帐户。
会话
无,将默认值应用于新帐户。
远程控制
无,将默认值应用于新帐户。
终端服务配置文件
无,将默认值应用于新帐户。
二、比较 csvde ldifde
 
csvde 逗号分隔符目录交换
ldifde 轻型目录访问协议互换格式目录交换
功能
只能用来添加对象,不能用于删除 / 修改
可用于添加 / 删除 / 修改对象
格式
字段名 1, 字段名 2, 字段名 3,……
记录 1 此值 , 记录 1 此值 , 记录 1 此值 ,……
字段名 1: 记录 1 此值
字段名 2: 记录 1 此值
字段名 3: 记录 1 此值
      ……
举例
Dn,objectclass,samaccountname,
userprincipalname,useraccountcontrol
“cn=s1,ou=test,dc=mcse,dc=com”,user,s1
[email][email protected][/email],512
Dn: cn=s1,ou=test,dc=mcse,dc=com
Objectclass:user
Samaccountname:s1
Userprincipalname:[email protected]
useraccountcontrol:512
共同点
用于导入的文本文件必须包含:
l         用户帐号的 OU ,对象的类型以及用户登录名的路径,用户主名
l         默认(即不指定时):用户帐户为禁用。启用: 512 ,禁用: 514
l         可包含个人信息,但不可包含密码,只能用默认的空口令。
l         或通过设 pwdLastSet 字段值为 0 ,使 用户下次登录时须更改密码 (不设这个字段,默认也是如此)。
l         通过设 userAccountControl 字段值为 66048 ,可使 密码永不过期
 
三、以 csvde.exe 为例说明:域用户帐户的导出 / 导入
  操作步骤如下:
1、  “AD 域和计算机 中建一个用户,如 S1
2、  设置相关需要的选项,如所属的用户组、登录时间、用户下次登录时需更改密码等。
3、  DC 上,开始 / 运行: cmd
4、  键入: csvde  –f  demo.csv
说明:
1 )不要试图将这个文件导回,来验证是否好使。因为这个文件中的好多字段在导入时是不允许用的,如: ObjectGUID objectSID pwdLastSet samAccountType 等属性。我们导出这个文件目的只是为了查看相应的字段名是什么,其值应该怎么写,出错信息如下:
objectGUID:
UNPRINTABLEBINARY(16)
" 由于安全原因不允许修改。 "
objectSid:
UNPRINTABLEBINARY(28)
" 由于该属性处于 安全帐户管理器 ” (SAM) ,不允许访问该属性。 "
2 )可通过 -d –r 参数指定导出范围和对象类型。例如:
       -d “ou=test,dc=mcse,dc=com” -d “cn=users,dc=mcse,dc=com”
              -r “< Objectclass=user>”
5、  以上面的文件为参考基础,创建自己的 my.csv ,并利用复制、粘贴、修改得到多条记录。例如:
dn,objectClass,sAMAccountName,userAccountControl,userPrincipalName
"CN=s1,OU=test,DC=mcse,DC=com",user,S1,512,[email][email protected][/email]
"CN=s2,OU=test,DC=mcse,DC=com",user,S2,512,[email][email protected][/email]
……………… ,其它可用字段,我试了一下,见下表(不全):
用户帐户属性
字符名
说明
常规 标签
Sn
 
Givename
 
英文缩写
Initials
 
显示名称
displayName
 
描述
Description
 
办公室
physicalDeliveryOfficeName 
 
电话号码
telephoneNumber
 
电话号码:其它
otherTelephone
多个以英文分号分隔
电子邮件
Mail
 
网页
wWWHomePage
 
网页:其它
url
多个以英文分号分隔
地址 标签
国家 / 地区
C
如:中国 CN ,英国 GB
/ 自治区
St
 
/
L
 
街道
streetAddress
 
邮政信箱
postOfficeBox
 
邮政编码
postalCode
 
帐户 标签
用户登录名
userPrincipalName
形如: [email][email protected][/email]
用户登录名(以前版本)
sAMAccountName
形如: S1
登录时间
logonHours
见注释 1
登录到
userWorkstations
多个以英文逗号分隔
用户帐户控制
userAccountControl
启用: 512 ,禁用: 514 66048
帐户过期
accountExpires
 
配置文件 标签
配置文件路径
profilePath
 
登录脚本
scriptPath
 
主文件夹:本地路径
homeDirectory
 
连接
homeDrive
 
homeDirectory
 
电话 标签
家庭电话
homePhone
若是其它,均在前面加 other ,如 otherhomePhone
多个以英文分号分隔
寻呼机
Pager
移动电话
mobile, othermobil
传真
FacsimileTelephoneNumber
IP 电话
ipPhone
注释
Info
单位 标签
职务
Title
 
部门
Department
 
公司
Company
 
隶属于 标签
隶属于
memberOf
用户组的 DN 不需使用引号,多个用分号分隔
拨入 标签
远程访问权限(拨入或 ×××
msNPAllowDialin
 
允许访问
值: TRUE
 
拒绝访问
值: FALSE
 
回拨选项
msRADIUSServiceType
 
由呼叫方设置或回拨到
值: 4
 
总是回拨到
msRADIUSCallbackNumber
 
环境 会话 远程控制 终端服务配置文件 “COM+” 标签
说明:这些标签,平常极少用到,我也没试。如果需要可以自己导出来看一下,像一些复杂的字段,如: userParameters ,还是用粘贴吧
6 、导入到 AD ,键入 csvde  –i –f  my.csv  –j c:\
说明: -j 用于设置日志文件位置,默认为当前路径。此选项可帮助用户在导入不成功时排错。
 
有一点大家必须明确的是:我们在这里做 AD 域用户帐户复制、做 AD 域用户帐户的导出 / 导入,并不能代替 “AD 备份和恢复 。我们只是在批量创建用户帐号,帐号的 SID 都是重新生成的,权利权限都得重新设才行。(当然我们可以把导入的用户,通过 memberof 字段设到一些用户组中去,使它有权利权限。但这与利用 “AD 备份和恢复 到原状,完全是两回事)。
 
四、利用脚本创建批量用户帐户
 
1 、利用脚本创建用户帐号(用户可参考下例)。
Set objDomain = GetObject("LDAP://dc=fabrikam,dc=com")
Set objOU = objDomain.Create("organizationalUnit", "ou=Management")
objOU.SetInfo
说明: fabrikam.com 域创建一个名叫 Management OU
 
Set objOU = GetObject("LDAP://OU=Management,dc=fabrikam,dc=com")
Set objUser = objOU.Create("User", "cn= AckermanPila")
objUser.Put "sAMAccountName", "AckermanPila"
objUser.SetInfo
objUser.SetPassword "i 5A 2sj*!"
objUser.AccountDisabled = FALSE
objUser.SetInfo
说明: Management OU 下创建一个名叫 AckermanPila 的用户,口令为 i 5A 2sj*! ,启用。
 
Set objOU = GetObject("LDAP://OU=Management,dc=fabrikam,dc=com")
Set objGroup = objOU.Create("Group", "cn=atl-users")
objGroup.Put "sAMAccountName", "atl-users"
objGroup.SetInfo
objGroup.Add objUser.ADSPath
objGroup.SetInfo
说明: Management OU 下创建一个名叫 atl-users 的用户组,将用户 AckermanPila 加入到这个组中。
 
Wscript.echo "Script ended successfully"
说明:显示“脚本成功结束”信息
 
2 、利用脚本中的循环功能实现批量创建用户帐号
 
Set objRootDSE = GetObject("LDAP://rootDSE")
Set objContainer = GetObject("LDAP://cn=Users," & _
                                                  objRootDSE.Get("defaultNamingContext"))
For i = 1 To 1000
Set objUser = objContainer.Create("User", "cn=UserNo" & i)
objUser.Put "sAMAccountName", "UserNo" & i
objUser.SetInfo
objUser.SetPassword "i 5A 2sj*!"
objUser.AccountDisabled = FALSE
objUser.SetInfo
Next
WScript.Echo "1000 Users created."
说明:在当前域的 Users 容器中创建 UserNo1 UserNo1000 ,共 1000 个用户帐户
Q7 、我的计算机不知道怎么回事,系统时间总是被改快 1 小时?
 
加入域的计算机,没有自己的时间。这是因为时间参数,在 AD 复制中是一个极为重要的因素。如:决定多主控复制时,谁的修改最终生效。所以整个域的时间,都由域的 PDC 仿真主控来控制,整个林的时间都由林根域上的 PDC 仿真主控来控制。
       说明:如果整个林的时间都快 1 小时,对你 AD 的正常工作没有任何影响。
       解决:修改林根域的 PDC 仿真主控计算机的时间。实际工作中,要先查看域内计算机的时区设置是否正确。
 
Q8 、建立 AD 域,需要有什么样的权限才行?
 
1 、若是创建林内的第一个域,即林根域,只要有目标计算机上的本地管理员权限即可。
2 、作为已有域的附加 DC ,需要该域的域管理员( Domain Admins )权限。
3 、安装子域的 DC ,或新树的 DC ,都涉及到林结构的改变,需要林管理员( Enterprise Admins )权限才行。
 
Q9 、如何在 2000 域中添加一台 03 DC
 
       03 2000 比,功能更强大了,在域和 AD 的体系结构上也有了一些变化(参见前面:域、林功能级别)。但微软的产品十分讲究向前兼容,我们可以实现在一个 2000 域中加入 03DC 、加入 03DNS ,并且 DC 间的 AD 复制, DNS 间的区域传输,都好像没有版本差异一样。
       但要注意:直接就在 03 计算机上安装 AD 是不行的,会收到出错提示 “Active Directory 版本不同 。我们需要做一些准备工作,在 2000DC SP2 及更高)上运行 03 光盘 /I386/adprep
具体第一步: adprep /forestprep 进行林准备,第二步 adprep /domainprep 进行域准备。
  顺便说一下: 03 可以作为 2000 域的附加 DC 2000 也可以作为 03 域的附加 DC ,而直接在 2000 上安装 AD 即可,不需要准备。
 
Q10 、创建 AD 域时,由于没有 NTFS 分区,导致 AD 安装失败?
 
2000/03 成员或独立服务上上运行 dcpromo 命令,安装 AD ,将其提升为 DC ,其上必须有一个 NTFS 5.0 分区,用来保存 AD sysvol 文件夹。
注意: 2000 NTFS 分区是 NTFS 5.0 NT4 的是 NTFS 4.0 NT4 必须安装 SP4 后,才可访问 2000 NTFS 分区。
如果 C 是引导分区,即系统夹 winnt windows 所在分区,采用 FAT32 分区,系统会自动查找下一个可用的 NTFS 分区来存放系统卷,如 d:\sysvol 。如果找不到 NTFS 分区,就会出错,导致 AD 安装失败。这时可利用 convert 命令将某个 FAT32 分区转成 NTFS 分区,这个转换会保持数据的完好。但要注意这个转换是单向不可逆,想回复到 FAT 分区,除非重新格式化该分区。
以转换 D 盘为例,具体操作如下:
1 、开始 / 运行: convert d: /fs:ntfs
2 、提示是否转换,键入 y 确认转换。
说明:这时并没有真正开始转换,如果后悔,可以到注册表 HLM\ 当前控制 \ 控制 \ 会话管理 \BootExecute 下,删除其值 Convert d: /fs:ntfs
3 、重新启动计算机,将在登录界面出现前,真正实施 FAT NTFS 的转换。
 
Q11 、安装 AD 域时,出现 NetBIOS 名称冲突?
 
       在安装 AD 时,安装选项会要求输入:新域的 DNS 全名,在这里应该输入新域的完全有效域名 FQDN ,形如: mcse.com 。系统会打算以 mcse 作为此域的 NetBIOS 名称,并在网络中检查是否存在重名,需要等一会儿。
如果不重名则设为 mcse (建议用户不要修改此名),重名系统则自动设为 mcse0 ,建议用户最好换个名字,因为你的网络可能还会有 2000 以前版本的老系统,考虑到 NetBIOS 名称解析和 DNS 名称解析的互助,保持一致性比较好。
说明: NetBIOS 名称,只是为 95/98/NT 等老版本用户通过 浏览服务 WINS 来识别这个域用的,如果确信域内计算机都是 2000 及以上系统(它们通过 DNS 定位域),其实 NetBIOS 名称冲不冲突,都无所谓。
这种冲突可能源自于网络中如果已有一个域,名字叫做 mcse.org DNS 名虽然不冲突,但是 NetBIOS 名称冲突。也可能是你安装了一个 mcse.com 域未能完全成功,又再次安装导致的,这样情况倒可以强行将 NetBIOS 名称将为 mcse ,而不是 mcse0
 
Q12 、安装 AD 完成后,重启登录非常慢,甚至长达 20 分钟之久。
 
这一般是由于用一台运行了一段时间的 2000/03 Server 来安装 AD 造成的,故障较难定位。若重启几次后就正常了,则不必理会。如果多次重启后还是非常慢,那就要重装系统及 AD 了。建议:最好在新装的系统上来安装 AD ,这样不容易出问题。
 
Q13 、安装 AD 时,选择了在本机安装 DNS ,但安装结束后,在 DNS 中未生成 SRV 记录?
 
如果决定在安装 AD 过程中在本机安装 DNS ,应在安装前,将本机 TCP/IP 配置中的 DNS 服务器指向自己,这样在安装 AD 完成后重启时, SRV 记录将被自动注册到 DNS 服务器的区域当中去的,生成四个以下划线开头的文件夹,如 _msdcs
03DNS 在这里夹的层次结构有所变化,将 _msdcs. 域名夹提升了一级,直接放到了查找区域下,但本质没变。
如果安装前忘了将 DNS 指向自己,也可以后补上。然后到计算机管理 / 服务下,重启 Net Logon 服务即可。这样可以把启动时未能注册到 DNS 服务器的 SRV 记录(缓存在 windows\system32\cache 中)写入 DNS 。如果仍然不行的话,那只好重启 DC 了。
 
Q14 、安装子域失败。
 
       在保证权限(需要林管理员权限,不要误以为是父域管理员权限)、 DNS 没问题的情况下,最常见的安装子域失败的原因就是域命名主控失效,出错提示为: 由于以下原因,操作失败: AD 无法与域命名主机 xxx 联系。指定的服务器无法运行指定的操作。
说明:域命名主控要正常工作,它本身要求 GC 必须可用。这是由于:为了保证域的名字在林中唯一,域命名主机需要查询 GC 。若是 2000 林, GC 必须和域命名主机在同一台计算机上才行。若是 2003 林,不要求 GC 必须和域命名主机非得在同一台计算机上。
解决:保证域命名主控联机,如果确信其已无法正常工作,可强制传给(查封 seize )林内的任意一台 DC ,子域的 DC 也可以。原来的主控必须被重做系统后,才可连入网络,以保证域命名主控的林唯一性。
 
Q15 修改用户密码需要几分钟,甚至更长的时间。
 
前面我们介绍过: PDC 仿真主控负责最小化密码变化的复制等待时间,若一台 DC 接受到密码变化的请求,它必须通知 PDC 仿真主控。若是 PDC 仿真主机失效,收到该请求的 DC 必须经过一段时间的查找后,确认真的找不到 PDC 仿真主控了,才会自己修改用户密码。所以在此情况下,应首先检查 PDC 仿真主控。
如果确信其已无法正常工作,可强制传给(查封 seize )域内的任意一台 DC 。原来的主控必须被重做系统后,才可连入网络,以保证 PDC 仿真主控的域唯一性。
 
 
Q16 、正常卸载 AD 时的常见问题
 
       在实际工作中有时我们需要改变服务器角色,或者将实验中安装的 DC 回复到普通成员 / 独立服务器身份,这就要进行 AD 的卸载。
1 、卸载时会提示给新的本地管理员设置密码
2 、附加 DC 卸载后,仍在域中。
3 、如果 AD 不能卸载,应从以下几方面考虑:
1 )网卡是否正常工作
即使你整个林中只有一台计算机,也要保证网卡正常工作,才能将 AD 卸载。网卡不工作或禁用网卡都会导致 AD 无法卸载,提示 卸载 SYSVOL 文件夹出错
2 )权限
权限要求与安装 AD 时类似,若一个林中只有一个域,那么你要卸载的就是林根域,需要林管理员( Enterprise Admins )权限;卸载附加 DC 需要该域的域管理员( Domain Admins )权限;卸载子域或树,涉及到林结构的改变,也需要林管理员权限。
3 DNS
       一般应保证与安装时所用 DNS 一致。如果做了 DNS 规划,必须保证 1 中权限所要求的管理员身份能通过 DNS 找到相应 DC ,进行验证。
4 )域命名主控
       卸载时只要涉及到林结构的改变,就需要保证域命名主控有效;卸载附加 DC 时不要求域命名主控有效。
但要注意的是:卸载时,域命名主控失效的出错信息与安装时的 “AD 无法与域命名主机 xxx 联系 提示不同,具体是:由于以下原因,操作失败。以提供的凭据绑定到服务器 xxx 失败。 “RPC 服务器不可用
5 )卸载的顺序
       与安装顺序相反,应该先逐级卸载下面的子域,最后卸载树根域、林根域。否则将导致子域无法卸载,而存在的子域还有问题,找不到林根域、树根域了。
       因为这时极有可能架构和域命名主控及 GC 未转移,林管理员组和架构管理员组( Schema Admins )已经随林根域的删除而没有了。为什么这么说呢?因为如果管理员考虑到主控及 GC 等的转移问题,也就不会误删除林根域了。
 
Q17 AD 无法正常卸载,或者说 DC 无法正常降级为成员服务器?
 
       如果按照上例的要求,还是无法正常卸载 AD ,且出错提示未提到 DNS 方面的故障。考虑本机上已安装有的应用程序,你还不想重做系统,可考虑使用如下办法。
1 、开始 / 运行,在命令行中输入 regedit regedt32 打开注册表编辑器。
2 、找到以下的键值:
   HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Product Options
  键值: ProductType   类型: REG_SZ
3 将原来的值 “LanmanNT” 改为 “ServerNT”
             
说明:
1 LanmanNT 表示本机为域控制器 DC ServerNT 表示本机为非 DC
2 )只有当 CurrentControlSet1 CurrentControlSet 下的键值: ProductType  所等于的数据不同时,即一个为 ServerNT ,一个为 LanmanNT 才允许修改。否则将会出如下提示:
¨     对于 2000 系统已检测到干预您的注册产品类型,这是您对软件许可证的侵犯。干预产品类型是不允许的。 ” 
¨     对于 03 系统检测到您的注册的产品类型有篡改现象。这是对软件许可证的侵犯。篡改产品类型是不允许的。
3 )教学实践中可以利用 ntdsutil 将子域的 server 对象(实质指 DC )手动删除,然后运行 dcpromo 降级,降级失败后演示此知识点。
接下来,方法一:
1 、重新启动计算机,按 F8 键进入到 目录服务恢复模式
说明:
1 )在此模式下, AD 不工作,以便对 AD 库文件及系统卷 sysvol 进行操作。
2 )登录的口令不同于平时所用的口令,是在安装 AD 时,所设的目录恢复模式下的口令。保存在本机一个 SAM 库文件中。
2 、删除存放活动目录数据库的文件夹,默认为 C:\WinNT\NTDS ,或 C:\Windows\NTDS
3 、删除存放系统卷的文件夹,默认为 C:\WinNT\SYSVOL ,或 C:\Windows\SYSVOL
4 、重新启动计算机。
5 、由于还有一些作为域控制器的注册表键值和文件存在,所以在重新启动完计算机后,还需要使用 dcpromo 命令来升级计算机 B 到一个临时的域的域控制器(域名可以任意填写),然后再用 dcpromo 命令降级,这样才会完整地删除所有和域控制器相关的注册表键值和文件。
方法二
1 、开始 / 运行,在命令行中输入 dcpromo
2 、由于前面已经修改了注册表,此时为 AD 安装界面,而非卸载界面。
3 、会遇到如下出错提示: 由于网络上名称冲突,选定默认的 NetBIOS 域名 ‘xxx’”
说明: xxx 为你修改注册表前原来域的 NetBIOS 名称。
4 、不必介意出错提示,手动设置你想要的名称。比如你此次的域为 abc.com ,则手动设 xxx 改为 ABC 即可。
5 、再接下来会遇到提示: “c:\winnt\ntds 文件夹不是空的,当升级处理开始时,要删除文件夹中所有的文件吗?(如果不,请指定另一个文件夹。)
6 、选择:是
说明:
1 )在选择系统卷的夹,如 c:\winnnt\sysvol 后,时间可能会比较长,请耐心等待。
2 )和正常安装时一样,可能会碰到 DNS 错误提示,一般选择在本机安装 DNS 即可。
3 )也可能会出现 计算机已脱离域,帐号未被禁用 的提示,不必理会。
4 最重要的一点是:这第一次非常可能不成功,再重来一遍 dcpromo 即可。
7 、如果这次安装是为了清除残余的注册表键值和垃圾文件,可再次运行 dcpromo 进行卸载。当然直接使用这台 DC ,也是可以的。
       最后强调一下,此方法并不是万能的。一是前面我们已经提到的,有时注册表不允许修改或者改完了存不上。再有就是如果在卸载的一开始,就出现有关 DNS 的出错信息,必须首先排除 DNS 故障才行。
 
Q18 、如何清理 AD 数据库中的垃圾对象。
 
       如果我们非正常卸载 AD 子域、 DC 等,就会在 AD 元数据库中留下垃圾。比如上面的例子,又比如未经 AD 卸载就把 DC 计算机的系统重做了。这些垃圾对象一般来讲无碍大局,但如果我们想优化 AD 的性能,不想给用户带来不必要的麻烦(比如用户选择登录到已经不存在的子域),就可以利用 ntdsutil 工具进行元数据库清理( metadata cleanup ),来删除垃圾对象。具体操作如下:
1 、开始 / 运行: cmd ,在命令行下键入 ntdsutil
说明:
1 )直接,开始 / 运行: ntdsutil ,也可以。
2 )进行元数据库清理,不要进到目录恢复模式下。
3 )进行元数据库清理,可以在非 DC 2000/XP/03 计算机上进行。但有些操作(如使用 ntdsutil 工具进行授权恢复、整理移动 AD 库文件)必须在 DC 上进行。
4 )在 ntdsutil 每级菜单下都可以通过键入:?或 HELP ,查看本级菜单下可用的命令。
2 ntdsutil: 提示符下,键入 metadata cleanup ,然后按 ENTER
说明: ntdsutil 是个分层的多级命令行工具,用户在键入名字时,可简写,只要不同于本级命令中的其它命令即可。比如上面的命令 metadata cleanup 可简写为 m c
3 、在 metadata cleanup: 提示符下,键入 connections ,然后按 ENTER
4 、在 server connections: 提示符下,键入 connect to server servername ,然后按 ENTER
说明:
1 )其中 servername 是指域控制器的 DNS 名称,用主机名或 FQDN 均可。注意:虽然联机说明中提到了可以用 IP 去连,但实际上发现用 IP 去连接,会出现参数不正确的出错提示。
2 )在这里要连接的 DC ,应是一个正常工作的、可操作的 DC ,而不是你要清理的那个 DC 对象。
5 、键入 quit ,然后按 ENTER 回到 metadata cleanup: 提示符。
6 、键入 select operation target ,然后按 ENTER
7 、键入 list domains ,然后按 ENTER
说明:此操作将列出林中的所有域,每一域附带与其相关联的一个数字。
8 、键入 select domain number 然后按 ENTER
说明:其中 number 是与故障服务器所在的域相关的数字。
9 、键入 list sites ,然后按 ENTER
10 、键入 select site number ,然后按 ENTER
说明:其中 number 是指域控制器所属的站点号码。
11 、键入 list servers in site ,然后按 ENTER
说明:这将列出站点上所有服务器,每一服务器附带一个相关的数字。
12 、键入 select server number ,然后按 ENTER
说明:其中 number 是指要删除的域控制器。
13 、键入 quit ,然后按 ENTER ,退回到 Metadata cleanup 菜单。
接下来,根据需要,删除相应的垃圾对象:
14 、键入 remove selected server ,然后按 ENTER
此时, Active Directory 确认域控制器已成功删除。若收到无法找到对象的错误报告, Active Directory 可能已删除了域控制器。
15 、或者键入 remove selected domain ,然后按 ENTER
说明:要想删除域,必须得先删除这个域的 server 对象(实质是 DC )才行。
16 、键入 quit 然后按 ENTER 直至回到命令符。
 
如果清理的是 Server 对象,还需要: 1 、到 Active Directory 站点和服务上,展开适当站点,删除相应 Server 对象。 2 、到 Active Directory 用户和计算机上,双击打开 Domain Controllers 这个 OU ,删除相应的 DC 对象。
       如果清理的是 Domain 对象,还需要到 Active Directory 域和信任关系上,删除相应的已经没有用的信任关系。否则该域名还会出现在登录的域列表。
       在实际操作中,必须先做元数据清理,然后再到相应的管理工具中删除相应的对象。若是直接到管理工具中去删,系统将不允许删除。
 
Q19 、欲替换域中唯一的一台 DC ,如何传送五种主控和转移 GC
 
一、传送五种主控
操作:
1 、安装第二台 DC (假设为 DC2 ,原来的为 DC1 ),
2 、到相应的管理工具(具体见前)下,右键连接到域控制器: DC2
3 、右键 / 操作主机 / 相应标签下,点击更改即可。
说明:
1 、其实在图形界面下,操作很简单,关键看能不能成功。
2 、目标都在下面,只有架构的特殊,目标在上面。
3 、如果 DC 都是最近安装的,极易成功。如果是运行了一段时间的,就不好说了。但我估计你的成功率应在九成以上,因为一般网管都不太动这个。
4 、传送结构主控时,若目标已是 GC ,会提示出错。可以不理会,继续。因为结构主控负责:更新外部对象的索引(组成员资格),不应该和 GC 在同一个 DC 上,应手动移走,否则将不起作用。而单域不需要基础结构主控非得有效,我们一般平常用的都是单域,默认基础结构主控就和 GC 在一起,不起作用。
5 、若传送不成功,不要着急,等 5 分钟 ~2 小时不等,你什么都没做,再试可能就成功了。可以利用 AD 站点和服务 / 站点 / 默认的第一个站点名 /SERVER/DC/ntds setting/AD 连接 / 右键 / 立即复制副本,来强制 AD 马上复制。但有时候,仅依赖于此,还是不行,还得等。
6 、至于把老 DC AD 中去除,在开始 / 运行 /DCPROMO ,卸载 AD 。不要选 这是域中最后一台 DC” ,若能成功卸载,就一切 OK 了。如不成功,可以直接把原 DC 废掉重装。 AD 中会有原 DC 的垃圾对象,也不影响什么。若非要清干净,参见前例。
7 、如果原角色 DC 已经无法访问,就只能进行强制传送了,也就是查封( seize )。查封的实质就是强行推出新的主控,会有数据的丢失。在图形界面下会有提示:原主控无法联系,是否强行传送。选择 ,进行的就是查封操作。
8 、利用 ntdsutil 工具 roles transfer 命令和 seize 命令也可以实现上述操作。实验中发现,无论是用 transfer 还是 seize ,关键看是否能连接到原主控。连接下情况,就是传送;不连接情况下就是查封。如:在连接情况下,使用查封( seize )命令,操作的结果仍是传送:原主控不再是主控,目标成为新的主控。
二、转移 GC
       GC 不具有唯一性,可在 AD 站点和服务中,将 DC2 设为 GC 。操作如下:
1 、在 Default-First-Site-Name/servers/dc2/NTDS Settings/ 右键 / 属性。
2 、选中 全局编录
3 、你会看到在选项下面的说明:发布全局目录所需要的时间取决您使用的复制拓扑。
说明:不要急于把 DC1 断开,应等待足够长的时间,局域网环境一般也就是几分钟。是否将 GC 的内容成功传送,可在 DC2 上查看注册表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters 下是否有这样一条: Global Catalog Promotion Complete=1 。若未传送完,没有这一条。
 
Q20 、如何进行 AD 的备份与恢复
 
       最好的办法是作为系统状态数据的一部分,利用 2000/03 自带的备份工具来进行备份 / 恢复。备份工具位于:开始 / 程序 / 附件 / 系统工具下。利用备份 / 恢复系统状态数据,可以恢复之前的域用户帐户数据和 DNS ,以及安全设置、组策略设置、还有配置等等。但 DHCP WINS 等需要单独备份。
说明:
1   DNS 区域必须为 AD 集成区域,如果不是,在备份之前,将标准主区域转成 AD 集成区域即可。因为 AD 集成的意思就是:将 DNS 区域信息,作为 AD 的一部分进行存储、复制。
2    管理工具下有关 AD 和域的管理工具的快捷方式不会被恢复 (03 仍未解决这个问题),可以运行 2000S 光盘 I386\adminpak.msi ,将所有的域管理工具追加上。也可手动开始 / 运行 /MMC ,添加相应的管理工具,如 DNS AD 用户和计算机等。
3    重装的 2000/03 系统,不必安装 AD ,直接恢复就行。开机, F8 ,目录恢复模式,恢复大约需要 4-5 分钟。(实际当中我也试了,新装的系统,没有安装 AD ,在正常启动模式下恢复也可以,因为它根本没有 AD ,不涉及到 AD 正在工作,不允许替换的问题,只不过时间会稍长一些,约 7-8 分钟)
4   2000 下利用备份工具恢复系统状态数据时,需要手动将 如果文件已存在:不替换 改为 如果文件已存在,总是替换
具体操作:工具 / 选项 / 还原:选择 无条件替换本地上的文件 。否则 2000 在恢复时,可能不会把 winnt\sysvol\sysvol (里面是组策略具体的设置值,被称为 GPT )给恢复回来。 03DC 上没有这个问题,系统会自动提示是否替换,选择 即可。
5 、具体备份 / 恢复的步骤,参考下例。
 
Q21 、如何进行授权恢复
       首先我们通过一个例子,来说明一下什么是授权恢复。
设域内有不止一台 DC ,管理员误删除了一个 OU ,然后用以前的 AD 备份进行了恢复操作。如果不做什么特别的设置(即授权恢复),当 DC 间进行 AD 同步时,由被恢复的数据是以前的, AD 的版本号低,将被其它 DC 的高版本内容所覆盖。这样刚被恢复的 OU 就又被删掉了。
所以我们需要手动通过 ntdsutil 工具指定对这个 OU 对象进行授权恢复,系统将按距备份时间每隔一天 100000 的标准来增加其 AD 版本号,确保一定高于其它 DC 上的版本号。
具体操作如下:
1 、重启 DC ,按 F8 ,选择目录恢复模式
2 、用目录恢复模式下的管理员 SAM 帐号登录
3 开始 / 程序 / 附件 / 系统工具 / 备份,在恢复标签下进行 系统状态数据 的恢复
4 、若此时重新启动 DC ,则以上为正常恢复,即非授权恢复。
若要进行授权恢复,则此时一定不要重启 DC
4 开始 / 运行: ntdsutil
5 、键入 authoritative restore ,到授权恢复提示符
6 、键入 restore subtree 对象 DN (也可以是子树,甚至是整个 AD
7 、退出 Ntdsutil
8 重新正常启动 DC
说明:若要进行系统卷 SYSVOL (主要是组策略设置)的授权恢复,即将组策略恢复到以前的状态,但 AD 库要保留当前。不必使用 Ntdsutil ,直接将 AD 库恢复到其它位置即可,这是因为系统状态数据在备份 / 恢复时,不能进行细化的选择。
 
Q22 、如何移动、整理 AD 数据库?
 
一、移动 AD 数据库
       Ntds.dit 数据文件移动到指定的新目录中并更新注册表,使得在系统重新启动时,目录服务使用新的位置。系统为了安全起见,并不删除原来的数据库。具体操作如下:
1 、为了以防万一,最好备份 AD
2 、重启 DC ,按 F8 ,选择目录恢复模式
3 、用目录恢复模式下的管理员 SAM 帐号登录
4 、开始 / 运行: ntdsutil
5 、输入 files ,切换到文件提示符 files>
6 、输入 move DB to c:\ folder
7 、移动 Ntds.dit 成功提示。
8 、输入 quit 二次,退出
9 、重新正常启动 DC
 
二、整理 AD 数据库
       将调用 Esentutl.exe 以压缩现有的 AD 库文件,并将压缩后的 AD 库文件写入到指定文件夹中。压缩完成之后,将保留原来的 AD 库文件,将新的压缩后的 AD 库文件保存到到该文件的原来位置。
另外顺便说明一下, ESENT 也支持联机压缩,目录服务定期(默认 12 小时)调用联机压缩,但联机压缩只是重新安排数据文件内的页面,并不能象手动压缩这样:将空间释放回文件系统。
       整理 AD 数据库具体步骤如下:
1-5 步,与前面相同。
6 输入 compact to c:\folder
7 、显示整理碎片,直至完成。
8 、输入 quit ,退出。
9 、对于 2000 需要:复制新的 NTDS.DIT 文件覆盖旧的 NTDS.DIT 文件
10 、重新正常启动 DC