当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > WINDOWS脚本实践:为SAP补丁制作的VBS脚本代码

VBScript
利用vbs脚本实现设置IE的打印页眉页脚信息
两个vbs脚本利用了wscirpt.network
一次载入2个vbs脚本的方法
一个可以更换windows xp or 2003的序列号的vbs脚本
利用VBS脚本自动创建计算机帐户的代码
利用VBS脚本轻松盗U盘数据
脚本-学习VBS的一个不错的教程
什么是 WSH(脚本宿主)的详细解释
WSH 5.6(脚本宿主) 的新增功能
雷客图ASP站长安全助手vbs测试版代码
ntiIframe.vbs用于批量清除被添加到文件中的恶意代码
用vbs控制iis创建虚拟目录的代码
vbscript自动配置IIS的代码
使用ADSI、ASP和一对魔术戏法自动地创立一个虚拟目录的方法
妙用VBScript自制IE工具栏按钮的代码
利用vbs类实现css按钮的代码
VBS中转换二进制数据为字符串常用办法
提供个可以显示农历的VBS代码
在一个vbs中包含其他vbs文件的方法
用vbs实现定时运行web文件的方法

VBScript 中的 WINDOWS脚本实践:为SAP补丁制作的VBS脚本代码


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 68 ::
收藏到网摘: n/a

脚本主要功能包括:
注册表读取与修改
文件内容修改如HOSTS、SERVICES文件
文件属性修改和文件复制
系统环境变量设置
等,仅供参考
复制代码 代码如下:

'SAP设置脚本
'编写:SCZ 2005.04.20
'最后修改日期: 2005.04.22
'必须存在目录: BW(补丁文件) 和 登入界面
'========================================================================
'全局变量、处理过程
'========================================================================
WScript.Echo "该脚本只能正常运行在WIN2000/XP/2003的操作系统管理员权限下,按'确定'继续"
Set objFSO = CreateObject("Scripting.FileSystemObject") '文件系统对象
strWindir = GetWindir() '获取WINDOWS目录
strSystem = GetSystemPath() '获取System目录
strSapPath = GetSAPPath() 'SAP FrontEnd目录
strSapGuiPath = strSapPath & "SAPgui" 'SapGui目录
strSapBWPath = strSapPath & "BW" 'BW目录
strHostPath = GetHostFilePath() 'host 文件所在目录
strServicesPath = GetServicesPath() 'services 文件所在目录
Call CopyFiles() '复制文件
Call ModifyHost(strHostPath) '修改HOST文件
Call ModifyServices(strServicesPath) '修改SERVICES文件
Call SetEvn(strSapGuiPath) '设置环境变量
Call SetTCPIP(strServicesPath) '修改TCPIP参数
WScript.Echo "BW设置处理完毕,请手动安装SAP系统补丁"

'========================================================================
'通过注册获取SAP FrontEnd目录
'========================================================================
Function GetSAPPath()
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\" & _
strComputer & " ootdefault:StdRegProv")
strKeyPath = "SOFTWARESAPSAP Shared"
strEntryName = "SAPdestdir"
objReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strEntryName,strValue
GetSAPPath = strValue
If IsNull(strValue) Then
Wscript.Echo "SAP注册信息读取失败,SAP未安装或系统已损坏,安装终止"
Err.Raise(507)
Err.Clear
End If
End Function

'========================================================================
'获取WINDOWS目录
'========================================================================
Function GetWindir()
Const WindowFolder = 0
Set GetWindir = objFSO.GetSpecialFolder(WindowFolder)
End Function

'========================================================================
'获取SYSTEM目录
'========================================================================
Function GetSystemPath()
Const SystemFolder = 1
Set GetSystemPath = objFSO.GetSpecialFolder(SystemFolder)
End Function

'========================================================================
'获取HOST文件所在目录
'========================================================================
Function GetHostFilePath()
GetHostFilePath = strSystem & "driversetc"
End Function

