• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    WINDOWS脚本实践:为SAP补丁制作的VBS脚本代码
    脚本主要功能包括:

    注册表读取与修改 
    文件内容修改如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 
    '========================================================================
    上一篇:右键发送(sendto),创建快捷方式到自定义的位置 的vbs
    下一篇:Adsutil.vbs 在脚本攻击中的妙用[我非我原创]
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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