WINDOWS脚本实践:为SAP补丁制作的VBS脚本代码
作者 佚名
来源 ASP编程
浏览
发布时间 2013-07-09
脚本主要功能包括: 注册表读取与修改 文件内容修改如HOSTS、SERVICES文件 文件属性修改和文件复制 系统环境变量设置 等,仅供参考 复制代码 代码如下: ''SAP设置脚本 ''编写:SCZ2005.04.20 ''最后修改日期:2005.04.22 ''必须存在目录:BW(补丁文件)和登入界面 ''======================================================================== ''全局变量、处理过程 ''======================================================================== WScript.Echo"该脚本只能正常运行在WIN2000/XP/2003的操作系统管理员权限下,按''确定''继续" SetobjFSO=CreateObject("Scripting.FileSystemObject")''文件系统对象 strWindir=GetWindir()''获取WINDOWS目录 strSystem=GetSystemPath()''获取System目录 strSapPath=GetSAPPath()''SAPFrontEnd目录 strSapGuiPath=strSapPath&"SAPgui"''SapGui目录 strSapBWPath=strSapPath&"BW"''BW目录 strHostPath=GetHostFilePath()''host文件所在目录 strServicesPath=GetServicesPath()''services文件所在目录 CallCopyFiles()''复制文件 CallModifyHost(strHostPath)''修改HOST文件 CallModifyServices(strServicesPath)''修改SERVICES文件 CallSetEvn(strSapGuiPath)''设置环境变量 CallSetTCPIP(strServicesPath)''修改TCPIP参数 WScript.Echo"BW设置处理完毕,请手动安装SAP系统补丁" ''======================================================================== ''通过注册获取SAPFrontEnd目录 ''======================================================================== FunctionGetSAPPath() ConstHKEY_LOCAL_MACHINE=&H80000002 strComputer="." SetobjReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\"&_ strComputer&"ootdefault:StdRegProv") strKeyPath="SOFTWARESAPSAPShared" strEntryName="SAPdestdir" objReg.GetStringValueHKEY_LOCAL_MACHINE,strKeyPath,strEntryName,strValue GetSAPPath=strValue IfIsNull(strValue)Then Wscript.Echo"SAP注册信息读取失败,SAP未安装或系统已损坏,安装终止" Err.Raise(507) Err.Clear EndIf EndFunction ''======================================================================== ''获取WINDOWS目录 ''======================================================================== FunctionGetWindir() ConstWindowFolder=0 SetGetWindir=objFSO.GetSpecialFolder(WindowFolder) EndFunction ''======================================================================== ''获取SYSTEM目录 ''======================================================================== FunctionGetSystemPath() ConstSystemFolder=1 SetGetSystemPath=objFSO.GetSpecialFolder(SystemFolder) EndFunction ''======================================================================== ''获取HOST文件所在目录 ''======================================================================== FunctionGetHostFilePath() GetHostFilePath=strSystem&"driversetc" EndFunction ''======================================================================== ''获取Services文件所在目录 ''======================================================================== FunctionGetServicesPath() GetServicesPath=strSystem&"driversetc" EndFunction ''======================================================================== ''复制文件 ''======================================================================== FunctionCopyFiles() IfNOTobjFSO.FolderExists(strSapBWPath)Then WScript.Echo"BW组件未安装,请先安装SAP的BW组件,再运行该脚本" Err.Raise(507) Err.Clear EndIf CallClearAttribs(strSapBWPath) objFSO.CopyFile"登陆界面*.ini",strWindir objFSO.CopyFile"BWgssntlm.dll",strSapGuiPath&"gssntlm.dll" objFSO.CopyFile"BWsncgss32.dll",strSystem&"sncgss32.dll" strBakFolder=strSapBWPath&"ak" IFNOTobjFSO.FolderExists(strBakFolder)Then objFSO.CreateFolder(strBakFolder) Else CallClearAttribs(strBakFolder) EndIf objFSO.CopyFilestrSapBWPath&"*.xla",strBakFolder objFSO.CopyFile"BW*.xla",strSapBWPath EndFunction ''======================================================================== ''去除文件只读属性 ''======================================================================== FunctionClearAttribs(strFolder) CallClearFileAttrib(strFolder&"sapbex.xla") CallClearFileAttrib(strFolder&"sapbexc.xla") CallClearFileAttrib(strFolder&"sapbexs.xla") CallClearFileAttrib(strFolder&"sapbex0.xla") CallClearFileAttrib(strSystem&"sncgss32.dll") EndFunction ''======================================================================== ''去除文件只读属性 ''======================================================================== FunctionClearFileAttrib(strFile) IfobjFSO.FileExists(strFile)Then Setf=objFSO.GetFile(strFile) f.Attributes=0 EndIf EndFunction ''======================================================================== ''修改HOST文件 ''======================================================================== FunctionModifyHost(strHostPath) strHostFile=strHostPath&"hosts" strHostBak=strHostPath&"hosts.bak" ConstForReading=1,ForWriting=2,ForAppending=8 objFSO.CopyFilestrHostFile,strHostBak SetobjFile=objFSO.OpenTextFile(strHostFile,ForReading,False) strContents=objFile.ReadAll objFile.Close SetobjFile=objFSO.OpenTextFile(strHostFile,ForAppending,False) objFile.WriteBlankLines1 compResult=Instr(strContents,"192.168.0.136") IfcompResult=0ThenobjFile.WriteLine("192.168.0.136"&Chr(9)&"bwprd") compResult=Instr(strContents,"192.168.0.135") IfcompResult=0ThenobjFile.WriteLine("192.168.0.135"&Chr(9)&"bwdev") compResult=Instr(strContents,"192.168.0.171") IfcompResult=0ThenobjFile.WriteLine("192.168.0.171"&Chr(9)&"bwqas") objFile.close EndFunction ''======================================================================== ''修改SERVICES文件 ''======================================================================== FunctionModifyServices(strServicesPath) strServicesFile=strServicesPath&"services" strServicesbak=strServicesPath&"services.bak" ConstForReading=1,ForWriting=2,ForAppending=8 objFSO.CopyFilestrServicesFile,strServicesbak SetobjFile=objFSO.OpenTextFile(strServicesFile,ForReading,False) strContents=objFile.ReadAll objFile.Close SetobjFile=objFSO.OpenTextFile(strServicesFile,ForAppending,False) objFile.WriteBlankLines1 compResult=Instr(strContents,"sapmsP01") IfcompResult=0ThenobjFile.WriteLine("sapmsP01"&Chr(9)&"3600/tcp") objFile.Close EndFunction ''======================================================================== ''设置环境变量 ''------------------------------------------------------------------------ FunctionSetEvn(strSapGuiPath) strComputer="." SetobjWMIService=GetObject("winmgmts:\"&strComputer&"ootcimv2") SetcolItems=objWMIService.ExecQuery("Select*fromWin32_Environmentwherename=''SNC_LIB''") Found=False ForEachobjItemincolItems IfUCase(objItem.Name)="SNC_LIB"Then Found=True objItem.VariableValue=strSapGuiPath&"gssntlm.dll" objItem.Put_ EndIf Next If(Found=False)Then SetoEvn=objWMIService.Get("Win32_Environment").Spawninstance_ oEvn.Name="SNC_LIB" oEvn.VariableValue=strSapGuiPath&"gssntlm.dll" oEvn.SystemVariable=True oEvn.UserName="<SYSTEM>" oEvn.Status="OK" SetoPath=oEvn.Put_ EndIf EndFunction ''======================================================================== ''======================================================================== ''设置TCP/IP参数 ''------------------------------------------------------------------------ FunctionSetTCPIP(strServicesPath) ConstHKEY_LOCAL_MACHINE=&H80000002 strComputer="." SetobjReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\"&_ strComputer&"ootdefault:StdRegProv") strKeyPath="SYSTEMCurrentControlSetServicesTcpipParameters" strEntryName="DataBasePath" objReg.SetStringValueHKEY_LOCAL_MACHINE,strKeyPath,strEntryName,strServicesPath EndFunction ''======================================================================== |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于WINDOWS脚本实践:为SAP补丁制作的VBS脚本代码的所有评论