首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

操作系统

Windows 9X | Linux&Uinx | Windows Server | 其它操作系统 | Vista | FreeBSD | Windows 7 |
首页 > 操作系统 > Windows Server > Windows Xp/Windows 7自动加域及用户资料自动迁移 > 正文

Windows Xp/Windows 7自动加域及用户资料自动迁移

出处:5DMail.Net收集整理 作者:5DMail.Net收集整理 时间:2011-4-26 23:30:13

网络加域的项目,所有的用户全部从工作组环境切换到域环境,本地账号迁移到域账号。因客户端比较多,仔细研究了一下微软的加域和用户迁移工具,结合在网上搜到的一些脚本,自己编写了一个Windows Xp,Windows 7自动加域及自动迁移用户配置文件的脚本。

该脚本使用到了几个工具:
1、Netdom.exe:计算机加域用到,XP和Windows 7须使用不同版本,可分别去2003和2008系统光盘里找。其中Windows 7还要使用到netdom.exe.mui文件,该文件可到 2008系统 %windir%\system32\en-US\目录下复制。
2、moveuser.exe:XP系统迁移用户配置工具,网上下载或2003系统里面找。
3、USMT 4.0工具包:Windows 7用户配置迁移工具。网上下载,如果有安装Win AIK的,可以直接去目录下找,具体路径忘记了。其实这个工具的低版本也可以迁移XP系统,不过感觉比较复杂。
一、目录准备
收集齐了这几个工具,先在C盘根目录下创建Domain_Migration目录,该目录结构如下图:USMT,Win7,XP三个目录以及Auto.bat文件

Win7文件夹下再放netdom.exe,netdom.exe.mui,Win7AutoAddDomain.bat三个文件

Xp文件夹下放moveuser.exe,netdom.exe,XpAutoAddDomain.bat

二、使用说明
1、将Domain_Migration文件夹复制到C盘根目录
2、以管理员身份运行 Auto.bat
3、按照提示操作,更改计算机名后必须重启,再次运行Auto.bat加域
4、加域后重启,使用临时域管理员登陆,再次运行Auto.bat转移用户配置文件
5、转移完成后,注销,使用域账号登陆
6、删除Domain_Migration文件夹
三、bat文件详细说明
1、Auto.bat:选择操作系统类型,调用加域脚本,内容比较简单
@echo off
color 1e
ECHO ******选择操作系统类型*******
:START
echo       1: winXP 
echo       2: win 7 
echo       q: quit 
SET /P OS_type=:
IF "%OS_type%"=="q" GoTo EOF
IF "%OS_type%"=="1" GoTo WinXp
IF "%OS_type%"=="2" GoTo Win7 
echo 选择有误,请重新选择 & GoTo START
 
:WinXp
echo 你选择了WinXP系统!
call "c:\Domain_Migration\xp\XpAutoAddDomain.bat"
exit
 
:Win7
echo 你选择了Win7系统!

if not exist "%windir%\system32 etdom.exe" copy "c:\Domain_Migration\win7 etdom.exe" "%windir%\system32" /y

if not exist "%windir%\system32\en-US etdom.exe.mui" copy "c:\Domain_Migration\win7 etdom.exe.mui" "%windir%\system32\en-US\" /y

REM 调用Windows 7加域迁移脚本
call "c:\Domain_Migration\win7\Win7AutoAddDomain.bat"
exit
 
:EOF
Exit
***********************************************************************
REM 脚本结束
 
