Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐: 强烈推荐:Ylmf OS 3.0 正式版发布附迅雷高 XP系统下硬盘安装Fedora 14图文教程
搜索:
您的位置: Linux安全网 > Linux入门 > » 正文

WinXP、Win7脚本自动加域及用户资料迁移(一)

来源: 未知 分享至:

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

 该脚本使用到了几个工具:

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

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

  650) this.width=650;\" alt=\"\" src=\"/uploads/allimg/111110/0H25014N-1.png\" />

Win7文件夹分为下放netdomx64和netdomx86文件夹和Win7x64AutoAddDomain.bat和Win7x86AuroDomain.bat文件,其中netdom中放置netdom.exe,netdom.exe.mui文件,因为X64和x86平台下需要不同的netdom文件 

650) this.width=650;\" border=\"0\" alt=\"\" src=\"/uploads/allimg/111110/0H2501P3-2.jpg\" /> 650) this.width=650;\" border=\"0\" alt=\"\" src=\"/uploads/allimg/111110/0H2504240-3.jpg\" />

 

二、使用说明 1、将Domain_Migration文件夹复制到C盘根目录 2、以管理员身份运行 Auto.bat 3、如果是XP系统,第一步建议先重置系统SID,更改计算机名和系统SID后重启(win7可跳过此步);重启后再次运行Auto.bat 4、选择系统类型,按照提示操作,更改计算机名后必须重启,再次运行Auto.bat加域 5、加域后重启,使用临时域管理员登陆,再次运行Auto.bat转移用户配置文件    转移完成后,注销,使用域账号登陆 6、删除Domain_Migration文件夹 三、bat文件详细说明

 

@echo off

color 1e

title XXX公司加域迁移用户数据脚本

echo 请用系统管理员帐户运行本程序,否则加域操作无法正常进行!

echo.

ECHO ******选择操作系统类型*******

:START

echo.

echo 1: 重置系统SID(NewSID)

echo        2: WindowsXP 

echo 3: Windows7 x86

echo 4: Windows7 x64

echo q: Quit 

echo.

SET /P OS_type=系统类型[1-4 or q]:

IF "%OS_type%"=="q" GoTo EOF

IF "%OS_type%"=="1" GoTo Newsid

IF "%OS_type%"=="2" GoTo WinXP 

IF "%OS_type%"=="3" GoTo Win7x86

IF "%OS_type%"=="4" GoTo Win7x64

echo 选择有误,请重新选择 & GoTo START

 

:WinXp

echo 你选择了WinXP系统!

call "c:Domain_MigrationxpXpAutoAddDomain.bat"

exit

 

:Win7x86

echo 你选择了Win7系统32位!

if not exist "%windir%system32netdom.exe" copy "c:Domain_Migrationwin7netdomx86netdom.exe" "%windir%system32" /y

if not exist "%windir%system32zh-CNnetdom.exe.mui" copy "c:Domain_Migrationwin7netdomx86netdom.exe.mui" "%windir%system32zh-CN" /y 

if not exist "%windir%system32en-USnetdom.exe.mui" copy "c:Domain_Migrationwin7netdomx86netdom.exe.mui" "%windir%system32en-US" /y 

REM 调用Windows 7 x86加域迁移脚本

call "c:Domain_Migrationwin7Win7x86AutoAddDomain.bat"

exit

 

:Win7x64

echo 你选择了Win7系统64位!

if not exist "%windir%system32netdom.exe" copy "c:Domain_Migrationwin7netdomx64netdom.exe" "%windir%system32" /y

if not exist "%windir%system32zh-CNnetdom.exe.mui" copy "c:Domain_Migrationwin7netdomx64netdom.exe.mui" "%windir%system32zh-CN" /y 

if not exist "%windir%system32en-USnetdom.exe.mui" copy "c:Domain_Migrationwin7netdomx64netdom.exe.mui" "%windir%system32en-US" /y

REM 调用Windows 7 x64加域迁移脚本

call "c:Domain_Migrationwin7Win7x64AutoAddDomain.bat"

exit

 

:Newsid

echo 你选择了重置系统SID并改计算机名

set a=%computername%

echo 当前计算机名为:%a%

set /p newname=将用 NewSID 重置SID并改计算机名,请输入新计算机名:

if "%newname%"=="" echo 计算机名不能为空,请重新选择。&pause&endlocal&cls&goto Start

echo 即将更新SID,计算机名将从 %computername% 更改为 %Newname%   注:更改SID完成后将重新启动计算机

pause

c:Domain_Migrationnewsid /a %Newname%

goto end

 

:EOF

Exit

**************************************************************************************************************************

REM 脚本结束

2、WinXPAutoAddDomain.bat,更改计算机名,加域,迁移用户配置文件

 @echo off

color 1e

cd /d C:Domain_Migrationxp

::功能说明与使用说明注意事项

ECHO 请在使用本脚本前修改相应的参数为实际值

set dns1=10.2.0.51

set dns2=10.2.0.41

REM 请设置自己真实环境的域名、域管理员账号和密码

set domainname=xxx.com

set domainadminname=xxx@xxx.com

set domainadminpassword=xxx

::判断是否已经加入域,如果加入了则直接跳转

::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%)


Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史