让你的任意文件显示个性图标

发表于

软件来源。http://bbs.wuyou.com/viewthread.php?tid=120136

一、功能,可以让你的一些没有图标(或只有通用图标)的文件,显示自定义的个性图标。

二、效果图。(测试只用MOU和WIM格式测试)

三、扩展注册方法(重要,如果没有注册成功就不能正常显示图标)

直接执行附件的 注册扩展.cmd 程序就可以了
 默认只注册MOU和WIM格式,如果需要其它的格式请打开辑编这个CMD文件,按照里面的说明添加

四、软件使用说明(自己看图,我这里就不再解释了)

五。下载
通用图标扩展

批处理检测外部命令是否存在的模块

发表于

编写批处理时经常需要用到外部命令,一些常用的命令一般的系统都会有,但是一些精简的系统上可能就没有了,如果没有做判断就可能导致程序出现未知的错误.

一般检测文件是否存在可以使用

IF EXIST filename 执行某个命令…

但是这样只能检测当前目录下或指定目录的,而批处理的外部命令通过PATH变量来确定位置的.正常情况下可以通过以下命令来确定这个外部命令是否存在,

for %I in (find.exe) do if “%~$PATH:I”==”” echo find 命令不存在

为了以后方便就写了一个模块,用于判断命令是否存在.

@echo off
cls&echo.IF_EXIST.cmd by chenall 2009-09-29 http://www.chenall.net
echo.
echo.功能:
echo.   从环境变量PATH,当前目录,程序所在目录中查找指定的文件,如果找到就显示并返回值0,否则就返回1
echo.
echo.使用方法:
echo.   直接复制下面::模块开始::到::模块结束::之间的代码到你的批处理程序中.然后使用以下命令调用.
echo.   CALL :IF_EXIST xxxx.xxx
echo.
echo.使用例子:
echo.   CALL :IF_EXIST find.exe || echo.find.exe 不存在
echo.
echo.注:只是简单查找,并且不支持查找子目录.主要用于批处理中判断某个外部命是否存在.
echo.   实际应用中可以删除echo %~$PATH:1语句删除输出显示,或者在调用时加一个>nul
echo.
echo.
ECHO.以下是测试命令.
ECHO.查找FIND.EXE
CALL :IF_EXIST FIND.EXE || ECHO.FIND.EXE 不存在
CALL :IF_EXIST FIND.EXE >nul ||echo.出错了,find.exe不存在.
ECHO.查找noEXIST.FILE
CALL :IF_EXIST noEXIST.FILE || ECHO.noEXIST.FILE 不存在
PAUSE
GOTO :EOF

::::::::::::::::::::::::模块开始::::::::::::::::::::::::
:IF_EXIST       BY chenall QQ:366840202     2009-09-29
SETLOCAL&PATH %PATH%;%~dp0;%cd%
if "%~$PATH:1"=="" exit /b 1
echo %~$PATH:1
exit /b 0       http://www.chenall.net
:::::::::::::::::::::::模块结束:::::::::::::::::::::::::

[转]批处理写的俄罗斯方块游戏

发表于

绝对经典的批处理游戏!!!

本游戏需要三方choice.exe支持,请自行搜索下载

来源:批处理写的俄罗斯方块游戏

@echo off&rem 俄罗斯方块游戏,由netbenton编写,在bathome首发,完成时间:2009年9月25日 ver 2.0
if "%1" equ "para2" goto :para2

set        "d-v=for %%a in (!str!) do set/a one=0x%%a,x=one/4+n,y=one%%4+m&(for %%b in ("r!x!.!y!") do if "!%%~b!" equ " " (set r!x!.!y!=■) else (set err=1))"
::函数d-v,把str中的图标数据,放置到总坐标空间中,如果有覆盖,则err=1。调用方法:(%d-v%)
::变量使用:one  x  y