2、Win7AutoAddDomain.bat:更改计算机名,加域,迁移用户配置文件
@echo off
color 1e
cd /d C:\Domain_Migration\xp
::功能说明与使用说明注意事项
ECHO 请在使用本脚本前修改相应的参数为实际值
set dns1=192.168.12.5
set dns2=192.168.2.3
REM 请设置自己真实环境的域名、域管理员账号和密码
set domainname=test.com
set domainadminname=testadmin
set domainadminpassword=!@@#3%%^^
::判断是否已经加入域,如果加入了则直接跳转
::wmic ntdomain get domainname | findstr /i "%domainname%
::if %errorlevel% equ 0 echo 该计算机已经加入域 && goto moveuser
ipconfig /all | findstr /i "%domainname%" >nul && echo 该计算机已经加入域,准备转移配置文件 && goto moveuser
 
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::判断当前登陆用户是否有管理员权限,如果没有则注销后重新以管理员登陆
:admin
ECHO ************************判断当前用户权限******************
net user %username% | findstr "*Administrators"
if %errorlevel% equ 1 (echo 当前用户不是本地管理员,请注销后使用有本地管理员权限的用户登录) else (goto DNS)
set /p logoff=现在要注销吗
if /i "%logoff%"=="y" logoff
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::判断当前DNS设置是否为指定地址,如果不是,则清空当前配置后重新设置DNS
:DNS
ECHO *************************更改DNS****************************
netsh interface ip show dns | findstr "%dns1%" 1>nul && echo DNS已经设置为%dns1% && goto renamecomputername
echo 清理更改现有DNS...
for /f "skip=2 tokens=2,* " %%i in ('netsh interface show interface') do (
set netname=%%j
if "%%j"=="环回" goto back
if "%%j"=="内部" goto back
netsh interface ip delete dns name="%%j" addr=all >nul
netsh interface ip add dns name="%%j" addr=%dns1% index=1 >nul
netsh interface ip add dns name="%%j" addr=%dns2% index=2 >nul
)
:back
echo DNS更改完成
 
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::判断计算机名是否已经更改,如更改则进入下一部分;如未更改是否需要更改计算机名,更改完成后要求重新启动计算机
:renamecomputername
ECHO *********************更改计算机名****************************
set a=%computername%
echo 当前计算机名为:%a%
set /p b=请输入要修改的计算机名称(跳过请输入s):
if /i "%b%"=="s" goto joindomain
if /i "%b%"=="" echo 计算机名不能为空 && goto renamecomputername
wmic computersystem Where name="%a%" call rename "%b%" >nul
if %errorlevel% equ 1 (echo 更改计算机名失败,请手工更改 && pause && exit) else (echo 计算机名已更改为%b%)
set /p reboot=更改计算机名完成,现在要重起吗?y/n:
if /i "%reboot%"=="y" shutdown /r /t 0
goto end
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::判断计算机是否已加入域,如加入域则继续下一部分;否则检查相应服务是否启动,自动加入域(用户名密码部分参数需要自行更改)
:joindomain
ECHO ***********************计算机加入域*************************
if /i "%userdomain%"=="%domainname%" goto moveuser
rem 判断服务TCP/IP NetBIOS HELPER服务是否禁用或未启动,如果禁用则更改为自动,未启动则自动启动,否则显示服务已启动
sc query state= inactive | findstr /c:"TCP/IP NetBIOS" && (echo 服务未启动,正在启动服务... && sc config lmhosts start= auto && sc start lmhosts) || echo 服务已启动
if /i "%userdomain%"=="%domainname%" do (echo 计算机已加入域 && goto moveuser)
if not exist netdom.exe echo 请将netdom工具放到同文件夹下再尝试运行 && goto end
. etdom join %computername% /Domain:%domainname% /UserD:%domainadminname% /PasswordD:%domainadminpassword% || echo 加入域失败,请检查网络环境及批处理参数是否正确 && goto end
set /p shutdown=加入域完成,现在要重起吗?y/n:
if /i "%shutdown%"=="y" shutdown /r /t 0
goto end
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::使用moveuser工具对用户配置文件进行迁移(提示用户输入要迁移的用户和要迁移到的用户)
:moveuser
ECHO *********************用户配置文件迁移*************************
if not exist moveuser.exe echo 请将MOVEUSER工具放到同文件夹下再尝试运行 && goto end
net user
:retry
set /p user=请输入你要迁移的本地用户账户名称:
if /i "%user%"=="%username%" echo 转移的用户配置文件为当前登陆用户,请重新启动后使用域管理员登陆再进行转移 && goto end
net user %user% 2>nul 1>nul || echo 你输入的本地账户不存在,请重新输入 && goto retry
set /p domainuser=请输入你要迁移到的域账号名称:
net user %domainuser% /domain 2>nul 1>nul
if %errorlevel% neq 0 (echo 你要转移到的域账户尚未建立,请建立后重新尝试迁移) && goto end
moveuser %user% %domainname%\%domainuser% /k /y | findstr /i "failed" 2>nul 1>nul && echo用户配置文件迁移失败,请检查配置 && goto end
::if %errorlevel% neq 0 echo 用户配置文件迁移失败,请检查配置 && goto end
 
