找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 5682|回复: 3

windows系统管理-使用命令行,批处理文件和windows脚本

[复制链接]
发表于 2011-12-17 20:47:34 | 显示全部楼层 |阅读模式
《windows系统管理--使用命令行,批处理文件和windows脚本》(前言)
参考 :How to Cheat at Windows System Administration Using Command-Line Scripts.

推荐: Automating Windows Administration(没有找到)

windows脚本技术主页:http://msdn2.microsoft.com/en-us/library/d1et7k7c(VS.80).aspx

windows脚本: http://www.computerperformance.co.uk/ezine/ezine1.htm

windows脚本msn: http://groups.msn.com/windowsscript

windows 2000 所有命令: http://www.microsoft.com/windows2000/en/server/help/default.asp?url=/windows2000/en/server/help/ntcmds.htm

windows 2000与MS-DOS 命令区别:http://www.microsoft.com/windows2000/en/server/help/default.asp?url=/windows2000/en/server/help/ntcmds.htm

ms-dos 命令:http://www.computerhope.com/msdos.htm

.bat文件命令:http://www.computerhope.com/batch.htm

windows注册表:http://www.computerhope.com/registry.htm

windows脚本和批处理:http://labmice.techtarget.com/scripting/default.htm

前言

在windows以前的操作系统中,系统管理使用命令行和批处理文件对系统进行管理,进入windows操作系统后,管理员可以使用各种界面和向导来管理系统,再也不用去记很多的命令,但是有时使用命令行和脚本是更方便更高效的方法。例如要增加某些用户到活动目录,使用命令行或脚本就会更快。再例如如果一个网络里有上千台机子需要做相同的工作,如果你用wizard界面一个一个来的话,如此重复无聊的工作,你不的被活活的气死,也的被活活的累死。


本系列详细将解了命令行和脚本的使用。共11章,分为5部分:

第1部分:

1 命令行处理(Command Shell)
2 批处理文件(.bat)
3 windows脚本基础

第2部分:

3 任务计划(Scheduled Tasks)
4 文件管理(File Manage)
5 磁盘管理(Hard Disks Manage)

第3部分:

6 系统服务(System Services)
7 事件日志(Event Logs)
8 性能(Performance)
9 打印服务(Printing Services)

第4部分:

10 活动目录服务(Active Directory Services)

第5部分:

11 Server2003中的网络服务管理(.Net Working Services)


注:在本系列文章中如有错误,请指正,谢谢!
 楼主| 发表于 2011-12-17 20:47:59 | 显示全部楼层
《windows系统管理--使用命令行,批处理文件和windows脚本》(命令行基础)
很多的系统管理员可能认为命令行是程序员编程用的,这是不对的,其实命令行是另一种用来管理计算机的接口。

1 命令行窗口

Windows NT/Windows 2000以后的操作系统为用户提供了两种命令行窗口:cmd.exe和command.com,CMD.EXE是Windows 窗口命令行接口,因此它可以通过窗口右上角的X来关闭,它不是一个dos窗口,而COMMAND.COM是一个16位的DOS应用程序,它用于支持老的dos应用程序,它必须通过命令行输入exit才可以退出,它一般运行于NTVDM中。但就用户来说,这两个命令有惊人的相似之处,如果用户运行command.exe,用户会在任务管理器中看到一个进程ntvdm.exe在运行,如果运行cmd.exe则进程可以看到cmd.exe,而且command.exe还支持以前的16位的现在已经不用的命令。下面分别是2种接口的打开方法和显示结果。

在开始->运行,输入cmd,然后enter。如下:


在开始->运行,输入command,然后enter。如下:



2 窗口的属性

