2006年09月13日

一直被这个问题困扰,无意之中在GOXIA BLOG看到了解决办法,摘抄一下。

解决MSDTC 53258故障
做了将GC提升到DC的试验,基本上算顺利,可是发现日志中存在几个错误日志:
1、MSDTC 53258
MS DTC 无法正确处理 DC 升级/降级事件。MS DTC 将继续运行并将使用现有的安全设置。错误说明: %1

2、MSDTC 53258
MS DTC 无法正确处理 DC 升级/降级事件。MS DTC 将继续运行并将使用现有的安全设置。错误说明: d:\srvrtm\com\complus\dtc\dtc\adme\uiname.cpp:9280, Pid: 472
No Callstack,
CmdLine: C:\WINDOWS\system32\msdtc.exe
去Winmag得到了解决办法:
1. Click Start -> Administrative Tools -> Component Services.
2. Click the "+" next to Component services to expand it.
3. Right click "My Computer" in the right window pane and select Properties.
4. Click the MS DTC Tab.
5. Click the "Security Configuration" button, a dialog box appears. Click "OK".
6. Click "OK" on the "My Computer Properties" box; this will take you back to the console.
7. Right click "My Computer" and select "Stop MS DTC" (this stops the MSDTC service.
8. Again, right click "My Computer" and select "Start MS DTC".

2006年09月02日

关于域用户的开设在前面的文章中(如何把一台成员服务器提升为域控制器(一)(二))已经涉及过了,所以在这里开设用户的方法就不再重复了,本篇文章主要向大家介绍一下用户配置文件。

  首先,什么是用户配置文件?根据微软的官方解释:用户配置文件就是在用户登陆时定义系统加载所需环境的设置和文件和集合,它包括所有用户专用的配置设置。用户配置文件存在于系统的什么位置呢?那么用户配置文件包括哪些内容呢?来给大家看一副截图:

  用户配置文件的保存位置在:系统盘(一般是C盘)下的“Documents and Settings”文件夹下,有一个和你的登陆用户名相同的文件夹,该用户配置文件就保存在这里,顺便提示一下,如果本机和域上有一个同名用户,并且都登陆过的话,那么就会出现在同名文件夹后面拖后缀的情况,举个例子:比如在一个域(demo.com)里面有一台计算机(testxp),本地有一个swg的帐号,域上也有一个swg的帐号,并且都登陆过这台计算机,那么会发生如下情况:

  本地帐号先登陆:那么本地的swg的用户配置文件夹为swg,而域用户的用户配置文件夹为swg.demo

  域帐号先登陆:那么域用户的用户配置文件夹为swg,本地用户的配置文件夹为swg.testxp。

  通过上面的截图,我们可看出,用户配置文件包括桌面设置、我的文档、收藏夹、IE设置等一些个性化的配置。另外需要说明的是在“Documents and Settings”文件夹下有一个名为“All Users”的文件夹,如果你在这个文件夹下的“桌面”文件夹下新建一个文件的话,你会发现所有用户在登陆时的桌面上都有这个文件,所以这个文件夹里的配置是对这台计算机的每个用户均起作用的。  

 

  目前很多公司的IT Pro都有共同的感叹,就是用户喜欢把自己的桌面什么的搞得乱七八糟,虽然通过组策略可以限制掉一部份,但总觉得不是很完善,在这里,向大家推荐使用强制用户配置文件,用户可以对自己个人配置文件任意修改,但是一旦注销后,这些修改将不会被保存,这样用户下次登陆里,用户的配置文件还是保持和原来一样,那么如何实现这个功能呢?其实只要将用户配置文件夹下的“Ntuser.dat”改成“Ntuser.man”就可以了,来看一下修改过程:

  首先,在显示隐藏文件和已知文件的扩展名,可以在“工具-文件夹选项-查看”里进行修改:

  ~

  点“确定”后,就可以在看到那个“Ntuser.dat”文件了,但此时会有一个问题,如果去修改C:\Documents and Settings\swg下的“Ntuser.dat”,会发现根本没有办法修改这个文件,因为文件在使用中,无法修改;如果去修改网络公共位置的“Ntuser.dat”,也就是\\192.168.5.1\share\swg下的“Ntuser.dat”,修改当然可以修改,但是由于在“swg”用户注销的时候,本地的“Ntuser.dat”会把网络公共位置的“Ntuser.man”覆盖掉,也就是等于没有修改。很多人都想直接在服务器上更改 “swg”文件夹的所有者,然后给管理员帐号添加权限,这样就可以直接在服务器上把“Ntuser.dat”改掉,但本人实践过几次,都发现这样的操作会引起一些权限无法继承,而导致出错的情况,所以不建议大家使用,这里推荐一种方法:

  先把“swg”帐号注销掉,然后用另外一个帐号登陆,比如管理员,当然,如果在登陆成功后直接去访问\\192.168..5.1\share\swg以试图修改的话,那么你将会感到失望,因为还是拒绝访问的,那么如何访问并修改呢,可以这样操作,“开始-运行-cmd”然后回车,这样就启动了命令行,在命令行下输入:net use \\192.168.5.1 password /user:swg,显示“命令成功完成”,这样就利用“swg”和服务器建立一个连接,此时就可以

  然后再注销管理员帐号,用“swg”登陆,看看有没有成功:

  看到了吧,类型由“漫游”变成了“强制”,现在可以在桌面这些地方进行任意的修改,你会发现注销再登陆,又恢复到了原样。这种设置在多人使用同一个帐号的情况下非常有用。

  最后再请大家注意两个问题:

  1、 在配置强制用户配置文件时,当用其它用户登陆修改时,请保证被修改的用户处于注销状态,为什么?大家不妨自己想一想!

  2、 当使用漫游用户配置文件时,请不要在桌面等地方存放一些大型的程序或文件,因为用户在登陆和注销过程中会下载和上传配置文件,如果文件过大,会影响登陆和注销的速度。

\\192.168.5.1\share\swg,里进行修改了,

 

  当网络变成域构架后,所有的域用户可以在任意一台域内的计算机登陆,当你在一台计算机上的用户配置文件修改后,你会发现到另一台计算机上登陆时,所有的设置还是原来的,并没有发生修改,这是因为用户的配置文件是保存在本地的,不管是域用户还是本地用户,都是保存在那台登陆的计算机上。我们可以在“我的电脑”上击“右键”,选“属性”,点“高级”,然后在“用户配置文件”里点“设置”:

  请注意“类型”里用红框标出的部分,全部是“本地”,这就说明用户配置文件保存在本地,那么如何才能让用户的配置文件随着帐号走,也就是不管用户在哪台计算机上登陆都能保持用户配置文件一致呢?为了解决这个问题,就要用到漫游用户配置文件,原理就是把用户配置文件保存在一个网络的公共位置,当用户在计算机上登陆里,会从网络公共位置把用户配置文件下载到本地并加以应用,然后当用户注销时,会把本地的用户配置文件同步到网络公共位置,以保证公共位置用户配置文件的有效性,以便下一次使用。那么如何来实现这个功能呢?现在就来实践一下:

  首先,要在一个网络的公共位置开设一个共享文件夹,用来存放用户配置文件,在个实验里,就在域控制器上开设一个为share的共享文件夹,并开放权限:

  然后,点击“开始-设置-控制面板-管理工具”,双击“AD用户和计算机”,并选中相应的用户,这里以“swg”帐号为例:

 

  在“swg”帐号上双击,然后选“配置文件”,在“用户配置文件-配置文件路径”里输入:\\192.168.5.1\share\%username%,“192.168.5.1”是域控制器的IP地址,如下图所示:

  然后点确定,接下去就到客户端去,用“swg”帐号登陆一下,看看会发生什么变化。

  如上图所示,DEMO\swg的状态由刚刚的“本地”变成了“漫游”,此时注销一下用户,那么就会自动的将该用户的本地用户配置文件同步到网络公共位置,如果再用“swg”到另外的域内计算机上去登陆的话,会发现所有的用户配置文件和这台计算机上是一样的。那么服务器上发生了些什么变化呢?

  如上图所示,服务器的“share”文件夹里会自动创建一个和用户名一样的“swg”文件夹,默认情况下这个文件夹只允许对应的用户打开:

  画面很熟悉吧?

自从我写了前六篇文章之后,陆续收到一些朋友的来信,不过大家好像问的都是一些和文章本身内容关系不大的问题,凡事只要我知道的,我都在E-Mail里给大家做了解答,只要限于本人的水平有限,所以有回答不对的地方请大家多多谅解!如果你有正确的方法或者比我的方法更好的话,也非常欢迎给我来信,在此本人先表示感谢!在这里本人挑选两个比较典型的问题专门再写两篇文章,在这里我先写一篇活动目录之迁移,那么现在开始切入正题。

  说到活动目录迁移就要用到迁移工具,但Windows本身却并没有自带个工具,我建议大家到微软的官方网站上去下载,因为可以下到最新版,安装盘里那个版本太低了。这个工具的全称叫Active Directory Migration Tool,我们以下简称ADMT,最新版本是3.0,这个新版本较上次的版本我想表扬一下微软,总算有中文版了,虽然这个工具的使用还是比较简单的,所以上面的英文也不是很难,但有中文版了也算是微软的用心之处嘛,不过表扬完了,顺便再批判一下,你说你一个迁移工具,怎么会和SQL勾搭上了呢?真不知道微软又想干什么?是技术需要吗?我没什么感觉。是商业需要吗?问比尔。反正我不管了,只要好用就行了。

  我先来介绍一下实验的环境:

  目标域:

  域名:demo.com

  域控制器:server

  操作系统:Windows Server 2003

  IP:192.168.5.1

  子网掩码:255.255.255.0

  DNS:192.168.5.1

  源域:

  域名:ms.com

  域控制器:win200ser(本来是打算用win2000ser的,一时大意,少打了一个“0”,将错就错了,反正也没有什么关系)

  操作系统:Windows 2000 Advanced Server

  IP:192.168.5.10

  子网掩码:255.255.255.0

  DNS:192.168.5.10

  实验目的:要把ms.com上的一个叫“Tom”的用户和一台名叫“Test2000”的计算机帐号迁移到Demo.com。  

 

  说到这儿呢,我顺便还想再和大家提一下转发器的问题,有些朋友喜欢使用转发器来解决上面的问题,从理论上来讲,好像也没有什么讲不通的地方,但是用转发器的时候,很多人都会在上面出现一个严重的错误操作,以我的实验环境为例,这个错误操作就是在demo.com的DNS上设置转发器,转发到ms.com上面的DNS服务器;然后再到ms.com的DNS服务器上设置转发器,转发到demo.com上的DNS服务器。当然我知道大家这么设置的理由是什么,就是当demo.com上的机器需要访问ms.com上的资源的时候,而本地的DNS服务器无法解析,这时可以根据DNS服务器上设置的转发器,转到ms.com上的DNS服务器来进行解析,从而获得正确的IP地址;同理,当ms.com上的机器要访问demo.com上的资源时,也可以利用本地的DNS服务器上的转发器转到demo.com上的DNS服务器上来。以此来解决两个域之间的DNS解析问题。从表面上看,好像还是挺有道理的。但实际上你会为这样的操作付出代价的,什么原因?来分析一下,当一个客户端发出一个请求,是两台DNS服务器上有的纪录,那么是不会有什么问题的,因为当服务器本身能解析请求时,转发器是不起作用的。但是,当下面的客户机发出一个错误的请求,比如输错了一个字母,也就是说发出的请求在两台DNS服务器上都没有纪录的时候,那么这时就会根据转上器上的地址来进行转发,而你又是在两台DNS服务器上设置相互转发,那么这条请求就会从这台服务器到那台服务器,再从那中服务器到这台服务器•••••……,并且周而复始,这样就会进入一个死循环,会大大的加重你的服务器的负担,甚至引起死机的可能性也不是没有。所以DNS服务器之间是不能设置相互转发的,这一点请大家切记切记!

  OK,那我们继续,建立完DNS辅助区域以后,再始建立域的信任关系。

  先到目标域上,也就是demo.com上,点击“开始-设置-控制面板-管理工具-Active Directory域和信任关系”:

  在域名“demo.com”上击“右键”:

  选“属性”:

  点击“信任”:

  点击上面的“新建信任”:

  点“下一步”:

  输入对方域的DNS名称,这里是“ms.com”,再点“下一步”:

  可以选择信任方向,这里我们选“双向”:

  点“下一步”:

  再点“下一步”:

  这里要输入的是信任密码,不要以为是让你输入管理员密码哟,这可是两回事,设置好以后点“下一点”:

  确认一下,要是没有问题就点“下一步”:

  点“下一步”:

  选“否”,点击“下一步”:

  还是选“否”,以上两步请确认另一方被创建后选“是”,由于这里对方域还没有被创建所以这里选“否”,点击“下一步”:

  最后点击完成。

 

  接下来就到源域上面也去进行同样的设置。不过Windows 2000域创建信任关系要比Windows 2003域来得简单,这里我就不写了。

  信任关系被创建后,接下来就是相互把对方域的管理员帐号添加到本域的Bulitin容器下的Administrators组。这个操作就不说了。

  前期的准备工作就到此为止了,开始进行正式的迁移操作了:

  首先当然是安装迁移工具,这里我安装的是ADMT3.0,安装过程很简单,只要狂点下一步就可以完成了。但要注意的是,ADMT工具一定要装在目标域上。安装完成后,我们可以点击“开始-设置-控制面板-管理工具-Active Directory迁移工具”:

  乍一看,就会吓一跳,什么都没有,怎么迁移?别急,在“Active Directory迁移工具”上击“右键”:

  都看到了吧,功能众多吧?这里本人仅仅向大家演示一上用户迁移和计算机迁移,所以我先点击“用户帐号迁移向导”:

  点“下一步”:

  这里要正确的填写“源域”和“目标域”,千万别倒过来哟。然后再点“下一步”:

  在这里选择“从域中选择用户”:

  点击“添加”:

  找到我们要迁移的用户,这里是“tom”,然后点“确定”:

  点击“下一步”:

  这里要选择的是目标OU,也是把用户迁移到哪,如果你不知道上图中所示的这种书写形式的话,可以点击“浏览”进行选择OU,选择完成后,系统会自动转换。再点“下一步”:

 

  这里需要提醒一下大家,要选择“生成复杂密码”,暂时还不能选择“迁移密码”,而且大家还要注意密码文件的存储位置,以迁移完成后去寻找那个密码。如果选择了“迁移密码”,那么会出现下面的出错提示:

  要迁移密码呢,在ADMT的帮助信息里有详细的介绍,这里我就不重复了。我们还是暂时不迁移密码,点“下一步”:

  这里可以设置被迁移帐号迁移成功后,是禁用还是启用,几天后过期等信息,我这里选择和源相同,注意的是建议大家把“将用户SID迁移至目标域”前的勾打上。这样就可以把源帐号的SID复制到与新帐号相关联的历史标记中,同时还会触发SID审核,可能会引起源域的域控制器的重启,这时请等待重启完成:

  输入源域的管理员帐号和密码,点“下一步”:

  如果用到了“漫游用户配置文件”的话,可以选上第一项,其它的可以保持默认,然后点击“下一步”:

  这里可以把一些用户属性进行排除,被排除的将不会进行迁移,建议大家还是保存默认的好。除非有些属性到了目标域后会引起问题。点“下一步”:

  大家可以根据自己的需要进行对上图的选择,就是当目标域中存在同名帐号之类的冲突现象时,所采取的动作,是迁移还是不迁移,或者怎么迁移的情况。选定后,请点击“下一步”:

  请大家确认上面的信息,如果没有问题,点击“完成”:

  上面是一个进度表和一个简单的日志记录,上图表示迁移成功!然后再到目标域的“Active Directory用户和计算机”里去看一下有没有“tom”这个用户:

  看到了吧,已经成功迁移过来了。

  再来看一个如何迁移计算机帐号的,上面我们选择的是“用户帐号迁移向导”,现在我们要选择的是“计算机迁移向导”:

  点“下一步”,下面的图和上例中差不多,我就只截出和上面不一样的图:

  第六步:

  这里我全部选上了:

  这里我选择的是“添加”:

  迁移成功后,计算机多少时间后重启在上图中指定,剩下的和上面的迁移用户基本一至,完成后可以到目标域的“Active Directory用户和计算机”里去看一下有没有“test2000”这台计算机:

  也迁移过来了吧?

  现在你可以到客户端上去把test2000这台计算机重新加入到demo.com,然后再用“tom”这个用户登陆,你会发现设置和以前一样保持不变的。

  好了,关于迁移我先写到这儿,其实ADMT的功能远不止此,大家可以自行研究一下,如果有问题请给我发E-Mail,我的MAIL地址:hzswg@sohu.com。

 

  在执行正式的操作以前呢,我们先要来做三个准备工作:

  1、 把目标域,在这里也就是demo.com的功能级别提升为纯模式。

  点击“开始-设置-控制面板-管理工具-Active Directory用户和计算机”:

  在“demo.com”上击右键:

  选择上面选中的“提升域功能级别”:

  请注意,当前的域功能级别是Windows 2000 混合模式,然后开始提升操作:

  点击上图中的“提升按钮”,注意这种操作是不可逆的,提升完成后,就会出现如下画面:

  这就表示提升成功了,如果有多台域控制的话,请注意复制时间,以确定这一修改被复制到整个域的所有域控制器上。

  2、 对两个域做一个双向信任关系。

  应该说这是一个关于域的基本操作,但是很遗憾的是很多朋友都在这一步上栽了一个大跟斗,他们都来信告诉我无法建立信任关系,当他们给我看了下面的截图:

 

  以及听取了他们的整个操作过程以后,我基本上断定是因为他们没有正确配置DNS的原因,我想他们肯定是用本域的DNS服务器去解析信任域的域名,由于本地的DNS服务器里是没有对方域的纪录,所以才会造成无法解析,从而导致信任关系无法建议。在这里我向大家推荐一种方法,就是建议DNS的辅助区域来解决这个问题:

  先到demo.com域,点击“开始-设置-控制面板-管理工具-DNS”:

  展开“SERVER”,定位到“正向查找区域”,并在上面击“右键”:

  选择“新建区域”:

  点击“下一步”:

  在这里,我们要选择“辅助区域”,然后再点“下一步”:

  这里输入和信任域相同的名称,我这里输入的是“ms.com”,然后再点击“下一步”:

  这里要输入信任域DNS服务器的IP地址,试验环境中是“192.168.5.10”,继续“下一步”:

  最后点击“完成”。

  出现上图就表示辅助区域已经建立成功了,然后到源域上再操作一次。