利用AUTOIT辅助SEP客户端安装部署
 
 
前言
神州数码最近在我们公司实施SEP,给我们提供了一份安装手册,我已上传,本博附件里。其封面如下:
 
通过附件,并且经过我们自己前期安装测试,我们综合分析得出:
神州数码他们提供的SEP安装程序,双击之即自动安装至系统盘,但他们的安装程序并没有提供程序安装时判断,根本不能解决如下实际问题:
1、要求客户端操作系统必须是:windows 2000、xp 、2003,其它系统环境限制安装;
2、若客户端的物理内存低于512M,要安装的是官方特别准备的瘦客户端安装程序;
3、至少要求C盘1G剩余磁盘空间,否则即启动另外一个自动安装至D盘的自动安装包;
4、IE版本:必须IE 5.5以上,建议IE 6.0,否则给出提示信息,请安装对应IE;
5、SEP管理有组管理概念,需给合活动目录,每个部门所对应的安装包是不一样的。需智能判断选择;
6、当然需当前用户有管理员权限才能安装。
7、当然,在安装SEP之前,需用户卸载NOD32,360,卡巴斯基,江民,瑞星等等杀毒软件,然后方可安装SEP
8、最后的最后,要判断一下,若用户开始了安装但最终安装失败,给用户一个答复。
 
以上8个问题是神州数码提供给我们的自动安装程序所完全不能解决的。相对一个有成百上千个客户端,各种参差不齐的电脑基本水平的用户群,以上8个部署问题就显得尤为重要。并将直接影响部署的成功率和用户的满意度。 还有一点就是,天天在喊以人为本,究竟什么是以人为本并人性化地为最终用户提供最挂IT体验。是不是我们的许多软件厂家和我们的企业深思一下?
(腹诽一下:厂家从技术上绝对能实现从封装sep安装程序的角度更好地解决这8个问题,无非就是不重视,不想做,不去做,用户第一是挂在嘴边的口号而已,所以只好我们自己动手了,无奈.)
 
针对上边8个问题,我本人利用了下午的时间,简短利用AUTOIT制作了一个 智能安装程序(意思是:全公司全体用户均只需双击这个智能安装程序,让程序帮您智能去判断以上8个问题,达到真正意义上的全自动安装SEP)。完美解决以上问题,供感兴趣的朋友们参考。也欢迎大家多多斧正。另,关于SEP的其它向客户端用户分发之方法不在本文讨论之列。
 
对应解决以上问题1:
if(@OSVersion <> "WIN_XP" And @OSVersion <> "WIN_2000" And @OSVersion <> "WIN_2003") Then
msgbox(64,"警告","本SEP安全软件仅支持WIN_2000,WIN_XP,WIN_2003系统,其它系统暂不支持.")
Exit
EndIf
 
对应解决以上问题2:
$mem = MemGetStats()
if($mem[1] <500000) Then
RunWait("\\172.16.128.51\soft\常用软件下载导航\网络安全\SEP杀毒软件\低于512M内存专用SEP安装程序.exe")
exit
endif
 
对应解决以上问题3:
$varf = DriveSpaceFree(@HomeDrive)
if($varf<1000) Then
$vard = DriveSpaceFree("d:\")
if($vard<1000) Then
MsgBox(64, "提示", "请您将C盘或者D盘的剩余空间调整为不低于1G,然后重新运行本程序进行安装,谢谢.")    
Exit
Else
RunWait("\\172.16.128.50\子公司\d_Jsetup.exe")
endif
 
对应解决以上问题4:
$regie = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer", "Version")
$ieVersion = StringSplit($regie, ".", 1)
if NOT ($ieVersion[1] >=6) Then
msgbox(64,"警告","请将您的IE升级到IE6 或者6以上版本,方可继续安装SEP.谢谢。")
Exit
EndIf
 
对应解决以上问题5:
既然组织机构里每个部门的安装程序不一样,那么可以在文件服务器上为每个部门放置一个SEP文件夹,在设置共享权限时,切记,结合OU,仅对具体部门设置读取权限即可。
If FileExists("\\172.16.128.50\子公司行政部门\C_SEP_setup.exe") Then
RunWait("\\172.16.128.50\子公司行政部门\C_SEP_setup.exe")
Exit
EndIf

以此类推,写齐公司所有组织机构......
 
对应解决以上问题6:
$admin = IsAdmin ()
if ($admin = 0) Then
SplashOff()
msgbox(64,"警告","当前登录用户无足够权限执行本安装程序,请与我联系:电话:5769 谢谢")
Exit    
EndIf
 
对应解决以上问题7:
If ProcessExists("360tray.exe")Then
MsgBox(64, "提示", "请您卸载 360安全卫士 后再回来重新运行本安装程序.谢谢.")
Exit
EndIf

$Regnod32 = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Eset\Nod\CurrentVersion\Info", "InstallDir")
If (ProcessExists("nod32krn.exe") Or $Regnod32<>"")Then
MsgBox(64, "提示", "请您先一定要先卸载 NOD32并重启电脑后 再回来运行本安装程序.谢谢.")
Exit
EndIf    
If ProcessExists("avp.exe")Then
MsgBox(64, "提示", "请您先去控制面板卸载卡巴斯基杀毒软件后再回来运行本安装程序.谢谢.")
Exit
EndIf

If ProcessExists("RfwSrv.exe") Or ProcessExists("runiep.exe") Or ProcessExists("ravmon.exe")    Then
MsgBox(64, "提示", "请您先去控制面板卸载 瑞星杀毒,瑞星防火墙,瑞星卡卡 后再回来运行本安装程序.谢谢.")
Exit
EndIf

If ProcessExists("kvsrvxp.exe")Then
MsgBox(64, "提示", "请您先去控制面板卸载 江民杀毒软件 后再回来运行本安装程序.谢谢.")
Exit
EndIf
  
 
当然,在解决这一个问题上,可根据公司实际情况,再进一步实现自动调用卸载程序。
 
对应解决以上问题8:
$sep32 = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Symantec\InstalledApps", "SAV Install Directory")
If ($sep32 ="") Then
_INetMail ("zhanghong1@ceri.com.cn", "安装失败:关于SEP安装", "我的错误代码是: JCTCO_C_NO005,寻求安装技术支持.")
Exit
Else
MsgBox(64, "提示", "SEP安装成功.建议您重启一下电脑以实现自动更新病毒库.")    
Exit
EndIf
 
最后的最后,我提供一份本公司的SEP智能安装程序参考源程序,参考而已,可随意下载并进行更改为你公司具体环境使用。同时上传一份本人在给客户端部署SEP时出现安装失败,本人原创的 SEP安装失败检测修复软件 一个,希望能帮到您什么......