第一种方法:
窗口中输入命令:Cmd [{/A | /U}] [/Q] [/D] [/E: {ON | OFF}] [[/S] [{/C | /K}] string] [/V:{ON |/OFF}] [/T:FG]
参数的含义:
/C string Executes the command specified in the string and then exits the command shell.
/K string Executes the command specified in the string and does not exit the command shell.
/S Modifies the commands used as strings with the /C and /K parameters. Usually, you place quotes around command strings.The /S parameter removes the pening and closing quotes before processing the command.
/A Causes the output of internal commands to be sent to a file (this process is also called piping) in ANSI character format.
/U Causes the output of internal commands to be sent to a file (this process is also called piping) in Unicode character format.
/Q Turns off echo, which is on by default. Echo off mode is also known as quiet mode. When echo is on, each command is displayed as it is processed.
/D Disables the AutoRun command from the Registry.
/E:ON Enables command extensions if they were disabled. Command extensions are enabled by default.
/E:OFF Disables command extensions.
/F:ON Enables the completion of characters for files and directories, which help improve typing speed at the command prompt.
/F:OFF Disables the completion of characters for files and directories.
/V:ON Enables delayed environment variable expansion by using the exclamation point character (!) as the delimiter. This means that using !ThisVar! will expand the variable ThisVar at the time of execution.
/V:OFF Disables delayed environment variable expansion.
/T:FG 设定命令行窗口的前背景色

第二种方法:在命令行窗口的左上角点击,可得到属性设置对话框,如下:



注:可以设定执行过的命令的记录数,然后用方向键查看。还有快捷键从F1到F9哦,怎么用自己试试看喽。

3 命令行Shell的内部命令

命令行可以执行2种命令:内部命令和外部命令。外部命令是以.exe的形式存在的,一般存放在系统的目录下,例如XCOPY.EXE用来拷贝整个目录树结构,DISKPART.EXE用来管理磁盘,IPCONFIG.EXE用来显示和刷新计算机的IP/TCP的配置。。。

以下是比较常用的内部命令:

■ Assoc 显示和修改文件的相关程序.
■ Call 在批处理文件中调用其他函数或批处理文件.
■ CD (ChDir) 改变目录.
■ Color 改变前背景色.
■ Cls 清屏.
■ Copy 拷贝文件
■ Date 显示和修改系统日期.
■ Dir 显示目录下文件信息.
■ Del (Erase) 删除文件.
■ Echo 在命令行窗口种显示文本.
■ Endlocal 退出使用本地化环境变量.
■ Exit 退出命令行窗口.
■ For 批处理文件种使用循环.
■ Ftype 显示修改文件类型.
■ Goto 批处理文件种语句跳转.
■ If 批处理文件种条件选择.
■ Md (Mkdir) 创建目录.
■ Move 移动文件.
■ Path 显示和改变命令行窗口执行程序的搜索路径,当无参数使用是显示当前的系统路径.
■ Pause 暂停批处理文件的执行.
■ PopD 使用存储的目录还原目录.
■ Prompt 设置命令行窗口的显示文本.
■ PushD 存储当前使用的目录.
■ Rd (Rmdir) 删除目录
■ Rem 在品处理文件种加注释.
■ Set 显示,设定或删除环境变量. 当你无参数使用这个命令,显示系统的环境变量
■ Setlocal 在批处理文件中开始使用本地环境变量
■ Shift 改变批处理文件中某能够取代的参数的位置.
■ Start 打开命令行窗口.
■ Time 显示和改变当前系统的时间.
■ Title 改变执行批处理文件时的命令行窗口的title
■ Type 显示文本文件的内容,但是不可以修改
■ Vol 显示分区的卷标和序列号

3 windows常用外部命令