::如果是从本机管理员用户迁移,则域用户也变成管理员,此处删除域用户管理员权限,加入PowerUsers群组,可自行更改
echo 更改域用户为Power User权限
net localgroup administrators %domainname%\%domainuser% /delete
net localgroup "Power Users" %domainname%\%domainuser% /add
echo 配置文件迁移成功,请注销后使用您的域账号登陆
set /p logoff=现在要注销吗?y/n:
if /i "%logoff%"=="y" logoff
goto end
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::结束退出
:end
pause>nul
exit
****************************************************************
REM 脚本结束
 
3、Win7AutoAddDomain.bat,更改计算机名,加域,迁移用户配置文件
@echo off
color 1e
::功能说明与使用说明注意事项
ECHO 请在使用本脚本前修改相应的参数为实际值
set dns1=192.168.12.5
set dns2=192.168.2.3
REM 请设置自己真实环境的域名、域管理员账号和密码
set domainname=test.com
set domainadminname=testadmin
set domainadminpassword=!@@#3%%^^
::判断是否已经加入域,如果加入了则直接跳转
::wmic ntdomain get domainname | findstr /i "%domainname%
::if %errorlevel% equ 0 echo 该计算机已经加入域 && goto moveuser
ipconfig /all | findstr /i "%domainname%" >nul && echo 该计算机已经加入域,准备转移配置文件 && goto moveuser
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::判断当前登陆用户是否有管理员权限,如果没有则注销后重新以管理员登陆
:admin
ECHO ************************判断当前用户权限******************
net user %username% | findstr "*Administrators"
if %errorlevel% equ 1 (echo 当前用户不是本地管理员,请注销后使用有本地管理员权限的用户登录) else (goto DNS)
set /p logoff=现在要注销吗
if /i "%logoff%"=="y" logoff
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::判断当前DNS设置是否为指定地址,如果不是,则清空当前配置后重新设置DNS
:DNS
ECHO *************************更改DNS****************************
netsh interface ip show dns | findstr "%dns1%" 1>nul && echo DNS已经设置为%dns1% && goto renamecomputername
echo 清理更改现有DNS...
for /f "skip=2 tokens=2,* " %%i in ('netsh interface show interface') do (
set netname=%%j
if "%%j"=="环回" goto back
if "%%j"=="内部" goto back
netsh interface ip delete dns name="%%j" addr=all >nul
netsh interface ip add dns name="%%j" addr=%dns1% index=1 >nul
netsh interface ip add dns name="%%j" addr=%dns2% index=2 >nul
)
:back
echo DNS更改完成
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::判断计算机名是否已经更改,如更改则进入下一部分;如未更改是否需要更改计算机名,更改完成后要求重新启动计算机
:renamecomputername
ECHO *********************更改计算机名****************************
set a=%computername%
echo 当前计算机名为:%a%
set /p b=请输入要修改的计算机名称(跳过请输入s):
if /i "%b%"=="s" goto joindomain
if /i "%b%"=="" echo 计算机名不能为空 && goto renamecomputername
wmic computersystem Where name="%a%" call rename "%b%" >nul
if %errorlevel% equ 1 (echo 更改计算机名失败,请手工更改 && pause && exit) else (echo 计算机名已更改为%b%)
set /p reboot=更改计算机名完成,现在要重起吗?y/n:
if /i "%reboot%"=="y" shutdown /r /t 0
goto end
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::判断计算机是否已加入域,如加入域则继续下一部分;否则检查相应服务是否启动,自动加入域(用户名密码部分参数需要自行更改)
:joindomain
ECHO ***********************计算机加入域*************************
if /i "%userdomain%"=="%domainname%" goto moveuser
rem 判断服务TCP/IP NetBIOS HELPER服务是否禁用或未启动,如果禁用则更改为自动,未启动则自动启动,否则显示服务已启动
sc query state= inactive | findstr /c:"TCP/IP NetBIOS" && (echo 服务未启动,正在启动服务... && sc config lmhosts start= auto && sc start lmhosts) || echo 服务已启动
if /i "%userdomain%"=="%domainname%" do (echo 计算机已加入域 && goto moveuser)
. etdom join %computername% /Domain:%domainname% /UserD:%domainadminname% /PasswordD:%domainadminpassword% || echo 加入域失败,请检查网络环境及批处理参数是否正确 && goto end
echo 加入域完成,重启电脑后请使用域管理员帐户登陆转移个人配置文件!
set /p shutdown=现在要重起吗?y/n:
if /i "%shutdown%"=="y" shutdown /r /t 0
goto end
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::使用moveuser工具对用户配置文件进行迁移(提示用户输入要迁移的用户和要迁移到的用户)
:moveuser
ECHO *********************用户配置文件迁移*************************
net user
:retry
set /p user=请输入你要迁移的本地用户账户名称:
if /i "%user%"=="%username%" echo 转移的用户配置文件为当前登陆用户,请重新启动后使用域管理员登陆再进行转移 && goto end
net user %user% 2>nul 1>nul || echo 你输入的本地账户不存在,请重新输入 && goto retry
set /p domainuser=请输入你要迁移到的域账号名称:
net user %domainuser% /domain 2>nul 1>nul
if %errorlevel% neq 0 (echo 你要转移到的域账户尚未建立,请建立后重新尝试迁移) && goto end
cd /d C:\Domain_Migration\USMT\x86
echo 正在备份个人配置文件,请耐心等候......
scanstate \\fileserver\migration\%computername%-%user% /c /i:miguser.xml /i:migapp.xml /v:13 /ue:*\* /ui:%computername%\%user% /l:scan.log /localonly /o /efs:copyraw
echo 正在转移个人配置文件,请耐心等候......
loadstate \\fileserver\migration\%computername%-%user% /mu:%computername%\%user%:%domainname%\%domainuser% /i:miguser.xml /i:migapp.xml /v:13
echo 将域账号加入本地PowerUser群组
net localgroup administrators %domainname%\%domainuser% /delete
net localgroup "Power Users" %domainname%\%domainuser% /add
echo 删除临时文件
del "%windir%\system32 etdom.exe"
del "%windir%\system32\en-US etdom.exe.mui"
echo 配置文件迁移成功,请注销后使用您的域账号登陆
set /p logoff=现在要注销吗?y/n:
if /i "%logoff%"=="y" logoff
goto end
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::结束退出
:end
pause>nul
exit
******************************************************************
REM 脚本结束
 
