fuinei 发表于 2012-6-2 01:06:04

[已解决]检测远程计算机服务状态和重启远程计算机服务问题

本帖最后由 fuinei 于 2012-6-8 07:53 编辑

各位好,请问使用AU3能否实现以下2个功能呢?
1、检测远程计算机(如Print Spooler)服务是否处于启动状态
2、重启远程计算机指定的服务(如Print Spooler)

502762378 发表于 2012-6-2 10:49:43

回复 1# fuinei


    用WMI研究一下呗,我有例子的,非常简单

fuinei 发表于 2012-6-3 15:32:15

回复 2# 502762378

谢谢502762378兄的指导,参考你的贴子通过WMI可实现远程计算机指定服务的启动和停止,目前有以下2个问题:
1、WMI能否查询远程计算机指定服务的当前状态(启动/停止),如服务处于停止状态再执行停止服务的操作将会等待很长的时间
2、对于重启服务目前采取停止后启动的方式,WMI中有Restart服务的功能吗

cj-reggie 发表于 2012-6-4 09:13:48

回复 2# 502762378


    请问wmi能实现启动指定应用程序么?谢谢

fuinei 发表于 2012-6-5 18:14:04

希望502762378兄能指导一下通过WMI如何判断服务的当前状态,谢谢!

502762378 发表于 2012-6-5 20:15:27

回复 5# fuinei


    实话说我的帖子注释非常详细,哎满足一下你吧,至于你说的Restart服务真没有发现,再说正常情况下操作服务系统也没有给出Restart功能
$servername = "Print Spooler"
MsgBox(1,"本机"&$servername&"服务当前的状态为:",_wmi_getserviceStarted(".",$servername))
Func _wmi_getserviceStarted($ip,$Caption)
      Local $objWMIService = ObjGet("winmgmts:\\" & $ip& "\root\CIMV2")
      $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Service", "WQL",48)
      For $objItem In $colItems
                        If $objItem.Caption =$CaptionThen Return $objItem.Started;表示服务是启动(true)还是停止(false)
      Next
EndFunc

fuinei 发表于 2012-6-8 07:52:50

回复 6# 502762378

5202762378兄说得对,windows本身的Net命令也没有restart的参数。这段代码在你原来的贴子也是有的,我当没有注意到,谢谢502762378兄的指导!

baduxiyang 发表于 2016-12-13 00:41:43

看看是不是PINf
页: [1]
查看完整版本: [已解决]检测远程计算机服务状态和重启远程计算机服务问题