• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

    VBS实现查询服务的制造商

    发布者: 嘉6148 | 发布时间: 2025-8-13 23:16| 查看数: 94| 评论数: 0|帖子模式

    一个网友提问:

    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. For Each objService in Services
    15.   path = GetPath(objService.PathName)
    16.   IF fso.GetExtensionName(path) = "" Then path = path & ".exe"
    17.   Set objFolder = objShell.NameSpace(fso.GetParentFolderName(path))
    18.   Set objItem = objFolder.ParseName(fso.GetFileName(path))
    19.   comp = objFolder.GetDetailsOf(objItem, i)
    20.   If comp = "" Then comp = "未知"
    21.   info = info & "服务:"& objService.DisplayName &" 制造商:"& comp & vbCrLF
    22. Next
    23. fso.CreateTextFile("info.txt", true).WriteLine info
    24. MsgBox "完成"

    25. Function GetPath(strng)
    26.   Dim re
    27.   Set re = New RegExp
    28.   re.Pattern = "^""?(.+\\[^\\\s""]+).*"
    29.   GetPath = re.Replace(strng,"$1")
    30.   Set regEx = Nothing
    31. End Function
    复制代码
    是不是非常不错的解法,小伙伴们可以学习下。

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    最新评论

    浏览过的版块

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表