POPTEST老李分享一键停止Oracle相关服务

POPTEST老李分享一键停止Oracle相关服务

    poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话010-84505200。

   最近有老学员问我QTP的问题,如何自动控制ORACLE,由于现在POPTEST已经不在培训qtp了,为了帮助学员解决问题我在这里分享个vbs的脚本。

 

自从安装了Oracle数据库后,我电脑的运行速度满了很多。为此我想了一个办法,让我在不需要使用Oracle数据库的时候,可以轻松地关掉Oracle相关服务。

我安装的Oracle版本为Oracle11g,与Oracle有关的服务如下图所示:

POPTEST老李分享一键停止Oracle相关服务_第1张图片

这些服务包括:

1、Oracle ORCL VSS Writer Service(手动启动)

2、OracleDBConsoleorcl(自动启动)

3、OracleJobSchedulerORCL(禁用)

4、OracleMTSRecoveryService(自动启动)

5、OracleOraDb11g_home1ClrAgent(手动)

6、OracleOraDb11g_home1TNSListener(自动启动)

7、OracleServiceORCL(自动启动)

其中,需要我们用脚本关闭的服务,都是开机自启动且当前已启动的服务,一共有四个(2、4、6、7)。

我们可以使用WQL查出这四个服务,逐一关闭即可。

VBS脚本(StopServiceLikeOracle.vbs)如下:

Set ServiceSet = GetObject("winmgmts:"). _
    ExecQuery("select * from Win32_Service where name like 'Oracle%' and started = true")
 
For Each Service In ServiceSet
    WScript.Echo "Deal with service: " & Service.Name
    RetVal = Service.StopService()
    If RetVal = 0 Then 
        WScript.Echo "Service stopped: " & Service.Name
    ElseIf RetVal = 5 Then 
        WScript.Echo "Service already stopped: " & Service.Name
    Else 
        WScript.Echo "Return value: " & RetVal
    End if
Next

其中Service下的StopService函数返回值,可以参阅MSDN文档:

https://msdn.microsoft.com/en-us/library/aa393673%28v=vs.85%29.aspx

调用这个VBS脚本的BAT脚本如下:

call C:\Users\Tsybius\Desktop\StopServiceLikeOracle\StopServiceLikeOracle.vbs
pause

注意要使用管理员身份调用此BAT脚本,否则会在关闭服务的时候触发权限不足的错误。使用管理员身份调用BAT脚本时,里面的VBS脚本地址,要写绝对地址(或相对于System32目录的相对地址)。

使用效果如下:

POPTEST老李分享一键停止Oracle相关服务_第2张图片

执行完毕后,可以看到各服务都已停止(或在停止的过程中,此时状态列会显示为“停止”)

顺便总结一下,在写WQL查询时,可以使用Windows自带的测试工具wbemtest.exe,步骤如下:

步骤1,在开始菜单中输入wbemtest.exe,找到这个程序后打开改程序。

POPTEST老李分享一键停止Oracle相关服务_第3张图片

(限于图片大小限制,上图中省去了开始菜单中间大片的白色无内容区域)

步骤2,点击【连接】按钮,进入连接界面,再点击【连接】

POPTEST老李分享一键停止Oracle相关服务_第4张图片

步骤3,连接成功后,点击【查询】按钮,弹出查询界面,在查询界面中输入查询WQL语句,再点击【应用】按钮

POPTEST老李分享一键停止Oracle相关服务_第5张图片

步骤4,此时会弹出一个查询结果页面,显示WQL语句的查询结果

POPTEST老李分享一键停止Oracle相关服务_第6张图片


你可能感兴趣的:(软件测试)