winver---------检查windows版本
  wmimgmt.msc----打开windows管理体系结构(wmi)
  wupdmgr--------windows更新程序
  w脚本--------windows脚本宿主设置
  write----------写字板
  winmsd---------系统信息
  wiaacmgr-------扫描仪和照相机向导
  winchat--------xp自带局域网聊天

  mem.exe--------显示内存使用情况
  msconfig-----------启动
  msconfig.exe---系统配置实用程序
  mplayer2-------简易widnows media player
  mspaint--------画图板
  mstsc----------远程桌面连接
  mplayer2-------媒体播放机
  magnify--------放大镜实用程序
  mmc------------打开控制台
  mobsync--------同步命令

  dxdiag---------检查directx信息
  drwtsn32------ 系统医生
  devmgmt.msc--- 设备管理器
  dfrg.msc-------磁盘碎片整理程序
  diskmgmt.msc---磁盘管理实用程序
  dcomcnfg-------打开系统组件服务
  ddeshare-------打开dde共享设置
  dvdplay--------dvd播放器

  nslookup-------ip地址侦测器
  net stop messenger-----停止信使服务
  net start messenger----开始信使服务
  notepad--------打开记事本
  nslookup-------网络管理的工具向导
  ntbackup-------系统备份和还原
  narrator-------屏幕“讲述人”
  ntmsmgr.msc----移动存储管理器
  ntmsoprq.msc---移动存储管理员操作请求
  netstat -an----(tc)命令检查接口

  syncapp--------创建一个公文包
  sysedit--------系统配置编辑器
  sigverif-------文件签名验证程序
  sndrec32-------录音机
  shrpubw--------创建共享文件夹
  secpol.msc-----本地安全策略
  syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
  services.msc---本地服务设置
  sndvol32-------音量控制程序
  sfc.exe--------系统文件检查器
  sfc /scannow---windows文件保护(扫描错误并复原)

  tsshutdn-------60秒倒计时关机命令
  tourstart------xp简介(安装完成后出现的漫游xp程序)
  taskmgr--------任务管理器 (2000/xp/2003)

  eventvwr-------事件查看器
  eudcedit-------造字程序
  explorer-------打开资源管理器

  packager-------对象包装程序
  perfmon.msc----计算机性能监测程序
  progman--------程序管理器

  regedit.exe----注册表
  rsop.msc-------组策略结果集
  regedt32-------注册表编辑器
  rononce -p ----15秒关机
  regsvr32 /u *.dll----停止dll文件运行
  regsvr32 /u zipfldr.dll------取消zip支持

  cmd.exe--------cmd命令提示符
  chkdsk.exe-----chkdsk磁盘检查
  certmgr.msc----证书管理实用程序
  calc-----------启动计算器
  charmap--------启动字符映射表
  cliconfg-------sql server 客户端网络实用程序
  clipbrd--------剪贴板查看器
  conf-----------启动netmeeting
  compmgmt.msc---计算机管理
  cleanmgr-------垃圾整理
  ciadv.msc------索引服务程序

  osk------------打开屏幕键盘
  odbcad32-------odbc数据源管理器
  oobe/msoobe /a----检查xp是否激活

  lusrmgr.msc----本机用户和组
  logoff---------注销命令

  iexpress-------木马捆绑工具,系统自带
  fsmgmt.msc-----共享文件夹管理器
  utilman--------辅助工具管理器
  gpedit.msc-----组策略
4 相关帮助文档
1)可以在命令行窗口种输入help得到帮助。
2)可以在开始->帮助和支持 中输入:command shell,即可得到所有命令的帮助。
3)网络资源:见前言中参考网站。


5 常用软件安装

在windows 2003中,可以在系统盘中找到suptools.msi 来安装一些有用的工具,如果你是windows xp系统,你也可以到网络上下载相关的软件。



小技巧:如果你的命令行窗口不识别正确的命令,很有可能是你的系统变量path的原因啊,看看有没有这3个啊,没有的赶快加入:(ok?)
C:\Windows\System32;
C:\Windows;
C:\Windows\System32\Wbem
 楼主| 发表于 2011-12-17 20:48:38 | 显示全部楼层
《windows系统管理--使用命令行,批处理文件和windows脚本》(批处理文件) 1 简单实例 (经常用于大的软件项目开发中,使所有开发人员拥有相同的开发环境)

假如有E:\A\AA\aaa.txt 和E:\B . A和B中分别为你的项目代码和输出,则通过下面的批处理文件Path_subst则可以使你的代码为M盘,而输出为N盘,对于其他的开发人员则只需要修改批处理文件variables_setup中的变量所代表的路径,也可以达到同样的目的,使代码和输出分别在M和N盘。另外有时也需要文件的拷贝,参看copy.bat文件。


variables_setup.bat

REM ==============================================================================
REM This
is an example for setting these vairalbes. Please modify them
REM
for your own environment.
REM
==============================================================================
set Source_PathA="E:\A"
set Dest_PathB="E:\B"


