首页 > 编程 > VBScript > 正文

VBS实现查询服务的制造商

2020-06-26 18:31:37
字体:
来源:转载
供稿:网友

本文给大家分享的是一个使用VBS实现查询服务的制造商的代码,思路非常的巧妙,方法很简单,这里推荐给大家。

一个网友提问:

select * from win32_service 这个能查服务名称、状态……

但我想查这个服务的制造商,如微软、农业银行,还是未知的??这个属性是什么,谢谢……

我发现msconfig中可以看见的,但无法提取

下面给出解答,一种间接方法:

根据服务名获取到关联的主程序,再从主程序获取制造商

 

 
  1. Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!//./root/cimv2"
  2. Set Services = objWMIService.ExecQuery("Select * from Win32_Service"
  3. Set fso = CreateObject("Scripting.FileSystemObject"
  4. Set objShell = CreateObject("Shell.Application"
  5. Set objFolder = objShell.NameSpace(0) 
  6. i = 0 
  7. Do 
  8. If objFolder.GetDetailsOf("", i) = "公司" Then '非中文系统自行修改 
  9. Exit Do 
  10. Else 
  11. i = i+1 
  12. End If 
  13. Loop 
  14.  
  15. For Each objService in Services 
  16. path = GetPath(objService.PathName) 
  17. IF fso.GetExtensionName(path) = "" Then path = path & ".exe" 
  18. Set objFolder = objShell.NameSpace(fso.GetParentFolderName(path)) 
  19. Set objItem = objFolder.ParseName(fso.GetFileName(path)) 
  20. comp = objFolder.GetDetailsOf(objItem, i) 
  21. If comp = "" Then comp = "未知" 
  22. info = info & "服务:"& objService.DisplayName &" 制造商:"& comp & vbCrLF 
  23. Next 
  24. fso.CreateTextFile("info.txt"true).WriteLine info 
  25. MsgBox "完成" 
  26.  
  27. Function GetPath(strng) 
  28. Dim re 
  29. Set re = New RegExp 
  30. re.Pattern = "^""?(.+//[^///s""]+).*" 
  31. GetPath = re.Replace(strng,"$1"
  32. Set regEx = Nothing 
  33. End Function 

是不是非常不错的解法,小伙伴们可以学习下。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表