set "d-e=set aec=!cr!!cr!        ┌───────────┐!cr!&(for /l %%a in (2,1,#) do for %%b in ("│!ebuf:@=%%a!│  !ebu%%a!") do set aec=!aec!        %%~b!cr!)&cls&echo;!aec!        └───────────┘"
::函数d-e,把总坐标空间显示出来,调用方法:(%d-e:#=行数%)
set ebu4=第!guan!关
set ebu6=总分:!fen!
set cr=^


::各种图标定义
set ga1=0 1 5 6
set ga2=1 4 5 8
::■■
::  ■■
set gb1=1 2 4 5
set gb2=0 4 5 9
::  ■■
::■■

set za1=4 5 6 7
set za2=1 5 9 d
::■■■■

set qa1=1 5 9 8
set qa2=0 4 5 6
set qa3=0 1 4 8
set qa4=0 1 2 6
::■■
::  ■
::  ■

set qb1=0 4 8 9
set qb2=0 1 2 4
set qb3=0 1 5 9
set qb4=2 4 5 6
::■■
::■
::■

set ta1=0 1 4 5
::■■
::■■

set sa1=0 1 2 5
set sa2=1 4 5 9
set sa3=1 4 5 6
set sa4=0 4 5 8
::  ■
::■■■
set tw1=0 1
set tw2=0 4

set on1=0
set on2=0

set sh1=1 4 5 6 9
set sh2=1 4 5 6 9

set ao1=0 1 2 4 6
set ao2=0 1 4 8 9
set ao3=0 4 5 6 2
set ao4=0 1 5 8 9

set tt1=0 1 2 5 9
set tt2=0 4 8 5 6
set tt3=1 5 8 9 a
set tt4=2 4 5 6 a


::cdef
::89ab
::4567
::0123

echo 0 2 >%~n0.tmp
start "aswd" %0 para2
::起动控制窗口

set k3=k%%=mx,k+
set k4=down
set k1=m-
set k2=m+
set k5=t+
::按键定义

setlocal enabledelayedexpansion
for /l %%a in (0,1,10) do (set "ebuf=!ebuf!^!r@.%%a^!")
for %%a in (sa_4 ta_1 qb_4 qa_4 za_2 ga_2 gb_2 tw_2 on_2 sh_2 ao_4 tt_4) do (
        for /f "tokens=1,2 delims=_" %%b in ("%%a") do (
                set _%%b=%%c
                for /l %%d in (1,1,%%c) do set/a nx+=1&set ran!nx!=%%b%%d
        )
)
::定义各种图型的可变型数,及单个图的随机号        

:restart
for /l %%a in (0,1,18) do (for /l %%b in (0,1,10) do set r%%a.%%b= )
set/a fen=0,guan=1
::初始化坐标空间18行,10列


:loop
set/a "m=4,t=2,n=1,down=450/(guan<<2),bti=0"
set/a r=!random!%%nx+1
set err=

set ttr=!_ttr!
set _ttr=!ran%r%!
::随机取一个图标,

if not defined ttr goto :loop

set mx=!_%ttr:~,2%!
set k=%ttr:~2%
set str=!%ttr%!

set _str=!%_ttr%!


setlocal enabledelayedexpansion
for %%a in (!_str!) do set/a one=0x%%a,x=one/4+8,y=one%%4&set kk!x!.!y!=■
for /l %%a in (8,1,11) do for /l %%b in (0,1,3) do (
        if defined kk%%a.%%b (set kk%%a=!kk%%a!!kk%%a.%%b!) else (set kk%%a=!kk%%a! )
)
endlocal&set ebu8=%kk8%&set ebu9=%kk9%&set ebu10=%kk10%&set ebu11=%kk11%
::对预备图标的处理


:cont
for /f "tokens=1,2" %%a in (%~n0.tmp) do (
        if %%b geq 6 (call :error %%b&exit)
        if %%a neq !test! (
                set bs=!str!&set/a bm=m,bk=k
                set/a !k%%b!=1
                if "%%b" equ "3" (for %%b in ("!ttr:~,2!!k!") do set str=!%%~b!)
                setlocal enabledelayedexpansion
                (%d-v:#=3%)
                rem 调用函数把图标点放置到总坐标空间
                if defined err (
                        endlocal
                        set/a m=bm,k=bk
                        set str=!bs!
                        if "%%b" equ "4" goto :jmpout
                ) else (
                        (%d-e:#=18%)
                        rem 调用显示函数
                        endlocal
                )
        )
        set test=%%a
)


set ti=1!time:~7,1!!time:~9,2!
if !ti! lss !bti! (set /a tn=ti-bti+1000) else (set /a tn=ti-bti)
if !tn! gtr !down! (
        set/a bti=ti,n+=1
        setlocal enabledelayedexpansion
        (%d-v:#=3%)
        if defined err (
                endlocal
                goto :jmpout
        ) else (
                (%d-e:#=18%)
                endlocal
        )
)

goto :cont

:jmpout
set/a n-=1
(%d-v:#=3%)
set m=18

for /l %%a in (18,-1,2) do for %%b in ("!ebuf:@=%%a!") do if "%%~b" neq "■■■■■■■■■■■" (set e!m!=%%~b&set/a m-=1)

if !m! neq 1 (
        for /l %%a in (!m!,-1,2) do set "e%%a=           "
        for /l %%a in (18,-1,2) do (
                for /l %%b in (0,1,10) do set r%%a.%%b=!e%%a:~%%b,1!
        )
        set/a "fen=fen+(m-1)*10,guan=fen/150+1"
)

if !n! leq 2 (
        echo 游戏结束!
        ping -n 3 127.1 >nul
        goto :restart
)
goto :loop

:para2
mode con: cols=30 lines=2
echo a左 d右 w转 s加速 q退出
:p_lp
set/a n=n%%10+1
choice /c adwsgq /n >nul
>%~n0.tmp echo;%n% %errorlevel%
if %errorlevel% geq 6 exit
goto :p_lp

:error
if %1 equ 6 echo 谢谢使用,再见。。。
if %1 gtr 6 echo 对不起!choice.exe 文件不存在,不能运行。。。
ping -n 3 127.1 >nul
goto :eof

一个命令禁用U盘,USB硬盘设备

发表于

有时候为了安全着想,需要禁用U盘,USB硬盘等储存设备,一般可以通过以下两种方式.

  1. 在BIOS中禁用
  2. 使用软件禁用

在BIOS中禁用比较麻烦,而且一般情况下不能只禁用U盘,会连其它USB设备都用不了.用软件一般都比较强大(未用过).

其实一般情况下,可以通过禁止安装USB驱动来实现(网上的资料有许多,通过删除U盘驱动来实现具体删除的文件名USBSTOR.*)

为了方便我自己一般使用一个命令来实现,只要禁用一个驱动服务就可以了.

命令如下.

sc config usbstor start= demand

注意:=后面有一个空格.

功能:把usbstor的服务设为手工启动.这样系统重启后,如果没有启用这个服务之前插上U盘等都是不能使用的.

需要使用时可以使用以下命令开启服务就可以了.(开启了就不能再关闭,用完了就重启系统,这样就可以防止一般人使用U盘了)

临时开启的命令如下:

net start usbstor

说明:上面的demand如果改成disabled就是直接禁用了,不能直接使用net start usbstor来临时开启.

使用批处理自动定时备份文件到邮箱

发表于

因为需要,想让系统自动定时备份我的文件到邮箱上(只备份更新或新增加的文件),在网上找了许多软件要么是收费的,要么使用不方便.后来想起了以前收藏的一段 VBSCRIPT发送邮件的代码就想到是否可以利用批处理自己写一个脚本来实现,所以就有了以下的代码,有兴趣的朋友可以一起继续完善,现在只能根据文件大小,日期.来确定是否上传.

批处理文件自动上传到邮件备份.功能:自动上传有更新的文件到指定的邮箱中(邮箱在SENDMAIL.VBS里面指定)

@echo off
::设定要备份的文件所在目录
set 备份目录=D:\Web\webdisk\USER\justway\佳为企管系列__商品流通 (商场,超市,百货,批发商贸,电器,家居,加工)

::首次运行检测
echo.%date% %time%  启动,正在检测.....>>%~dp0sendmail.log
if not exist "%~dp0Files.lst" goto :firstrun

::转入上面定义的备份目录.
pushd "%备份目录%"

::检测文件是否有更新
for %%i in (*.*) do call :check "%%i"

::重新创建文件信息列表files.lst(用于对比)
del "%~dp0files.lst"
for %%i in (*.*) do echo.%%i,%%~zi,%%~ti>>"%~dp0Files.lst"

popd
echo.%date% %time%  检测完成.....>>%~dp0sendmail.log
goto :eof


:check
Set send=
::根据上次备份时保存的文件列表对比文件的,时间,大小.如果不一样就通过sendmail.vbs命令行把文件上传到邮箱中备份.
::    如果文件没有在列表中说明是新的文件.
find /i %1 "%~dp0files.lst" || Set send=新的文件
if not defined send for /f "usebackq skip=2 tokens=1,2,3 delims=," %%i in (`find /i %1 "%~dp0files.lst"`) do (
    if "%%~i"=="%~1" (
        if not "%%j"=="%~z1" set send=文件大小发生改变.
        if not "%%k"=="%~t1" set send=文件日期发生改变.
    )
)
:: 记录日记.
if defined send echo.check,%~1,%send% >>%~dp0sendmail.log

:: 如果有设定了send变量说明文件是要上传的,就调用程序发送文件
if defined send cscript /nologo "%~dp0sendmail.vbs" "%~f1" "%1">>%~dp0sendmail.log

::%~f1    前面传入文件的完全路径. %1 ,传入的文件参数.
goto :eof

:firstrun
pushd "%备份目录%"
for %%i in (*.*) do echo.%%i,%%~zi,%%~ti>>"%~dp0Files.lst"
for %%i in (*.*) do cscript /nologo "%~dp0sendmail.vbs" "%%~fi" "%%~ni">>%~dp0sendmail.log
popd
goto :eof

rem 附:每天定时自动执行的命令.使用管理员的权限执行就可以了.
::  at 时间 /every:M,T,W,Th,F,S,Su "执行文件路径"
::例子,在每天的2点备份,本文件放在E:\TEST\autobackup.cmd
::
:: at 02:00 /every:M,T,W,Th,F,S,Su "E:\TEST\autobackup.cmd"

PS:因为我需要上传的文件都在50MB以内,而大多邮箱的附件在15-50MB左右.我使用的是QQ邮箱有50MB有附件大小.由且邮箱容量是无限的,所以就用来备份文件了.呵呵,利用一下.

[转] Windows 下命令行/VBS脚本,发送带附件邮件.

发表于

利用VBScript发送邮件,以前从网上找的代码,不知原来的出处了.也不知作者是何人…..

挺有用的脚本,我就一直在使用这个脚本来发邮件,还可以带附件.放在这里做个备份,免得到时又找不到了.

目前我就通过批处理配合这个脚本来自动备份我的一些文件到邮箱里面.每天自动定时备份.

反正许多邮件的空间是无限的,,用来作备份也是挺不错的.一般都可以上传30-50MB附件,基本上够用了.

'code by NetPatch
'VBS发送邮件参数说明
'You_Account:你的邮件帐号
'You_Password:你的邮件密码
'Send_Email: 主要邮件地址
'Send_Email2: 备用邮件地址
'Send_Topic: 邮件主题
'Send_Body:邮件内容
'Send_Attachment:邮件附件
function Send_mail(You_Account,You_Password,Send_Email,Send_Email2,Send_Topic,Send_Body,Send_Attachment) 
    You_ID=Split(You_Account, "@", -1, vbTextCompare) 
    '帐号和服务器分离
    MS_Space = "http://schemas.microsoft.com/cdo/configuration/"
    '这个是必须要的,不过可以放心的事,不会通过微软发送邮件
    Set Email = CreateObject("CDO.Message")
    Email.From = You_Account
    '这个一定要和发送邮件的帐号一样
    Email.To = Send_Email         '主要邮件地址

    If Send_Email2 <> "" Then
    Email.CC = Send_Email2        '备用邮件地址
    End If

    Email.Subject = Send_Topic        '邮件主题
    Email.Textbody = Send_Body        '邮件内容

    If Send_Attachment <> "" Then
    Email.AddAttachment Send_Attachment     '邮件附件
    End If

    With Email.Configuration.Fields
    .Item(MS_Space&"sendusing") = 2       '发信端口
    .Item(MS_Space&"smtpserver") = "smtp."&You_ID(1) 'SMTP服务器地址
    .Item(MS_Space&"smtpserverport") = 25     'SMTP服务器端口
    .Item(MS_Space&"smtpauthenticate") = 1     'cdobasec
    .Item(MS_Space&"sendusername") = You_ID(0)    '你的邮件帐号
    .Item(MS_Space&"sendpassword") = You_Password   '你的邮件密码
    .Update
    End With
    Email.Send
    '发送邮件
    Set Email=Nothing
    '关闭组件

    Send_Mail=True 
    '如果没有任何错误信息,则表示发送成功,否则发送失败 
    If Err Then 
    Err.Clear 
    Send_Mail=False 
    End If 
End Function

'以下是利用上面的函数发送带附件的邮件例子

Attachment=wscript.Arguments(0)
Topic="chenall_soft;"+Attachment
Set objIE = CreateObject("InternetExplorer.Application") 
objIE.Navigate("about:blank") 
Body = objIE.document.parentwindow.clipboardData.GetData("text") 
objIE.Quit
set objie=nothing

'set oArgs = wscript.Arguments
'while iIndex < oArgs.Count
'wscript.echo oArgs(iIndex)
'       iIndex = iIndex + 1
'wend

If Send_Mail("USERNAME","PASSWORD","sendto","",Topic,Body,Attachment)=True Then
    Wscript.Echo "发送成功"
Else
    Wscript.Echo "发送失败"
End If

[分享]FiraDisk Grub4dos虚拟磁盘的WIN驱动

发表于

Windows 下 Grub4dos仿真盘的驱动.

可以支持grub4dos map—mem出来的光驱,软驱,硬盘,支持多个虚拟驱动器。

另外,也支持直接在boot.ini加载各种镜像,无488M限制。

感谢zw2312914的推荐: http://bbs.znpc.net/viewthread.php?tid=5742,感谢软件作者karyonix的分享.

以下内容摘自上面时空论坛的一些原文.

谢谢 karyonix 。此驱动类似 windrv 大的wdsys。即可以在windows环境使用grub4dos(—mem方式)仿真的镜像(包括iso)。

详见:http://www.boot-land.net/forums/index.php?showtopic=8804

参考:http://www.boot-land.net/forums/index.php?showtopic=8168

希望有更多的朋友能测试下。

原帖由 fujianabc 于 2009-9-2 16:19 发表 http://bbs.znpc.net/redirect.php?goto=findpost&pid=41794&ptid=5742

看了一下,名叫firadisk。

貌似已经超级强大了,可以支持grub4dos map—mem出来的光驱,软驱,硬盘,支持多个虚拟驱动器。

另外,也支持直接在boot.ini加载各种镜像,无488M限制。

支持x86/x64系统,但对于64位系统,尚无法使用4GB以上的内存,grub4dos似乎也不行。内存盘上限大概是3.25GB

我已经测试过了,很强大,0pe或Micrope直接用这个驱动替换里面的wdsys.sys驱动,可以正常使用.

其它PE只需要在内核中加入这个驱动,就可以直接整体ISO来启动,再也不用担心ISO启动找不到外置的问题了.

在PE中添加该驱动只需在TXTSETUP.SIF中添加以下语句,然后把firadisk.sys文件放到system32\drivers目录下就可以了

[scsi.load]
Firadisk=Firadisk.sys,4

整体ISO启动方法例子.

 title pe from iso
 map --mem /xxxxpe.iso (0xff)
 map --hook
 chainloader (0xff)

还有一些想法,我还没有条件测试,

  1. 把这个驱动加入到WINDOWS的安装盘中,这样是不是就可以直接以

    map --mem /winxp.iso (0xff)
    map --hook
    chainloader (0xff)
    

    的方式来安装XP或其它系统了

  2. 制作Ram系统,应该是支持的了.只需要在WINDOWS系统中加入这个驱动,然后把系统打包成一个镜像,用GRUB4DOS的map —mem来加载启动.

也可以到这个贴子看看由无忧论坛 天风 制作的 RAM WINDOWS 7

后注:这个驱动还是持续更新中,希望越来越强大,不知是否以后会支持非mem的磁盘,如果可以的话就更强大了(新版已支持)…..让我们一起期待吧.

上面的已经测试过,可以直接用于ISO启动安装WIN XP/2003系统,或PE.

具体情况: http://bbs.wuyou.com/viewthread.php?tid=148686&extra=page%3D1

一键GHOST备份恢复,GHOST安装器设计新思路

发表于

看起来可能有点乱^_^.实现起来也是挺麻烦的,暂时只是我的一个想法,仅供有兴趣的朋友研究尝试.放在这里做个记录,以后有兴趣再搞个成品.

最终的理想效果.

  • 安装/卸载/使用方便简单,(只需改名复制或删除文件就可以了)
  • 进入DOS时无需再加载NTFS等驱动,也不需要查找操作,直接就开始备份或恢复.
  • 完全自定义,或模块化.

思路:

  • 首先,启动过程.
    目前网络上的一键还原软件,大都是基于GRUB4DOS的,通过在BOOT.INI中添加相应菜单项或直接加入到MBR中来启动的.需要修改
    我的思路是:

    1. 直接把GRUB4DOSGRLDR改名为NTLDR放在系统盘代替系统的NTLDR来启动.原来的NTLDR可以改名为NTLDR.LDR或其它名子.(VISTA以上的系统可以改为BOOTMGR),这样的安装方式的优点,安装时不需要做许多修改就可以用,只需把原来的系统启动文件改名,然后用定制的GRLDR代替就好了.
    2. GRUB4DOS接管系统的启动,然后根据某些标记(某个文件的内容)来自动选择是启动到系统还是进入备份还原操作.
    3. 当然了还可以在启动时通过按某个按键进入恢复备份操作.
  • 执行过程.
    通过在WINDOWS界面下选择备份或恢复操作(把这些操作存在一个特定的文件中)
    启动时通过GRUB4DOS的DD功能把这个文件的内容转到启动IMG里面.
    启动IMG执行定义的操作.

  • 基本文件内容

    GHOST.ZIP        GHOST主程序文件(方便自定义,由GRUB4DOS启动时自动载入到上面的IMG中)
    ADDINS.ZIP        扩展文件,自定义的扩展文件,同样自动载入到上面的IMG中.
    config.INI        配置文件,里面定义了所有的操作.同样由GRUB4DOS动态加入到主IMG中.
    

一个主IMG文件(里面只包含启动基本的文件,其它的文件通过GRUB4DOS动态加入)

img自动装载以上文件,然后根据config.ini的内容直接进行备份或恢复操作.

成品参考:

QGHO 快速一键恢复程序
基于GRUB4DOS的硬盘工具箱
MODBOOT

防病毒木马几则

发表于

现在病毒木马横行,很多人的电脑经常被病毒所侵,从而造成资料密码被盗.如果防止这一现象呢?

实际上除了一些主动传播的病毒以外,大部份的病毒都是用户自己不知不觉装上去的,所以要防毒,主要还是要靠用户自己小心,不要太相信杀毒软件,因为它不是万能的也不具有"智慧",很多病毒只要稍微改变一下杀软就不认识它了,就可以在电脑上横行了.

[分享]Hack Microsoft iSCSI Software Target 安装

发表于

一些介绍.

Microsoft收购String Bean的WinTarget软件后,已将该iSCSI target(目标)技术将通过OEM以Windows Storage Server 2003 R2的功能包提供,命名为Microsoft iSCSI Software Target,可用于标准版(Standard Edition)或企业版(Enterprise Edition)的Windows Storage Server 2003 R2。通过将这个Microsoft iSCSI Software Target与OEM合作伙伴的硬件集成,微软表示部署块和文件存储设备的成本将下降25%之多。
Microsoft iSCSI Software Target 结合Windows Storage Server 2003 R2可提供一个高性价比的IP SAN解决方案,同时支持File(文件)和Block(块)级别的数据传输;无需改变现有系统架构,直接应用在现有网络结构中,安装、实施、维护、升级均不影响现有作业;其管理方式将被整合在Microsoft Management Console (MMC) 用户界面 中,实现快捷方便的操作;并可实现snapshots快照、backup备份及clustering集群应用;Microsoft iSCSI Software Target 目前只能用于Windows Storage Server 2003 R2 Standard或Enterprise版本上。

根据介绍,它只能安装在Windows Storage Server 2003 R2 Standard或Enterprise版本上.

如果是直接安装确实是不行的.图下面图示.会出现一个错误提示.

如果是其它系统就不行了吗?不死心就研究了一下安装程序里面的相关文件,后来在一个update_w03.inf文件中找到了关键所在具体在下图.

只要按照上面的要求修改注册表就可以安装了.

  1. 修改[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
    ProductName="Microsoft Windows Server 2003 R2"
  2. 在 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft]
    下新建项,ServerAppliance
    然后在新建的项下再新建一个Edition的Dword值为2或3就可以了.

    整理后的注册表内容.如果不懂得修改,只要把下面的内容存为REG文件,直接双击导入就可以了.

    REGEDIT4
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerAppliance]
     "Edition"=dword:00000003
    
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion]
     "ProductName"="Microsoft Windows Server 2003 R2"
    

导入后再运行安装程序,发现可以正常安装了.

安装后的效果图.

是从WSS安装盘中提取出来的3.0版,网上有一个3.2的版本,没下到,有下到的朋友麻烦发一个给我,谢!