Path_subst.bat


REM
=================================================================
REM run variables_setup.bat to
set necessary vairables first
REM
=================================================================
call variables_setup.bat

REM
=================================================================
REM substitue dirves
REM
=================================================================
subst M:
/d
subst M:
"%Source_PathA%"

subst N:
/d
subst N:
"%Dest_PathB%"


copy.bat

REM ======== copy files

call variables_setup.bat




copy
/-Y %Source_PathA%\AA\*.txt %Dest_PathB%



2 批处理文件命令

Call 在一个批处理文件中调用另一个批处理文件,原批处理文件继续执行.
Choice 暂停批处理文件的执行,提示让用户选择.
Echo 显示文本和选择显示方式.
Endlocal 还原setlocal中改变的环境变量
For 循环
Goto 跳转.
If 条件选择.
Pause 暂停执行,用户按任意键继续执行.
Rem 注释.
Setlocal 开始使用新的环境变量,知道endlocal.
Shift 被用来改变批处理文件参数的位置.

3 命令行路径和环境变量

命令行路径是在命令行窗口中执行没有指定路径的命令或程序时,查找命令或程序的默认路径,命令行路径Path是一个系统变量,他允许你执行不在当前命令行窗口工作目录下的命令和程序。可以使用以下方法修改:
1)Path命令:只修改当前打开的命令行窗口的路径,增加新的路径,语法:Path [%path%];[drive:]path
例如增加C:\Myfiles到路径的最后,实现如下:Path %path%;C:\Myfiles ,如果你新增加到最前面,最先查找此目录,则:Path C:\Myfiles;%path% (注意:路径的查找顺序是从前到后哦,第一个开始,。。。。)
2)Set命令,SetX命令,这2个命令处理能够修改命令行路径,还可以修改其他的环境变量,区别是set是修改只对当前打开的命令行窗口有效,而setx则是永久的修改路径,相当于用windows的系统属性窗口修改。使用语法实例如下:Set Path=%path%;C:\Myfiles ,Setx Path "%PATH%;C:\Myfiles" ,区别上面已经说了啊。
3)windows系统中的系统变量修改窗口,如下(都知道在那里找把,哈哈,在我的电脑右键->属性->高级->环境变量)

注意:最好在修改前,现备份你原来的路径哦,否则有可能。。
还有有时由于安装某些软件,命令行窗口不能使用,则可能是由于原来的路径没有了,
以下3个路径是必须要有的哦,没有的话赶快加上哦,怎么加,用上面3中方法中的一种就可以了: C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem



4 命令的重定位

> 使命令的输出到文件或指定的分区,如果文件不存在则创建,如果已经存在则覆盖 .
< 从指定的文件输入,而不是从键盘.
>> 增加输出到指定文件的末尾,而不是覆盖. 如果不存在则创建文件.
>& 命令的输出作为另一个命令的输入.
<& 读取一个命令的输入,输出到另一个命令的输出.
| 读取一个命令的输出发送为另一个命令的输入. 这也被成为piping.

实例:Sort<Userlist.txt 排序userlist.txt文件的内容,输出到命令行窗口
<Userlist.txt 列举uerlist.txt的内容,在命令行窗口
Ipconfig>Test.log 将ipconfig的结构存到test.log中
Ipconfig>>Test.log 区别于上面哦()
Dir | sort>FileList.txt 先对目录下的目录排序,然后存到filelist.txt中
Dir | find ".txt" | more 列举目录下的txt文件,且实现分页显示,每按任意键则下一页(Find *| more 经常使用的哦)

5 批处理中的异常处理和命令组

最常用的方法就是将异常输出到txt或log文件,例如:Netstat >Report.txt > 2>&1

Standard Handles for Command Redirection
STDIN 0 Standard input is sent from the keyboard.
STDOUT 1 Standard output is sent to the command shell
window.
STDERR 2 Standard error output is sent to the command
shell window.
UNDEFINED 3 through 9 Application-specific handles.