四、USMT4.0工具使用说明
Win7AutoAddDomain.bat文件使用到了USMT工具,具体用法参考微软网站。
scanstate \\fileserver\migration\%computername%-%user% /c /i:miguser.xml /i:migapp.xml /v:13 /ue:*\* /ui:%computername%\%user% /l:scan.log /localonly /o /efs:copyraw
参数 \\fileserver\migration\%computername%-%user%是服务器上共享目录,以电脑名-用户名保存用户配置文件
参数 /c 遇到错误不中断,仅记录错误信息,
参数 /i:miguser.xml /i:migapp.xml /v:13 转移用户文件和程序设置,详细记录
参数 /ue:*\* /ui:%computername%\%user%,仅转移你输入的本地账户
参数 /l:scan.log 记录过程到scan.log日志文件
参数 /localonly 仅转移本地硬盘文件,忽略网络映射、U盘、移动盘等
参数 /o 覆盖服务器上已经存在的同名转移文件
参数 /efs:copyraw同时转移EFS加密,避免文件在新用户下不能打开
echo 正在转移个人配置文件,请耐心等候......
loadstate \\fileserver\migration\%computername%-%user% /mu:%computername%\%user%:%domainname%\%domainuser% /i:miguser.xml /i:migapp.xml /v:13
参数 /mu:%computername%\%user%:%domainname%\%domainuser% 将本地用户配置文件转移到域用户
  因该工具过于强大,我要求的只是将工作组用户配置文件转移到域用户下,所以我修改了miguser.xml,使它不转移共享文件和其他分区下的.doc,.docx等文件,仅仅转移指定的用户配置文件。修改后的miguser.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<migration urlid="http://www.microsoft.com/migration/1.0/migxmlext/miguser">
    <_locDefinition>
     <_locDefault _loc="locNone"/>
     <_locTag _loc="locData">displayName</_locTag>
    </_locDefinition>
 
    <!-- This component migrates My Video files -->
    <component type="Documents" context="User">
        <displayName _locID="miguser.myvideo">My Video</displayName>
        <paths>
            <path type="File">%CSIDL_MYVIDEO%</path>
        </paths>
        <role role="Data">
            <detects>
                <detect>
                    <condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_MYVIDEO%")</condition>
                </detect>
            </detects>
            <rules>
                <include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
                    <objectSet>
                        <pattern type="File">%CSIDL_MYVIDEO%\* [*]</pattern>
                    </objectSet>
                </include>
                <merge script="MigXmlHelper.DestinationPriority()">
                    <objectSet>
                        <pattern type="File">%CSIDL_MYVIDEO% [desktop.ini]</pattern>
                    </objectSet>
                </merge>
            </rules>
        </role>
    </component>
 
    <!-- This component migrates My Music files -->
    <component type="Documents" context="User">
        <displayName _locID="miguser.mymusic">My Music</displayName>
        <paths>
            <path type="File">%CSIDL_MYMUSIC%</path>
        </paths>
        <role role="Data">
            <detects>
                <detect>
                    <condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_MYMUSIC%")</condition>
                </detect>
            </detects>
            <rules>
                <include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
                    <objectSet>
                        <pattern type="File">%CSIDL_MYMUSIC%\* [*]</pattern>
                    </objectSet>
                </include>
                <merge script="MigXmlHelper.DestinationPriority()">
                    <objectSet>
                        <pattern type="File">%CSIDL_MYMUSIC%\ [desktop.ini]</pattern>
                    </objectSet>
                </merge>
            </rules>
        </role>
    </component>
 
    <!-- This component migrates Desktop files -->
    <component type="Documents" context="User">
        <displayName _locID="miguser.desktop">Desktop</displayName>
        <paths>
            <path type="File">%CSIDL_DESKTOP%</path>
        </paths>
        <role role="Settings">
            <detects>
                <detect>
                    <condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_DESKTOP%")</condition>
                </detect>
            </detects>
            <rules>
                <include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
                    <objectSet>
                        <pattern type="File">%CSIDL_DESKTOP%\* [*]</pattern>
                    </objectSet>
                </include>
                <merge script="MigXmlHelper.DestinationPriority()">
                    <objectSet>
                        <pattern type="File">%CSIDL_DESKTOP% [desktop.ini]</pattern>
                        <pattern type="File">%CSIDL_DESKTOP%\* [*]</pattern>
                    </objectSet>
                </merge>
            </rules>
        </role>
    </component>
 
    <!-- This component migrates Start Menu files -->
    <component type="System" context="User">
        <displayName _locID="miguser.startmenu">Start Menu</displayName>
        <paths>
            <path type="File">%CSIDL_STARTMENU%</path>
        </paths>
        <role role="Settings">
            <detects>
                <detect>
                    <condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_STARTMENU%")</condition>
                </detect>
            </detects>
            <rules>
                <include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
                    <objectSet>
                        <pattern type="File">%CSIDL_STARTMENU%\* [*]</pattern>
                    </objectSet>
                </include>
                <merge script="MigXmlHelper.DestinationPriority()">
                    <objectSet>
                        <pattern type="File">%CSIDL_STARTMENU% [desktop.ini]</pattern>
                        <pattern type="File">%CSIDL_STARTMENU%\* [*]</pattern>
                    </objectSet>
                </merge>
            </rules>
        </role>
    </component>
  
    <!-- This component migrates My Documents files -->
    <component type="Documents" context="User">
        <displayName _locID="miguser.mydocs">My Documents</displayName>
        <paths>
            <path type="File">%CSIDL_PERSONAL%</path>
        </paths>
        <role role="Data">
            <detects>
                <detect>
                    <condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_PERSONAL%")</condition>
                </detect>
            </detects>
            <rules>
                <exclude>
                    <objectSet>
                        <pattern type="File">%CSIDL_MYMUSIC%\* [*]</pattern>
                        <pattern type="File">%CSIDL_MYPICTURES%\* [*]</pattern>
                        <pattern type="File">%CSIDL_MYVIDEO%\* [*]</pattern>
                    </objectSet>
                </exclude>
                <include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
                    <objectSet>
                        <pattern type="File">%CSIDL_PERSONAL%\* [*]</pattern>
                    </objectSet>
                </include>
                <merge script="MigXmlHelper.DestinationPriority()">
                    <objectSet>
                        <pattern type="File">%CSIDL_PERSONAL% [desktop.ini]</pattern>
                    </objectSet>
                </merge>
            </rules>
        </role>
    </component>
    
    <!-- This component migrates My Pictures files -->
    <component type="Documents" context="User">
        <displayName _locID="miguser.mypics">My Pictures</displayName>
        <paths>
            <path type="File">%CSIDL_MYPICTURES%</path>
        </paths>
        <role role="Data">
            <detects>
                <detect>
                    <condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_MYPICTURES%")</condition>
                </detect>
            </detects>
            <rules>
                <include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
                    <objectSet>
                        <pattern type="File">%CSIDL_MYPICTURES%\* [*]</pattern>
                    </objectSet>
                </include>
                <merge script="MigXmlHelper.DestinationPriority()">
                    <objectSet>
                        <pattern type="File">%CSIDL_MYPICTURES% [desktop.ini]</pattern>
                    </objectSet>
                </merge>
            </rules>
        </role>
    </component>
   
    <!-- This component migrates Favorites -->
    <component type="System" context="User">
        <displayName _locID="miguser.favs">Favorites</displayName>
        <paths>
            <path type="File">%CSIDL_FAVORITES%</path>
        </paths>
        <role role="Settings">
            <detects>
                <detect>
                    <condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_FAVORITES%")</condition>
                </detect>
            </detects>
            <rules>
                <include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
                    <objectSet>
                        <pattern type="File">%CSIDL_FAVORITES%\* [*]</pattern>
                    </objectSet>
                </include>
                <merge script="MigXmlHelper.DestinationPriority()">
                    <objectSet>
                        <pattern type="File">%CSIDL_FAVORITES% [desktop.ini]</pattern>
                        <pattern type="File">%CSIDL_FAVORITES%\* [*]</pattern>
                    </objectSet>
                </merge>
            </rules>
        </role>
    </component>
  
    <!-- This component migrates Quick Launch files -->
    <component type="System" context="User">
        <displayName _locID="miguser.quicklaunch">Quick Launch</displayName>
        <paths>
            <path type="File">%CSIDL_APPDATA%\Microsoft\Internet Explorer\Quick Launch</path>
        </paths>
        <role role="Settings">
            <detects>
                <detect>
                    <condition>MigXmlHelper.DoesObjectExist("File","%CSIDL_APPDATA%\Microsoft\Internet Explorer\Quick Launch")</condition>
                </detect>
            </detects>
            <rules>
                <include filter='MigXmlHelper.IgnoreIrrelevantLinks()'>
                    <objectSet>
                        <pattern type="File">%CSIDL_APPDATA%\Microsoft\Internet Explorer\Quick Launch\* [*]</pattern>
                    </objectSet>
                </include>
                <merge script="MigXmlHelper.DestinationPriority()">
                    <objectSet>
                        <pattern type="File">%CSIDL_APPDATA%\Microsoft\Internet Explorer\Quick Launch [desktop.ini]</pattern>
                        <pattern type="File">%CSIDL_APPDATA%\Microsoft\Internet Explorer\Quick Launch\* [*]</pattern>
                    </objectSet>
                </merge>
            </rules>
        </role>
    </component>
 
    <!-- This component migrates user files with known extension-->
    <component type="Documents" context="System">
        <displayName _locID="miguser.userdata">User Data</displayName>
        <role role="Data">
            <rules>
                <include>
                    <objectSet>
                        <script>MigXmlHelper.GenerateDrivePatterns ("* [*.111]", "Fixed")</script>
                    </objectSet>
                </include>