'========================================================================
'获取Services文件所在目录
'========================================================================
Function GetServicesPath()
GetServicesPath = strSystem & "driversetc"
End Function
'========================================================================
'复制文件
'========================================================================
Function CopyFiles()
If NOT objFSO.FolderExists(strSapBWPath) Then
WScript.Echo "BW组件未安装,请先安装SAP的BW组件,再运行该脚本"
Err.Raise(507)
Err.Clear
End If
Call ClearAttribs(strSapBWPath)
objFSO.CopyFile "登陆界面*.ini" , strWindir
objFSO.CopyFile "BWgssntlm.dll" , strSapGuiPath & "gssntlm.dll"
objFSO.CopyFile "BWsncgss32.dll" , strSystem & "sncgss32.dll"
strBakFolder =strSapBWPath & "ak"
IF NOT objFSO.FolderExists(strBakFolder) Then
objFSO.CreateFolder(strBakFolder)
Else
Call ClearAttribs(strBakFolder)
End If
objFSO.CopyFile strSapBWPath & "*.xla" , strBakFolder
objFSO.CopyFile "BW*.xla" , strSapBWPath
End Function
'========================================================================
'去除文件只读属性
'========================================================================
Function ClearAttribs(strFolder)
Call ClearFileAttrib(strFolder & "sapbex.xla")
Call ClearFileAttrib(strFolder & "sapbexc.xla")
Call ClearFileAttrib(strFolder & "sapbexs.xla")
Call ClearFileAttrib(strFolder & "sapbex0.xla")
Call ClearFileAttrib(strSystem & "sncgss32.dll")
End Function
'========================================================================
'去除文件只读属性
'========================================================================
Function ClearFileAttrib(strFile)
If objFSO.FileExists(strFile) Then
Set f = objFSO.GetFile(strFile)
f.Attributes = 0
End If
End Function
'========================================================================
'修改HOST文件
'========================================================================
Function ModifyHost(strHostPath)
strHostFile = strHostPath & "hosts"
strHostBak = strHostPath & "hosts.bak"
Const ForReading = 1, ForWriting = 2, ForAppending = 8
objFSO.CopyFile strHostFile , strHostBak
Set objFile = objFSO.OpenTextFile(strHostFile, ForReading, False)
strContents = objFile.ReadAll
objFile.Close
Set objFile = objFSO.OpenTextFile(strHostFile, ForAppending, False)
objFile.WriteBlankLines 1
compResult = Instr(strContents,"192.168.0.136")
If compResult = 0 Then objFile.WriteLine("192.168.0.136" & Chr(9) & "bwprd")
compResult = Instr(strContents,"192.168.0.135")
If compResult = 0 Then objFile.WriteLine("192.168.0.135" & Chr(9) & "bwdev")
compResult = Instr(strContents,"192.168.0.171")
If compResult = 0 Then objFile.WriteLine("192.168.0.171" & Chr(9) & "bwqas")
objFile.close
End Function
'========================================================================
'修改SERVICES文件
'========================================================================
Function ModifyServices(strServicesPath)
strServicesFile = strServicesPath & "services"
strServicesbak = strServicesPath & "services.bak"
Const ForReading = 1, ForWriting = 2, ForAppending = 8
objFSO.CopyFile strServicesFile , strServicesbak
Set objFile = objFSO.OpenTextFile(strServicesFile, ForReading, False)
strContents = objFile.ReadAll
objFile.Close
Set objFile = objFSO.OpenTextFile(strServicesFile, ForAppending, False)
objFile.WriteBlankLines 1
compResult = Instr(strContents, "sapmsP01")
If compResult = 0 Then objFile.WriteLine("sapmsP01" & Chr(9) & "3600/tcp")
objFile.Close
End Function
'========================================================================
'设置环境变量
'------------------------------------------------------------------------
Function SetEvn(strSapGuiPath)
strComputer = "."
Set objWMIService = GetObject("winmgmts:\" & strComputer & " ootcimv2")
Set colItems = objWMIService.ExecQuery( "Select * from Win32_Environment where name = 'SNC_LIB'")
Found = False
For Each objItem in colItems
If UCase(objItem.Name) = "SNC_LIB" Then
Found = True
objItem.VariableValue = strSapGuiPath & "gssntlm.dll"
objItem.Put_
End If
Next
If (Found = False) Then
Set oEvn = objWMIService.Get("Win32_Environment").Spawninstance_
oEvn.Name = "SNC_LIB"
oEvn.VariableValue = strSapGuiPath & "gssntlm.dll"
oEvn.SystemVariable = True
oEvn.UserName = "<SYSTEM>"
oEvn.Status = "OK"
Set oPath = oEvn.Put_
End If
End Function
'========================================================================
'========================================================================
'设置TCP/IP参数
'------------------------------------------------------------------------
Function SetTCPIP(strServicesPath)
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\" & _
strComputer & " ootdefault:StdRegProv")
strKeyPath = "SYSTEMCurrentControlSetServicesTcpipParameters"
strEntryName = "DataBasePath"
objReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strEntryName,strServicesPath
End Function
'========================================================================