命令组:通过&, &&, and || 实现命令执行的条件选择等,还可以实现带参数的命令组,实例:
Md C:\Reports\Final & Cd C:\Reports\Final 现建立,然后改为工作目录
Cd C:\Reports\Mar98 && Copy Rep5.txt D:\Reports 只有先转到目录mar98,然后才copy文件
Cd C:\Reports\Mar98 || Md C:\Reports\Mar98 如果mar98目录不存在,则创建他(跟编程语言中的差不多的)

6 Run As 命令

可以使一个登录用户使用另一个用户执行其他的功能,更有利于系统的安全,例如在受限用户中使用run as使用administrator的权限和功能。
命令的语法:Runas [{/profile | /noprofile}] [/env] [/netonly] [/savedcreds]
[/smartcard] [/trustlevel] [/showtrustlevels] /user:UserAccountName program

也可以选中程序右键中的->运行方式。如下图:


thx!
 楼主| 发表于 2011-12-17 20:49:22 | 显示全部楼层
《windows系统管理--使用命令行,批处理文件和windows脚本》(cmd,reg文件) ( 11-07 16:02) 1 cmd 文件

.bat是批处理文件,在nt/2000/xp/2003下也可以是cmd文件。 .bat是dos下的批处理文件 ,.cmd是nt内核命令行环境的另一种批处理文件 。(好像还有其他的区别,欢迎大家来共享)


2 reg文件

我们平时对注册表的修改操作大多是通过注册表编辑器Regedit来实现的,然而有一天,你登录了某个网站以后,便发现注册表编辑器已经被禁止使用了,怎么办?最简单也是最方便而且不需要任何工具的办法,那就是使用REG文件来解除注册表编辑器的限制。

REG文件实际上是一种注册表脚本文件,双击REG文件即可将其中的数据导入到注册表中。利用REG文件我们可以直接对注册表进行任何修改操作,它对注册表的操作可以不受注册表编辑器被禁用的限制,因此功能更为强大、灵活,另外,由于REG文件可以用任何文本文件编辑工具(例如记事本)进行修改,因此通过它对注册表数据进行修改后,如果发生错误,还可以通过改回REG文件中的数据后再导入,从而实现恢复操作,因此它又较之直接用注册表编辑器修改更安全,所以熟练掌握REG文件的运用,有时可以起到事半功倍、意想不到的效果。


.Reg 文件的语法.reg 文件具有以下语法:

RegistryEditorVersion
Blank line
[RegistryPath1]
"DataItemName1"="DataType1:DataValue1"
DataItemName2"="DataType2:DataValue2"
Blank line
[RegistryPath2]
"DataItemName3"="DataType3:DataValue3"

