IT把所有部门的工作都自动化了,可是没有自动化自己的工作!
老板开始推行自动化任务,首先从使用自动程序将计算机直接添加入域,不用it去输入用户名密码。
开始研究吧。去搜索引擎上找了关键词,没有任何结果,于是考虑是否可以从计算机的注册表入手,将某些信息直接导入,虽然找出了某些相关项,想马上做个实验,但是被老板决绝了。从别的地方下手吧。
又想到他和计算机名在一起修改的,那么是否可以用api函数赖实现呢?搜索了一下函数表,只能找到修改计算机名的函数,找不到修改域的。
被逼无奈,从google得英文论坛找吧。有一些结果,但是看不懂啊(技术上,既不是编写的程序又不是应用程序),而且主要是问这个东西为什么无法加入域,没关系,顺杆爬!几个提及的词语为sysprep,什么东西啊,没接触过,查了一下中文的搜索引擎。哦!!少见多怪,原来是windowsXP的工具路径为SUPPORT\TOOLS\deploy.cab
好了开始查一下他的资料和使用说明把。大概研究了一下,这个东西是恢复系统安装的小程序,(没有太深入)使用它将系统的配置信息写成inf文件,然后使用参数将系统重新封装。重启系统后,系统进入安装程序,一般无需人为干预,也不用插cd。
由于,没有太多时间研究这个东西具体怎么使用,并且发挥各大作用,只是目前达到了我的要求,下面写出整体过程。
解压cab文件到一台正常的计算机上,然后使用setupmgr.exe向导程序配置inf信息,主要是在加入域的表单中输入相关的用户名和密码。他一定要有权限加入域。而且最好是只有加入域的权限,不能登陆的限制,因为它的用户名与密码是明文的方式写在配置文件中。
做好之后,一个vbs文件,输出一个inf文件,可以在vbs中加入对话框要求用户输入相关信息,比如计算机名等。在制作一个bat文件,建立在c盘一个sysprep文件夹,拷贝sysprep.exe和sysprepcl.exe文件到该文件夹内。然后启动命令c:\sysprep\sysprep -reseal -mini -nosidgen -quiet -reboot
这样便可以进行无人干预安装。最后做一个autorun的文件。这样把这些文件可到cd后用户便可以自动运行程序。
下面公布源代码(没什么技术含量)
1、autorun.inf
[AutoRun]
open=Addtodomain.bat
2、addotdomain.bat
@echo off
echo You will join MYDOMAIN domain.
pause
md c:\sysprep
copy sysprep\*.* c:\sysprep
addtodomain.vbs
c:\sysprep\sysprep -reseal -mini -nosidgen -quiet -reboot
3、addtodomain.vbs
pcname=inputbox("Please Input Your PC Name","PC Name")
if pcname="" then
msgbox "Your Full Name will be set to default!"
pcname="*"
end if
fullname=inputbox("Please Input Your Full Name","PC Name")
if fullname="" then
msgbox "Your Full Name will be PC!"
fullname="PC"
end if

orgname=inputbox("Please Input Your ORG Name","PC Name")
if orgname="" then
msgbox "Your Full Name will be OK!"
orgname="OK"
end if


Const ForWriting = 2
Const create = True
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile ("c:\sysprep\sysprep.inf",ForWriting,create)
strResponses = objTextFile.Writeline(";SetupMgrTag")
objTextFile.Writeline("[Unattended]")
objTextFile.Writeline("OemSkipEula=Yes")
objTextFile.Writeline("InstallFilesPath=C:\sysprep\i386")
objTextFile.Writeline("TargetPath=\WINDOWS")
objTextFile.Writeline("")
objTextFile.Writeline("[GuiUnattended]")
objTextFile.Writeline("AdminPassword=*")
objTextFile.Writeline("EncryptedAdminPassword=NO")
objTextFile.Writeline("OEMSkipRegional=1")
objTextFile.Writeline("TimeZone=210")
objTextFile.Writeline("OemSkipWelcome=1")
objTextFile.Writeline("")
objTextFile.Writeline("[UserData]")
objTextFile.Writeline("ProductKey=")
objTextFile.Writeline("FullName="&fullname)
objTextFile.Writeline("OrgName="&orgname)
objTextFile.Writeline("ComputerName="&pcname)
objTextFile.Writeline("")
objTextFile.Writeline("[Identification]")
objTextFile.Writeline("JoinDomain=mydomain")
objTextFile.Writeline("DomainAdmin=addcomp")
objTextFile.Writeline("DomainAdminPassword=111")
objTextFile.Writeline("")
objTextFile.Writeline("[Networking]")
objTextFile.Writeline("InstallDefaultComponents=Yes")
objTextFile.Writeline("")
objTextFile.Writeline("[Branding]")
objTextFile.Writeline("BrandIEUsingUnattended=Yes")
objTextFile.Writeline("")
objTextFile.Writeline("[Proxy]")
objTextFile.Writeline("Proxy_Enable=0")
objTextFile.Writeline("Use_Same_Proxy=0")
objTextFile.Close
4、文件夹sysprep
sysprep.exe和sysprepcl.exe
有一个小问题,好像运行之后,要求激活系统,但是不知不觉就不需要了,奇怪!我用的都是正版授权的系统。
感觉有点杀鸡用牛刀的意思了。
有机会慢慢研究一下这个东西。
其实做成ghost感觉会更好。
待续〉〉〉〉〉

posted on 2006-06-22 10:35  Mint  阅读(4269)  评论(5编辑  收藏  举报