我的实验环境是windows xp和windows 2003
我们知道,在windows中是有很多的命令行工具是可以在cmdline下运行的,通俗的讲就是我常用的命令。我们在图形界面下设置系统的相关设置的时候,有很多的时候就是调用这些小工具进行调整!在我们日常的系统维护和安全防护中,时常用到一些工具,比如net,ipconfig,ping,netstat等,但是又有多少的人去挖掘过系统的那些不是经常用的好东西呢?呵呵。这里就补补这块空白吧,也许不是很全面,也很正常,毕竟系统的挖掘是个漫长的过程,这里就列出我觉有比较的有意思的小工具吧!这些工具清一色的在%systemroot%\system32目录下list:bootcfg.execacls.exechgport.exe 2003chgusr.exe 2003chkdsk.execlip.exe 2003 control.exediantz.exediskpart.exedriverquery.exeexpand.exeforfiles.exe 2003fsutil.exegetmac.exeGPRESULT iexpress.exelogoff.exe nlb.exe 2003qprocess.exerunas.exesc.exesysedit.exetakeown.exe 2003tsdiscon.exewhere.exe 2003mrt上面介绍的工具有些是2003才有的!!下面我就依次的来介绍了!
No.1 bootcfg
info:启动加载程序设置工具
这个主要是对windows目录下的boot.ini文件进行编辑操作的工具。
参数:
/Copy 生成一个现有的启动项目的副本。
/Delete 从 BOOT.INI 文件删除现有启动项目。
/Query 显示当前启动项目和它们的设置。
/Raw 允许用户指定要添加的任何开关。
/Timeout 允许用户更改超时值。
/Default 允许用户更改默认启动项目。
/EMS 允许用户为无头支持配置 /redirect 开关
/Debug 允许用户为远程调试指定端口和波特率。
/Addsw 允许用户添加特定的开关。
/Rmsw 允许用户删除特定的开关。
/Dbg1394 允许用户为调试配置 1394 端口。
/? 显示帮助消息。
这里就举几个实例!
No.2 cacls
info;显示或者修改文件的访问控制列表(ACL)
参数:
CACLS filename [/T] [/M] [/S[:SDDL]] [/E] [/C] [/G user:perm] [/R user [...]]
[/P user:perm [...]] [/D user [...]]
filename Displays ACLs.
/T 更改当前目录及其所有子目录中指定
文件的 ACL。
/M 将装入卷的 ACL 更改到目录。
/S 显示 DACL 的 SDDL 字符串。
/S:SDDL 用 SDDL 字符串中指定的 ACL 替换
(与 /E、/G、/R、/P 或 /D 一起使用时无效)。
/E 编辑 ACL 而不替换。
/C 在出现拒绝访问错误时继续。
/G user:perm 赋予指定用户访问权限。
Perm 可以是: R 读取
W 写入
C 更改(写入)
F 完全控制
/R user 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。
/P user:perm 替换指定用户的访问权限。
Perm 可以是: N 无
R 读取
W 写入
C 更改(写入)
F 完全控制
/D user 拒绝指定用户的访问。
在命令中可以使用通配符指定多个文件。也可以在命令中指定
多个用户。
缩写:
CI - 容器继承。
ACE 会由目录继承。
OI - 对象继承。
ACE 会由文件继承。
IO - 只继承。
ACE 不适用于当前文件/目录。
实例:
No.3 chgport(这要详细的搜索下)
为 DOS 应用程序兼容性列出或改变 COM 端口映射。
CHANGE PORT [portx=porty | /D portx | /QUERY]
portx=porty 将端口 x 映射到端口 y。
/D portx 删除端口 x 的映射。
/QUERY 显示当前映射端口。
No.4 chgusr
CHANGE USER {/EXECUTE | /INSTALL | /QUERY}
/EXECUTE 启用执行模式(默认)。
/INSTALL 启用安装模式。
/QUERY 显示当前设置。
No.5 chkdsk
CHKDSK [volume[[path]filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:size]]
volume 指定驱动器号(后面跟一个冒号)、装入点或卷名。
filename 仅用于 FAT/FAT32: 指定要检查是否有碎片的文件。
/F 修复磁盘上的错误。
/V 在 FAT/FAT32 上: 显示磁盘上每个文件的完整路径和名称。
在 NTFS 上: 如果有清除消息,将其显示。
/R 查找不正确的扇区并恢复可读信息(隐含 /F)。
/L:size 仅用于 NTFS: 将日志文件大小改成指定的 KB 数。如果没
有指定大小,则显示当前的大小。
/X 如果必要,强制卷先卸下。卷的所有打开的句柄就会无效
(隐含 /F)。
/I 仅用于 NTFS: 对索引项进行强度较小的检查。
/C 仅用于 NTFS: 跳过文件夹结构的循环检查。
/I 和 /C 开关跳过卷的某些检查,减少运行 Chkdsk 所需的时间。
实例:
No.6 clip
描述:
将命令行工具的输出重定向到 Windows 剪贴板。这个文本输出可以被粘贴
到其他程序中。
参数列表:
/? 显示帮助消息。
示例:
DIR | CLIP 将一份当前目录列表的副本放入 Windows 剪贴板。
CLIP < README.TXT 将 readme.txt 的一份文本放入 Windows 剪贴板。
No.7 control
就是控制面板,以后可以直接在cmd里运行控制面板了
No.8 diantz
Microsoft (R) Cabinet Maker - Version 5.2.3790.3959
Copyright (c) Microsoft Corporation. All rights reserved..
MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]
MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]
source File to compress.
destination File name to give compressed file. If omitted, the
last character of the source file name is replaced
with an underscore (_) and used as the destination.
/F directives A file with MakeCAB directives (may be repeated).
/D var=value Defines variable with specified value.
/L dir Location to place destination (default is current directory).
/V[n] Verbosity level (1..3).
实例
No.9 diskpart(内容太多了,推荐参考
http://baike.baidu.com/view/1578663.htm)
No.10 driverquery
DRIVERQUERY [/S system [/U username [/P [password]]]]
[/FO format] [/NH] [/SI] [/V]
描述:
允许管理员显示已安装设备驱动程序
的列表。
参数列表:
/S system 指定要连接到的远程系统。
/U [domain\]user 执行命令执行的用户上下文。
/P [password] 指定所给用户上下文的密码。
/FO format 指定要显示的结果类型。与命令行开关一起传递
的有效值是 "TABLE"、"LIST"、" CSV"。
/NH 指定“列标题”不应该在屏幕输出中
出现。只对 "TABLE" 和 "CSV" 格式有效。
/SI 提供有关已签名驱动程序的信息。
/V 显示详细任务输出。对签名的驱动程序无效。
/? 显示该帮助消息。
例如:
DRIVERQUERY
DRIVERQUERY /FO CSV /SI
DRIVERQUERY /NH
DRIVERQUERY /S ipaddress /U user /V
No.11 expand
Microsoft (R) File Expansion Utility Version 5.2.3790.0
Copyright (c) Microsoft Corporation. All rights reserved.
展开一个或多个压缩文件。
EXPAND [-r] Source Destination
EXPAND -r Source [Destination]
EXPAND -D Source.cab [-F:Files]
EXPAND Source.cab -F:Files Destination
-r 重命名展开的文件。
-D 显示来源中的文件列表。
Source 源文件规格。可使用通配字符。
-F:Files 从 .CAB 文件展开的文件的名称。
Destination 目标文件 | 路径规格。
目标可以是目录。
如果来源是多个文件且没有指定 -r,
目标则必须是目录。
实例:
No.12 forfiles
描述:
选择一个文件(或一组文件)并在那个文件上
执行一个命令。这有助于批处理作业。
参数列表:
/P pathname 表示开始搜索的路径。默认文件夹是当前工作的
目录 (.)。
/M searchmask 根据搜索掩码搜索文件。默认搜索掩码是 '*'。
/S 指导 forfiles 递归到子目录。像 "DIR /S"。
/C command 表示为每个文件执行的命令。命令字符串应该
用双引号括起来。
默认命令是 "cmd /c echo @file"。下列变量
可以用在命令字符串中:
@file - 返回文件名。
@fname - 返回不带扩展名的文件名。
@ext - 只返回文件的扩展。
@path - 返回文件的完整路径。
@relpath - 返回文件的相对路径。
@isdir - 如果文件类型是目录,返回 "TRUE";
如果是文件,返回 "FALSE"。
@fsize - 以字节为单位返回文件大小。
@fdate - 返回文件上一次修改的日期。
@ftime - 返回文件上一次修改的时间。
要在命令行包括特殊字符,字符请以 0xHH
形式使用十六进制代码(例如,0x09 为 tab)。
内部 CMD.exe 命令前面应以 "cmd /c" 开始。
/D date 选择文件,其上一次修改日期大于或等于 (+),
或者小于或等于 (-) 用 "yyyy-MM-dd" 格式指定的日期;
或选择文件,其上一次修改日期大于或等于 (+)
当前日期加 "dd" 天,或者小于或等于 (-) 当前
日期减 "dd" 天。有效的 "dd" 天数可以是
0 - 32768 范围内的任何数字。如果没有指定,
"+" 被当作默认符号。
/? 显示帮助消息。
例如:
FORFILES /?
FORFILES
FORFILES /P C:\WINDOWS /S /M DNS*.*
FORFILES /S /M *.txt /C "cmd /c type @file | more"
FORFILES /P C:\ /S /M *.bat
FORFILES /D -30 /M *.exe
/C "cmd /c echo @path 0x09 在 30 前就被更改。"
FORFILES /D 2001-01-01
/C "cmd /c echo @fname 在 2001年1月1日就是新的。"
FORFILES /D +2009-2-19 /C "cmd /c echo @fname 今天是新的。"
FORFILES /M *.exe /D +1
FORFILES /S /M *.doc /C "cmd /c echo @fsize"
FORFILES /M *.txt /C "cmd /c if @isdir==FALSE notepad.exe @file"
实例:
No.13 fsutil
---- 支持的命令 ----
behavior 控制文件系统行为
dirty 管理卷的被损坏的位数
file 文件特定命令
fsinfo 文件系统信息
hardlink 硬链接管理
objectid 对象 ID 管理
quota 配额管理
reparsepoint 重分析点管理
sparse 稀疏文件控制
usn USN 管理
volume 卷管理
实例:
No.14
getmac
描述:
此工具使管理员能够显示系统上网络适配器的 MAC 地址。
参数列表:
/S system 指定要连接到的远程系统。
/U [domain\]user 指定用户上下文,命令在此上下文执行。
/P [password] 指定给定用户上下文密码。如果省略则
提示输入。
/FO format 指定输出显示的格式。
有效值: "TABLE","LIST","CSV"。
/NH 指定 "列标题" 不应在输出中
显示。只对 TABLE 和 CSV 格式有效。
/V 指定显示详细输出。
/? 显示帮助消息。
示例:
GETMAC /?
GETMAC /FO csv
GETMAC /S system /NH /V
GETMAC /S system /U user
GETMAC /S system /U domain\user /P password /FO list /V
GETMAC /S system /U domain\user /P password /FO table /NH
实例:
No.15
getresult
描述:
此命令行工具显示目标用户和计算机的策略结果集 (RSoP) 的信息。
参数列表:
/S system 指定要连接到的远程系统。
/U [domain\]user 指定命令在其下执行的用户上下文。
/P [password] 为给定的用户上下文指定密码。如果省
略则提示输入。
/SCOPE scope 指定是显示用户还是计算机设置。
有效值: "USER","COMPUTER"。
/USER [domain\]user 指定要显示 RSOP 的用户名称。
/V 指定要显示详细信息。详细信息提供
已经应用的、优先权是 1 的详细设置。
/Z 指定显示超详细信息。超详细信息提供其他
详细设置,用 1 或更高的优先权应用于此
设置。这允许您查看是否在多处设置了某一
设置。请参阅组策略联机帮助主题获得更多
信息。
/? 显示该帮助消息。
注意: 如果不带参数运行 GPresult,它将返回运行该命令的计算机上的当前
登录用户的 RSoP 数据。
示例:
GPRESULT
GPRESULT /USER targetusername /V
GPRESULT /S system /USER targetusername /SCOPE COMPUTER /Z
GPRESULT /S system /U username /P password /SCOPE USER /V
No.16 iexpress
压缩工具,常用于捆绑文件,这里不再细数!
No.17 logoff
注销工具
No.18 nlb
WLBS 群集控制实用程序 V2.4 (c) 1997-2003 Microsoft Corporation.
用法: WLBS <command> [/PASSW [<password>]] [/PORT <port>]
<command>
help - 显示此帮助
ip2mac <cluster> - 为指定的群集 IP 显示 MAC 地址
reload <cluster> | ALL - 为指定的群集(仅本地)从注册表
重新加载参数。如果没有指定参数,
则与 ALL 一样。
display <cluster> | ALL - 为指定的群集(仅本地)显示参数,
当前状态以及上几个事件日志消息。
如果没有指定参数,则与 ALL 一样。
query <cluster_spec> - 为指定群集的当前成员显示当前群集
状态。如果没有指定,将执行对所有
实例本地查询。
suspend <cluster_spec> - 为指定群集挂起群集操作 (启动,停
止,等等),直到发布了恢复命令。
如果没有指定群集,则应用到本地主
机上的所有实例。
resume [<cluster_spec>] - 在指定群集的上一次挂起命令后恢复群
集操作。如果没有指定群集,应用到本
地主机上的所有实例。
start [<cluster_spec>] - 在指定主机上启动群集操作。如果没有
指定群集,应用到本地主机。
stop [<cluster_spec>] - 停止指定主机上的群集操作。如果没有
指定群集,应用到本地主机。
drainstop [<cluster_spec>] - 禁用指定主机上的所有新通讯处理并停
止群集操作。如果没有指定群集,应用
到本地主机。
enable <port_spec> <cluster_spec> - 启用指定群集上的通讯处理,规则是其
端口范围必须包含指定端口
disable <port_spec> <cluster_spec> - 禁用指定群集上的所有通讯处理,规则
是其端口范围必须包含指定端口
drain <port_spec> <cluster_spec> - 在指定的群集上为端口范围包含指定端口
的规则禁用新通讯处理
queryport [<vip>:]<port> - 检索端口规则的当前状态。如果规则正在
[<cluster_spec>] 处理通讯,也会返回数据包处理统计。
params [<cluster> | ALL] - 为在本地主机上的指定的群集从 NLB 驱动
程序检索当前参数。
<port_spec>
[<vip>: | ALL:](<port> | ALL) - 每一个虚拟 IP 地址(不是 <vip> 也不是
ALL),或特定 <vip> 或 "All" vip,在
特定 <port> 规则或所有端口
<cluster_spec>
<cluster>:<host> | ((<cluster> | ALL) - 在特定 <host> 上指定特定 <cluster>,
(LOCAL | GLOBAL)) 或特定 <cluster> 或所有群集,在 LOCAL
计算机或者是群集的一部分的所有
(GLOBAL)计算机上
<cluster> - 群集名称 | 群集主 IP 地址
<host> - 群集内的主机 (默认 -
所有主机): 专用名称 |
IP 地址 | 主机优先 ID (1..32)
| 0 当前默认主机
<vip> - 在端口规则内的虚拟 IP 地址
<port> - TCP/UDP 端口号
远程选项:
/PASSW <password> - 远程控制密码 (默认 - 无)
空 <password> 将出现控制台提示
/PORT <port> - 群集的远程控制 UDP 端口
要了解详细信息,请参阅 NLB 的联机帮助。
实例:
No.19 qprocess
显示有关进程的信息。
QUERY PROCESS [* | processid | username | sessionname | /ID:nn | programname]
[/SERVER:servername]
* 显示所有可见进程。
processid 显示 processid 指定的进程。
username 显示所有属于 username 的进程。
sessionname 显示所有在 sessionname 运行的进程。
/ID:nn 显示所有在会话 nn 运行的进程。
programname 显示所有跟 programname 相关进程。
/SERVER:servername 要查询的终端服务器。
实例:
No.20 runas
RUNAS 用法:
RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ]
/user:<UserName> program
RUNAS [ [/noprofile | /profile] [/env] [/savecred] ]
/smartcard [/user:<UserName>] program
/noprofile 指定不应该加载用户的配置文件。
这会加速应用程序加载,但
可能会造成一些应用程序运行不正常。
/profile 指定应该加载用户的配置文件。
这是默认值。
/env 要使用当前环境,而不是用户的环境。
/netonly 只在指定的凭据限于远程访问的情况下才使用。
/savecred 用用户以前保存的凭据。
Windows XP Home Edition 上没有这个选项。
该选项会被忽略。
/smartcard 如果凭据是智能卡提供的,则使用这个选项。
/user <UserName> 应使用 USER@DOMAIN 或 DOMAIN\USER 形式
program EXE 的命令行。请参阅下面的例子
例如:
> runas /noprofile /user:mymachine\administrator cmd
> runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
> runas /env /user:user@domain.microsoft.com "notepad \"my file.txt\""
注意: 只在得到提示时才输入用户的密码。
注意: USER@DOMAIN 跟 /netonly 不兼容。
注意: /profile 跟 /netonly 不兼容。
注意: /savecred 跟 /smartcard 不兼容。
在坛子里有详细的描述,这里不再细数!
No.21 sc
描述:
SC 是用于与服务控制管理器通信的命令行程序。
用法:
sc <server> [command] [service name] <option1> <option2>...
选项 <server> 的格式为 "\\ServerName"
可以键入 "sc [command]"以获得命令的进一步帮助
命令:
query-----------查询服务的状态,
或枚举服务类型的状态。
queryex---------查询服务的扩展状态,
或枚举服务类型的状态。
start-----------启动服务。
pause-----------发送 PAUSE 控制请求到服务。
interrogate-----发送 INTERROGATE 控制请求到服务。
continue--------发送 CONTINUE 控制请求到服务。
stop------------发送 STOP 请求到服务。
config----------(永久地)更改服务的配置。
description-----更改服务的描述。
failure---------更改服务失败时所进行的操作。
qc--------------查询服务的配置信息。
qdescription----查询服务的描述。
qfailure--------查询失败服务所进行的操作。
delete----------(从注册表)删除服务。
create----------创建服务(将其添加到注册表)。
control---------发送控制到服务。
sdshow----------显示服务的安全描述符。
sdset-----------设置服务的安全描述符。
GetDisplayName--获取服务的 DisplayName。
GetKeyName------获取服务的 ServiceKeyName。
EnumDepend------枚举服务的依存关系。
下列命令不查询服务名称:
sc <server> <command> <option>
boot------------(ok | bad) 表明是否将上一次启动保存为
最后所知的好的启动配置
Lock------------锁定服务数据库
QueryLock-------查询 SCManager 数据库的 LockStatus
No.22 sysedit
No.23 takeown
TAKEOWN [/S system [/U username [/P [password]]]]
/F filename [/A] [/R [/D prompt]]
描述:
该工具以重新分配文件所有权的方式允许管理员重新获取先前被拒绝访问
的文件访问权。
参数列表:
/S system 指定要连接到的远程系统。
/U [domain\]user 指定用户上下文,命令在此上下文中执行。
/P [password] 指定给定用户上下文的密码。如果省略,
提示输入。
/F filename 指定文件名或目录名模式。可以用通配符 "*"
指定模式。允许共享名\文件名。
/A 将所有权给于管理员组,而不是当前用户。
/R 递归: 指示工具运行于指定的目录和子目录
里的文件上。
/D prompt 当前用户在一个目录里没有“列出文件夹”
权限时,使用默认答案。当在子目录里进行
递归 (/R) 操作时会发生这种情况。用有效
值 "Y" 获取所有权或用 "N" 跳过。
/? 显示该帮助消息。
注意: 1) 如果指定了 /A,文件所有权会给与当前登录的用户。
2) 不支持用 "?" 和 "*" 混合的模式。
3) /D 用于抑制确认提示。
示例:
TAKEOWN /?
TAKEOWN /F lostfile
TAKEOWN /F \\system\share\lostfile /A
TAKEOWN /F directory /R /D N
TAKEOWN /F directory /R /A
TAKEOWN /F *
TAKEOWN /F C:\Windows\System32\acme.exe
TAKEOWN /F %windir%\*.txt
TAKEOWN /S system /F MyShare\Acme*.doc
TAKEOWN /S system /U user /F MyShare\foo.dll
TAKEOWN /S system /U domain\user /P password /F share\filename
TAKEOWN /S system /U user /P password /F Doc\Report.doc /A
TAKEOWN /S system /U user /P password /F Myshare\*
TAKEOWN /S system /U user /P password /F Home\Logon /R
TAKEOWN /S system /U user /P password /F Myshare\directory /R /A
No.24 tsdiscon
计算机锁定程序
No.25 WHERE
WHERE [/R dir] [/Q] [/F] [/T] pattern...
描述:
显示符合搜索模式的文件位置。在默认情况下,搜索是在当前目录和 PATH
环境变量指定的路径中执行的。
参数列表:
/R 从指定目录开始,递归性搜索并显示符合指定模式的文件。
/Q 只返回退出代码,不显示匹配文件列表。(安静模式)
/F 显示所有相配文件并用双引号括上。
/T 显示所有相配文件的文件的文件。
pattern 指定要匹配的文件的搜索模式。通配符 * 和 ? 可以用在模式中。
也可以指定 "$env:pattern" 和 "path:pattern" 格式; 其中
"env" 是环境变量,搜索是在 "env" 变量的指定的路径中执行的。
这些格式不应该跟 /R 一起使用。此搜索也可以用将 PATHEXT 变
量扩展名附加于此模式的方式完成。
/? 显示帮助消息。
注意: 如果搜索成功,此工具返回错误级别 0; 如果不成功,返回 1; 如果失
败或发生错误,返回 2。
示例:
WHERE /?
WHERE myfilename1 myfile????.*
WHERE $windir:*.*
WHERE /R c:\windows *.exe *.dll *.bat
WHERE /Q ??.???
WHERE "c:\windows;c:\windows\system32:*.dll"
No.26 mrt
恶意程序删除工具
实例:
WHERE /F /T *.dll