windows下迁移网站确实不如linux下这么方便.
迁移一个两个那是好办.要是迁个虚拟主机.动不动五六百个呢?光是添加用户名密码,绑定域名,配置ntfs权限.每一项都能让人头大.何况要是再来个五六台服务器就三四千了.要是一个一个迁会要命的.
不光是迁移.或者是因为服务器运行久了.慢了,中毒了.本文方法同样适用.要重装系统.
下面这些方法都是尽量用身边最常用的软件,最能就地取材的方法.不借助于第三方,或偏门少见的软件实现.
一.第一步首先搞到你所有用户名和密码.
windows下的密码是搞不到的.存在sam文件中,并且是加密的.开机状态是不可以存取的.破密码的工具也有,可以用lrc,dump一类的工具进行爆破,但是现在我们不是要搞黑客.是自己的服务器.不用这么麻烦.何况就算要黑,跑一个用户的密码也是要跑很久的.
只需要一条命令开始运行打开cmd.exe
net user > c:\userlist.txt
net user最多是三列的会像这样的格式
user1 user2 user3
得到一个所有用户的用户名列表.稍微整理一下,去掉超级管理员,guest等等非网站用户.弄成一列的形式.变成
user1
user2
user3
全选,把它贴到excel中.
这样在A1单元格填的就是user1,选中d1列输入一个数字,拖动填充柄往下拉.会自动自增帮你填好.拉到和用户名一样多就行.
然后在c1列点击fx,等号后输入函数,对d1列的数字进行任意一个tan,sin之类的正,余弦,正,余割都行.会生成一些随机小数位.同样拖动填充柄,往下拉,它会自动帮你填好相对单元格地址引用.
然后,文件,另存为,保存时格式选 CSV(逗号分隔).csv存为userlist.csv
这个文件表现如下
user1,0.3365455
user2,0.5456464
user3,0.2123132
目的就是为了构造
用户名,密码
中间以逗号分隔的列表便于后面调用.这个列表构造方法也很多.不一一例举.上面只是给出其中一种方法.
如果有虚拟管理主机软件如prima,freehost,华众,蓝芒一类.更简单.直接数据库里面导出用户名密码列表即可.
如星外,7i24可以在SQLserver查询分析器执行
select ftpname,ftppassword,serverlistid from FreeHost.FreeHost_Product_Host where serverlistid=1 or serverlistid=2 order by serverlistid
serverlistid可以根据实际受控端来控制是否要一起导出.
在查询分析器右键,另存为即可得到一个userlist.csv的文件.
二.导出IIS配置备份
del iismove.SC0
del iismove.MD0
iisback.vbs /backup /b iismove /e iismove /overwrite /v 0
copy C:\WINDOWS\system32\inetsrv\MetaBack\iismove.SC0 iismove.SC0
copy C:\WINDOWS\system32\inetsrv\MetaBack\iismove.SC0 iismove.MD0
以上是命令行的实现.图形化操作方法也附一个.
iis管理器中最顶级处,右键,所有任务,配置备份、还原
点创建备份,备份名称随便输入,勾选使用密码加密备份,一定要勾,不勾不能在别的电脑还原。
把C:\WINDOWS\system32\inetsrv\MetaBack中生成的MD0和SCO文件复制到新服务器中的
C:\WINDOWS\system32\inetsrv\MetaBack中。
按上面的方法,恢复还原即可。
三.目标服务器IIS预配置
复制前面生成的userlist.csv和批处理文件放同个目录
md d:\freehost
for /f "tokens=2* delims== " %%b in ( 'wmic group where name^= "IIS_WPG " get SID /value^|findstr /i "sid= " ') do (set WPG=%%b)
echo y|cacls.exe d:\freehost /c /s:D:(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICI;FR;;;%WPG%)
net localgroup freehost /add
for /f "delims=, tokens=1,2 " %%i in (userlist.CSV) do md d:\freehost\%%i\web
for /f "delims=, tokens=1,2 " %%i in (userlist.CSV) do md d:\freehost\%%i\db
for /f "delims=, tokens=1,2 " %%i in (userlist.CSV) do md d:\freehost\%%i\log
for /f "delims=, tokens=1,2 " %%i in (userlist.CSV) do net user %%i %%j /add /expires:never /passwordchg:no /times:all
for /f "delims=, tokens=1,2 " %%i in (userlist.CSV) do net localgroup freehost /add %%i
for /f "delims=, tokens=1,2 " %%i in (userlist.CSV) do net localgroup users /delete %%i
for /f "delims=, tokens=1,2 " %%i in (userlist.CSV) do setacl.bat %%i