<!-- Uncomment the following if you want all the files collected from the above rules to move to <systemDrive>:\data -->
<!--            
                <locationModify script="MigXmlHelper.Move('%SYSTEMDRIVE%\Data')">
                    <objectSet>
                         <script>MigXmlHelper.GenerateDrivePatterns ("* [*.111]", "Fixed")</script>
                    </objectSet>
                </locationModify>
-->
                <exclude>
                    <objectSet>
                        <pattern type="File">%PROFILESFOLDER%\* [*]</pattern>
                        <pattern type="File">%CSIDL_WINDOWS%\* [*]</pattern>
                        <pattern type="File">%CSIDL_PROGRAM_FILES%\* [*]</pattern>
                        <!--We are trying to remove system files from other windows installation on the same machine-->
                        <!--This is the best guess we can come up with, in case of these folder name localized, we might not be
                         to do whatever we have intended here-->
                        <script>MigXmlHelper.GenerateDrivePatterns ("\Program Files\* [*]", "Fixed")</script>
                        <script>MigXmlHelper.GenerateDrivePatterns ("\Winnt\* [*]", "Fixed")</script>
                        <script>MigXmlHelper.GenerateDrivePatterns ("\Windows\* [*]", "Fixed")</script>
                    </objectSet>
                </exclude>
            </rules>
        </role>
    </component>
