本文出自 “叶俊生” 博客,请务必保留此出处http://yejunsheng.blog.51cto.com/793131/175814

Windows并不是只有GUI的管理界面可用     什么情况下使用 script会比使用GUI更方便? :批量处理工作  一次执行大量性质类似的工作  让许多使用者执行相同的工作     为什么要使用Script作系统管理?:减少管理上所需的时间和复杂度   Windows下面的Script能够做些什么?:绝对比你想象的要多  大部分GUI能完成的工作都可以用script完成   Windows Scripting相关基础知识:可以使用的语言:VBScript and Jscript  扩展名:.vbs/ .js /.wsf  .wsf具有类似XML的结构,可以使用多种script语言 .wsf可以远程执行  Script Host:Wscript:Window based script interpreter  Cscript:command line based script interpreter  系统默认是以Wscript作为标准的解释器  执行Script的方法:使用命令提示符  使用资源管理器:Double-click  远程执行:通过WSH  Drag and drop   Wscript / Cscript 参数 //H:CScript or //H:Wscript:更改默认的Script Host //nologo:不显示banner //T:nn:设置执行的timeout时间 //S:储存目前设置  //B:批量模式,关闭所有输入及错误信息 //I:互动模式
2003332
在命令提示符里面输入Wscript /?按回车键 可以看到那些参数   输入Wscript //H:CScript按回车键  那么这个意味着当前数字脚本程序已经由Cscript来执行了 也就是说当你双击一个脚本的时候它会自动默认用Cscript来解释了 如果你想切换到WScript就输入Wscript //H:WScript按回车键  那么这个时候你的脚本执行解释器会自动切换到WScript里面了
VB Script初步:类似VisualBasic的语法  使用_字符连接多行  对象:set objWMIService=GetObject("winmgmts:")  变量和常量:Filesize=1024  Const MasFileSize=4096  字符串:Filepath="C:\Temp\"  使用&来连接字符串  Filename=Filepath & "test.txt"      IF Else 判断:if conditions then ... Else if conditions then ... Else ... End if    Select Case 判断:Select Case variable  Case condition...  Case condition... End select  For Next 循环:For i=1 to n....Next  For Each object in containter...Next   Do Loop循环:Do While condition...Loop  Do...Loop While condition    阵列/数组:Computers=Array("cismpc01","cismpc02","cismpc03"  使用For Each来枚举数组内所有元素  For Each computer in Computers...    Procedures / Functions   Sub procedurename()...End Sub   Function funcname()...End Function  错误处理:默认情况下遇到错误自动停止执行  On Error Resume Next  Err对象:Err.Number / Err.Description / Err.Clear
2003333
我现在来写一个脚本  首先打开记事本  在记事本面输入UserName="Alice"  Age="18"  MsgBox UserName & vbtab & Age  按文件--按另存为--按桌面   在文件名里面输入test.vbs  按保存就ok了   然后在桌面上双击test.vbs这个脚本文件就可以看到Alice  18 这表示我刚才写的脚本已经生效了  UserName和Age是变量 如果想把这两个变量弹出来  就用MsgBox这个命令  如果你不加vbtab这个参数的话  Alice就和18连接在一起 这样格式就不对了  如果你想把它们分开就使用vbtab这个参数  vbtab代表一个字符串
2003335
打开记事本  在里面输入set objDomain = Getobject ( "WinNT://London")  For Each objuser in objDomain  Msgbox objuser.Name  Next  然后保存  London是这台计算机的名称  ( "WinNT://London")实际上代表的是去获取NT4的域  objDomain代表的是它本地所有用户的数据库 如果写成域的名字( "WinNT://ntdom") 这个时候就代表NT域的下面所有用户的信息 注意:WinNT的大小写一定要注意  W是大写  in是小写  NT是大写 双击桌面上的test.vbs  就可以看到第一个用户(Administrator) 按确定就可以看到第二个用户了
2003334
  双击桌面上的test.vbs马上就可以看到一个错误  第三行 错误:对象不支技此属性或方法  objuser.casddca  就是说到错误的那一行就不会再往下一行执行了  如果你想让它继续执行下去就加on error resume next按保存就ok了  当你加上这条语句之后意味着在这条语句之后的所有语句 如果出现错误的话 它是不会停止执行 它会跳过当前出错的语句 继续执行后面的语句  双击桌面上的test2.vbs可以看到Schema了  另外还有一个如果产生错误的话 它会有一个error  你可以用error对象去看一下 毕如说看一下err.Number是什么  在记事本里面加入Msgbox err.Number按保存   双击桌面上的test3.vbs就可以看到err.Number是438 
ADSI(Active Directory Service Interface):用来访问活动目录的接口  使用标准LDAP路径来访问目录服务中的对象  撰写ADSI Scripts 的基本流程:连接到活动目录对象  处理对象(更新/复制/删除)  保存所作修改 Object.SetInfo