创建REG文件

  REG文件的创建是非常简单的,可以通过任何一个文本文件编辑工具来实现。我们就以创建一个可以解除注册表禁用限制的REG文件restore.reg为例来介绍一下具体过程。

  打开记事本,在记事本文件中输入以下内容:

  REGEDIT4

  空一行

  [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]

  "DisableRegistryTools"=dword :

  00000000

  保存此文件,在打开的“另存为”对话框中选择好保存路径,再单击“保存类型”中的下拉箭头选择“所有文件”(一定要选择此步,不然保存后的文件会自动加上TXT的扩展名),然后在“文件名”中输入“restore.reg”后按“保存”。以后你就可以通过双击这个restore.reg来直接解除禁用注册表的限制。

  对REG文件进行修改

  我们在利用REG文件对注册表进行操作时,要操作的对象有两种:一种是对主键进行操作,一种是对主键下的键值项目进行操作。对主键的操作有添加、删除两种,而对键值项目的操作则分为添加、修改和删除三种。下面我们就一个一个来实现。

  1、对主键的操作

  (1)添加主键

  要想利用REG文件在注册表中添加一个主键是非常方便的,只需要在文件体部分直接以“[ ]”的形式写上要添加的主键路径即可。

  例如:在HKEY_LOCAL_MACHINE\Software主键下添加一个名称为“文心软件工作室”的主键,内容如下:

  REGEDIT4

  空一行

  [HKEY_LOCAL_MACHINE\Software\文心软件工作室]


  保存reg文件,run

  (2)删除主键

  要用REG文件在注册表中删除一个主键,在文件体部分“[ ]”括起来的主键路径前面加上一个“-”符号即可,删除主键操作将会一并删除该主键下的所有子键及其键值项目,所以这是个比较危险的命令,使用要十分注意。例如要删除我们刚才添加的那个主键,内容如下:

  REGEDIT4

  空一行

  [-HKEY_LOCAL_MACHINE\Software\文心软件工作室]

  2、对键值项目的操作

  (1)添加键值项目

  添加键值项目的操作如同注册表编辑器中的“新建”命令,一般来说,键值的数据类型分为三种:字符串值、二进制值和DWORD值。在REG文件中我们也要设置添加的键值项目的数据类型,如果要添加字符串值,则“=”号后边要用英文的双引号引住数据;如果添加的为DWORD类型值,“=”号后边的格式为“dword:数据”;如果添加的为二进制值,“=”号后边则为“hex:数据”。要设置默认值的键值数据时,“=”号前边的键值名称应为“@”符号,并且没有双引号。

  例如我们要在“HKEY_LOCAL_MACHINE\Software\文心软件工作室”主键下设置默认键值为“文心工作室”,并分别添加“姓名”键值项目(字符串值)、“年龄”键值项目(二进制值)、“婚否”键值项目(DWORD值)。相应的REG文件内容如下:

  REGEDIT4

  空一行

  [HKEY_LOCAL_MACHINE\Software\文心软件工作室]

  @="文心工作室"

  "姓名"="徐海斌"

  "年龄"=hex:23

  "婚否"=dword:00000000

  在添加键值项目时,如果该键值所在的主键路径不存在的话,在添加键值项目的同时会自动新建该主键。另外在添加字符串值的键值项目时还有一点值得注意的地方,当这个字符串值是包括文件路径的字符串值时,路径分隔符应用“\\”双斜杠表示,以示和注册表中的主键路径分隔符区别开来。例如我们要在注册中“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\

  Run”主键下的启动组中添加位于“C:\PROGRAM FILES\BOOBSOFT\屏幕保护控制器”目录下的一个应用程序“屏幕保护控制器.exe”的启动键值项目,REG文件内容如下:

  REGEDIT4

  空一行

  [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]

  "scr"="C:\\PROGRAM ILES\\BOOBSOFT\\屏幕保护控制器\\屏幕保护控制器.exe"

  (2)修改键值项目

  其实修改和添加很类似,对于已经存在的键值项目,我们要修改其数据时,只需要将正确的数据赋予对应的键值项目即可,新的数据会自动覆盖错误的旧数据,例如,当某些恶意网页修改了你的IE标题栏文字,在标题栏中总是显示那个网站的广告文字,很讨厌,我们知道修改IE标题栏文字是通过“HKEY_CURRENT_USER\Software\

  
  Microsoft\Internet Explorer\Main”主键下的“Window Title”()键值的数据进行设置的,那么我们就可以通过REG文件改回默认的IE标题栏文字。

  REGEDIT4

  空一行

  [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]

  "Window Title"=""

  (3)删除键值项目

  用REG文件删除键值项目也是很方便的,和删除主键相类似,也是通过“=”号实现的,不过这次不是加在前面,而是把“-”符号放在键值项目的等号后面。例如一些恶意网页在修改IE标题栏等设置的同时,还修改了开始菜单相关的键值项目数据,使得开始菜单中的“运行”、“查找”、“关闭”等命令都不见了,导入下面的这个REG文件删除相应的键值项目后就可以找回开始菜单中的这些命令了。

  REGEDIT4

  空一行

  [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]

  "NoRun"=-(解除“运行”命令)

  "NoClose"=-(找回“关闭系统”命令)

  "NoFind"=-(找回“查找”命令)

  
 
  当我们双击REG文件时,系统会首先提示“确实要把XXX.REG内的信息添加到注册表吗?”的询问对话框(如图1),单击“是”按钮,系统就会按照REG文件中所描述的操作对注册表进行修改,完成以后并会给出提示“XXX.REG中的信息已经成功输入注册表”,把REG文件中的信息导入注册表的操作称为“合并”。

  
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-5-2 06:30 , Processed in 0.026209 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表