</migration>
相关文章 热门文章
  • 玫琳凯成为腾讯最庞大的企业邮箱用户
  • 2010年中国个人电子邮箱用户规模达2.59亿 增幅大幅放缓
  • 2011年底中国电子邮箱用户总量预计将达到3亿
  • 重新发掘Net User Net工具的用户账号管理功能简直就是一个多面手
  • 通过脚本实现AD用户自动连接打印机与共享文件夹
  • “下次登录时需要更改密码”的用户如何登录OWA 2010
  • 批量启用lync用户
  • 启用 Microsoft Lync Server 2010 的一个或多个用户
  • Exchange2007通过PowerShell批量创建用户邮箱指定组成员邮箱
  • 阻止用户发送SMTP伪造邮件
  • 让IT部门与用户之间的冷战早点结束吧
  • 跟踪漫游用户
  • “http 500内部服务器错误”的解决方法
  • 利用Windows 2000 Server的RRAS实现VPN服务器
  • 用凤凰万能启动盘解决本地/域管理员密码丢失
  • Win2003 Server企业版安装配置
  • Active directory 灾难恢复
  • Windows 2000/03域和活动目录
  • 如何在vmware4上创建windows 2003群集
  • MSI文件制作全过程
  • Win2000命令全集(一)
  • Windows 2000/AD技巧
  • 此系统的本地策略不允许您采用交互式登录解决方法
  • Win2000路由的安装与设置实现不同网段互通
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号