Board logo

标题: [转贴] 【教程汇总】WMI、WMIC应用教程(2022-02-06) [打印本页]

作者: Batcher    时间: 2009-4-8 12:49     标题: 【教程汇总】WMI、WMIC应用教程(2022-02-06)

微软官方文档 wmisdk - Windows Management Instrumentation
https://docs.microsoft.com/zh-cn/windows/win32/wmisdk/wmi-start-page

微软官方文档 wmisdk - 关于 WMI
https://docs.microsoft.com/zh-cn/windows/win32/wmisdk/about-wmi

微软官方文档 wmisdk - 使用 WMI
https://docs.microsoft.com/zh-cn/windows/win32/wmisdk/using-wmi

微软官方文档 wmisdk - WMI 参考
https://docs.microsoft.com/zh-cn/windows/win32/wmisdk/wmi-reference

微软官方文档 wmisdk - WMI 术语表
https://docs.microsoft.com/zh-cn/windows/win32/wmisdk/wmi-glossary

WMIC简单介绍
http://bbs.bathome.net/thread-4068-1-1.html#pid25946

WMIC开发技术资料全收藏
http://bbs.bathome.net/thread-4068-1-1.html#pid25947

WMIC应用类日志
http://bbs.bathome.net/thread-4068-1-1.html#pid25948

WMIC操作系统日志
http://bbs.bathome.net/thread-4463-1-1.html

WMIC从命令行对Windows的全面管理
http://bbs.bathome.net/thread-4068-1-1.html#pid25949

一起学习WMIC
http://bbs.bathome.net/thread-420-1-1.html

WMIC命令行管理规范
http://bbs.bathome.net/thread-4064-1-1.html

微软官方最齐全的 WMI VBScript 实例 Scriptomatic 2.0
http://bbs.bathome.net/thread-534-1-1.html

System Administration Scripting Guide (Script Repository)
http://bbs.bathome.net/thread-2320-1-1.html

Managing Windows with VBScript and WMI
http://bbs.bathome.net/thread-377-1-1.html
作者: Batcher    时间: 2009-4-8 12:50     标题: WMIC简单介绍

  1. WMIC 全新的超级命令行管理工具
  2.   微软Windows Server的图形界面接口在为网络管理提供便利的同时,因其消耗资源偏大、操作缓慢而颇受Windows管理员的微词,为提供一个图形管理界面之外的另一种选择,微软推出了集WMI的强大与命令行的简洁于一身的全新的命令行管理工具WMIC。加入了WMIC的Windows server 2003的命令行,据称可以完成几乎所有的管理任务。
  3.   以DOS起家的微软,最终靠图形界面一统了天下。传统的微软Windows Server的图形界面接口,在使系统管理简单易行的同时,其偏大的资源消耗与缓慢的操作速度,不但使众多IT Pro级系统管理员颇有微词,也使许多从Unix、NetWare转过来的系统管理员短时间内难以适从。虽然微软开发了WMI(Windows Management Instrumentation,Windows管理架构),并在Support Tools和Resource Kits提供了大量基于WMI的脚本让管理员使用,在命令行下管理服务器,但复杂的脚本编程同样令许多管理员却步,因为并非每个管理员都是脚本编程高手。从另一个角度讲,图形界面接口像一个黑盒子,使许多管理员丧失了量身定制管理任务的机会与乐趣,只能亦步亦趋地跟在越来越多的向导屁股后面,不停地点按着"下一步"。
  4.   鉴于上述原因,微软在Windows Server 2003中,综合了WMI的强大与命令行的简洁,推出了全新的命令行管理工具WMIC,英文全称Windows Management Instrumentation Command-line,即Windows管理规范命令行。并声称使用WMIC,再配合其他现存的命令行工具,管理员几乎可以完成所有的管理任务,而不必再过多地依赖那些图形界面。
  5.   本文将对WMIC进行一个简单的介绍,由于笔者在撰稿时Windows Server 2003还没有正式发布,所以一切技术均以Windows Server 2003 RC2(Build 3718)为准,最终版本正式发布后可能会有变化。
  6.   背景:WMI、WBEM与CIM
  7.   关于WMI,我们在以前的文章中多次提及,并有过具体的应用,如《使用VS.NET实现WMI调用》(2003年1月刊),《限制域用户同时的多点登录》与《来一段脚本,Kill掉Mike的歌》(2003年2月刊)等。这里不准备再对其做详细的说明,只做一下简单的介绍。
  8.   WMI是微软基于Web的企业管理(WBEM)这一理念与标准的具体实现,并对CIM(Common Information Model,公用信息模型)提供完整的支持。WMI由符合CIM标准的对象储备库(Object Repository)和CIM对象管理器(WMI Object Manager)组成,其中对象储备库是对象定义的数据库,对象管理器负责处理储备库中对象的收集和操作,并从WMI提供程序(WMI Provider)收集信息。WMI提供程序在WMI与操作系统组件、应用程序和其他系统之间充当中间人角色,两者通过WMI提供程序交换信息。WMI提供程序的主要作用就是为WMI提供下层对象的相关信息,以及允许WMI通过它对下层对象进行管理。例如,注册表提供程序从注册表中提供信息,而SNMP提供程序则从SNMP设备中提供数据和事件等。
  9.   WMI被许多计算机管理工具所用,如Microsoft Systems Management Server、Microsoft Health Monitor和Microsoft Operations Manager等。
  10.   WMIC概述
  11.   WMIC,是一款新出现在Windows Server 2003中的命令行管理工具。使用WMIC,你不但可以管理本地计算机,而且可以管理同一Windows域内的所有远程计算机(需要必要的权限),而被管理的远程计算机不必事先安装WMIC,只需要支持WMI即可。
  12.   WMIC有一个能够分析、解释和执行从命令行接收的别名(Alias)的引擎,它是一个可执行文件,名为WMIC.exe,这个文件通常位于"c:\windows\
  13.   system32\wbem"文件夹中,该程序运行于用户当前登录的计算机上。任何对WMIC命令行的扩展性能都经过别名文件定义或者注册。别名又称友好名称(Friendly Names),通过MOF(Management Object Format,管理对象格式)格式定义。WMIC引擎接收到输入的命令后,先进行分析。如果命令是一个别名,WMIC会从当前操作命名空间(比如root\cli)调用该别名的定义,应用当前的环境设置(如目标命名空间),并将别名命令与它的原始命令进行对应,然后执行。
  14.   具体来说,你可以使用WMIC实现如下的管理任务:
  15.   1、本地计算机管理
  16.   2、远程单个计算机管理
  17.   3、远程多个计算机管理
  18.   4、使用远程会话的计算机管理(如Telnet)
  19.   5、使用管理脚本的自动管理
  20.   只有本地管理员组成员才能够启动WMIC,由于WMIC本质上是WMI的一个客户端,因此WMIC的安全受限于WMI的安全。当WMIC在一个远程会话中被使用时,如Telnet、终端服务等,缺省情况下,它使用发起此会话的用户的安全上下文。在使用WMIC管理一个远程计算机之前,WMIC会Ping一下远程计算机以确定其状态。
  21.   在使用WMIC命令行时,可以随时使用"/?"来获得当前命令上下文的帮助信息。
  22.   执行模式
  23.   WMIC可以以两种模式执行:交互模式(Interactive mode)和非交互模式(Non-Interactive mode),经常使用Netsh命令行的管理员应该非常熟悉这两种模式。
  24.   交互模式。如果你在命令提示符下或通过"运行"菜单只输入WMIC,都将进入WMIC的交互模式,每当一个命令执行完毕后,系统还会返回到WMIC提示符下,如"Root\cli",交互模式通常在需要执行多个WMIC指令时使用。当你需要先执行"CONTEXT"命令查看环境变量,再使用"OS"命令查看当前操作系统消息时,就可以使用交互模式,如图1所示。交互模式有时还会对一些敏感的操作要求确认,比如删除操作,最大限度地防止管理员出现失误。
  25.   非交互模式。非交互模式是指将WMIC指令直接作为WMIC的参数放在WMIC后面,当指令执行完毕后再返回到普通的命令提示符下,而不是进入到WMIC上下文环境中。WMIC的非交互模式主要用于批处理或者其他一些脚本文件中,比如上面的"OS"命令在非交互模式下就可以使用下面的方式执行:
  26.   wmic os /?
  27.   使用WMIC管理系统
  28.   WMIC包含了众多的开关、命令,以及内置的别名,详细内容见表1、表2和表3。下面让我们通过具体的实例体验一下WMIC的强大功能。
  29.   简单管理任务
  30.   使用WMIC,可以完成一些简单的管理任务,比如查看硬件与操作系统信息。如果不使用WMIC,查询硬件如BIOS、CPU、操作系统等信息,通常是使用系统提供的API接口进行编程,或者编写一小段脚本程序,是一件比较麻烦的事情,如表4所示就是一个查询BIOS信息的传统VBscript脚本。如果使用WMIC,那情况就大不相同,只需要一个简单命令就能搞定:
  31.   wmic bios list full
  32.   结果如图2所示。
  33.   大家可能注意到了上面命令行中还有两个参数list和full。list决定显示的信息格式与范围,它有Brief、Full、Instance、Status、System、Writeable等多个参数,full只是它的一个参数,也是list的缺省参数,表示显示所有的信息。其他几个参数顾名思义,如Brief表示只显示摘要信息,Instance表示只显示对象实例,Status表示显示对象状态,Writeable表示只显示该对象的可写入的属性信息等。
  34.   在管理过程中,尤其是进行远程系统管理的时候,管理员多数喜欢列一下进程列表,以了解当前系统中正在运行的程序。下面的命令就可以达到这一目的:
  35.   wmic process list brief
  36.   它会显示当前所有进程的一些摘要信息,比如进程名称、进程ID和优先级等。在我以前的文章《来一段脚本,Kill掉Mike的歌》中,就可以使用这一命令代替那个list.vbs脚本。
  37.   复杂管理任务
  38.   WMIC在完成复杂管理任务方面也是非常出色的,先看一下查询事件日志并生成结果文件的例子:
  39.   WMIC /node:"dc2" /user:"mytest" NTEVENTswheres"eventtype<3 and eventtype>0 AND logfile='Application'" GET Logfile, SourceName, Eventtype, Message, TimeGenerated /FORMAT:htable:"sortby=EventType">c:\Application.htm
  40.   这行长长的命令表示从计算机DC2中查询应用程序日志信息,事件类型为小于3且大于0的事件,通常是警告与错误事件。因为是远程计算机,所以命令中使用了"/node"和"/user"开关。输出结果保存为网页格式,保存在"c:\Application.htm"文件中,并以事件类型进行排序。当你使用上面的命令时,因为使用了"/user"开关,所以系统会首先提示你输入与该用户匹配的密码,如图3所示,查询结果如图4所示。
  41.   同样,你还可以使用WMIC同时重新启动多台被管理的服务器或工作站,命令如下:
  42.   WMIC /NODE:@"c:\MyServerList.txt" OSswheres(Primary="TRUE") CALL Win32ShutDown 6
  43.   WMIC会首先从"c:\MyServerList.txt"中取得服务器名称列表,这些服务器名称在文件中以逗号分割,如"dc1,dc2"。要注意的是,在/node开关后面使用服务器列表文件时,一定要在文件名的前面加上"@"引导符。该命令执行结果如图5所示,在执行重新启动过程中,WMIC会返回详细的执行结果。
  44.   WMIC还可以从Active Directory中取得数据,下面是一个从Active Directory中取得用户信息的例子,取得的用户信息包括显示名称、UPN名称、名称和创建时间等,返回结果如图6所示:
  45.   WMIC/NAMESPACE:\root\directory\ldap PATH ds_user GET ds_displayname, ds_userprincipalname, ds_cn, ds_name, ds_whencreated /VALUE
  46.   总结
  47.   WMIC是我所见到的基于windows平台的功能最强大的命令行工具,但同样也是最复杂的工具。尤其是在完成复杂的管理任务时,你需要对WMI的Win32类的属性及方法非常熟悉才可能做到游刃有余。因此,在希望熟悉运用WMIC之前,建议先学习WMI,熟悉其Win32类的各种属性及方法。国内现在出过几本不错的WMI书籍,你也可以到微软的MSDN网站(MSDN.microsoft.com)上查询这方面的信息。
  48.   有了WMIC的加入,命令行们应该可以大声说:"虽然我很丑,但是我很强大"了
复制代码
原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=22790
作者: Batcher    时间: 2009-4-8 12:51     标题: WMIC开发技术资料全收藏

最近收集了一些WIM WMIC的有关资料,现在贴一些上来,需要的可以顶帖,如果斑竹看的上可以加精!

谢谢,对于WIM和WIMC我不懂,最近听说这个东西很好,可以配合WINDOWS脚本完成绝大多数的系统维护操作,而且到MS网站上的脚本中心看到大量的脚本实例,觉得很有研究价值!

根据楼下的兄弟建议,把所有的都转移到顶贴中便于下载。谢谢该兄弟的建议。

1.《WMI技术指南》:这个是基本上已经绝版的好图书,在网上唯一能找到的是来自“MS技术中国”的扫描版,该书我也是向该论坛斑竹索取的。谢谢技术中国也谢谢CN-DOS。
下载地址:
https://pan.baidu.com/s/12LcQF9rZxY7HghT1gF177A?pwd=2gvb
http://zhenlove.com.cn/cndos/fileup/files/Wmi技术指南(PDF).rar
2.《WMI开发文档》来自MS网站地址是:
https://docs.microsoft.com/zh-cn/windows/win32/wmisdk/wmi-start-page
http://zhenlove.com.cn/cndos/fileup/files/wmisdk(WMI开发文档).rar
3.《WMIC:从命令行对Windows的全面管理》,收集于网站:下载地址:
http://bbs.bathome.net/thread-4068-1-1.html#pid25949
http://zhenlove.com.cn/cndos/fileup/files/WMIC从命令行对Windows的全面管理.rar
4.一段关于WMI的脚本,该脚本来自MS网站,原内容有点问题,稍微修正了一下.要运行该脚本,请复制代码到记事本中并保存为"search.vbs",注意保存时必须加引号,否则不是脚本文件而是文本文件;然后到CMD下使用命令,格式如下:Search.vbs 类关键字,该脚本可以实现搜索WMI CLASS的是属性等.
  1. ;代码开始=============================================
  2. Set args = wscript.arguments
  3. If args.Count <= 0 Then
  4.     Wscript.Echo "Tool to search for a matching class in the WMI Repository. "
  5.     Wscript.Echo "USAGE: <keywordToSearch> [<namespaceToSearchIn>]"
  6.     Wscript.Echo "Example1: Cscript search.vbs service"
  7.     Wscript.Echo "Example2: Cscript search.vbs video root\cimv2"
  8. Else
  9.     ' If no Namespace is specified then the Default is the ROOT namespace
  10.     rootNamespace = "\\.\ROOT"
  11.     keyword = args(0)
  12.     If args.Count > 1 Then
  13.         rootNamespace = args(1)
  14.     End If   
  15.     EnumNameSpace rootNamespace
  16.     Wscript.Echo vbNewLine
  17. End if
  18.   
  19. ' Subroutine to recurse through the namespaces
  20. Sub EnumNameSpace(parentNamespaceName)
  21. Set objService = GetObject("winmgmts:" & parentNamespaceName)
  22. Set collMatchingClasses = objService.Execquery _
  23.     ("Select * From meta_class Where __class " & _
  24.     "Like '%" & keyword & "%'")
  25. If (collMatchingClasses.count > 0) Then
  26.     Wscript.Echo vbNewLine
  27.     Wscript.Echo vbNewLine
  28.     Wscript.Echo "Matching Classes Under Namespace: " & parentNamespaceName
  29.     For Each matchingClass in collMatchingClasses
  30.         Wscript.Echo "    " & matchingClass.Path_.CLASS
  31.     Next   
  32. End if
  33. Set collSubNamespaces = objService.Execquery _
  34.     ("select * from __namespace")
  35. For Each subNameSpace in collSubNamespaces
  36.     EnumNameSpace subNameSpace.path_.namespace + _
  37.         "\" + subNameSpace.Name
  38. Next
  39. End Sub
  40. ;代码结束======================================================
复制代码
5.WMI CLASSES有关资料,来源于MS网站,下载地址:http://zhenlove.com.cn/cndos/fileup/files/WMI Classes.rar
关于检查电脑所有脚本版本检测的有关脚本,请把代码保存为version.vbs.双击运行或在CMD下输入 start version.vbs (注意匹配自己的路径)
  1. ;代码开始===============================================
  2. On Error Resume Next
  3. WScript.Echo "WSH Version: " & WScript.Version
  4. Wscript.Echo "VBScript Version: " & ScriptEngineMajorVersion _
  5.     & "." & ScriptEngineMinorVersion
  6. strComputer = "."
  7. Set objWMIService = GetObject("winmgmts:" _
  8.     & "{impersonationLevel=impersonate}!\\" & strComputer _
  9.         & "\root\cimv2")
  10. Set colWMISettings = objWMIService.ExecQuery _
  11.     ("Select * from Win32_WMISetting")
  12. For Each objWMISetting in colWMISettings
  13.     Wscript.Echo "WMI Version: " & objWMISetting.BuildVersion
  14. Next
  15. Set objShell = CreateObject("WScript.Shell")
  16. strAdsiVersion = objShell.RegRead("HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\{E92B03AB-B707-11d2-9CBD-0000F87A369E}\Version")
  17. If strAdsiVersion = vbEmpty Then
  18.     strAdsiVersion = objShell.RegRead("HKLM\SOFTWARE\Microsoft\ADs\Providers\LDAP\")
  19.     If strAdsiVersion = vbEmpty Then
  20.         strAdsiVersion = "ADSI is not installed."
  21.     Else
  22.         strAdsiVersion = "2.0"
  23.     End If
  24. End If
  25. WScript.Echo "ADSI Version: " & strAdsiVersion
  26. ;代码结束==========================================
复制代码
.再来传一个WMI的有关工具,这个还是从MS网站上搞下来的.MS把这个东西吹的很好哟.这个实际上是一个HTML文件.我把代码贴上来,请复制所有代码到文本文件中,然后保存为"scriptomatic.hta"双击运行即可.
  1. ;代码开始====================================
  2. <html>
  3. <!--********************************************************************
  4. '*
  5. '*  File:           scriptomatic.hta
  6. '*  Created:        August 2002
  7. '*  Version:        1.0
  8. '*
  9. '*  Description:    Learning tool. Enables users to generate and run
  10. '*                  WSH scripts (in VBScript) that use WMI to display
  11. '*                  properties available through the Win32_ classes.      
  12. '*
  13. '*
  14. '* Copyright (C) 2002 Microsoft Corporation
  15. '*
  16. '********************************************************************-->
  17. <title>Windows .NET Server Resource Kit - Scriptomatic</title>
  18. <HTA:APPLICATION
  19.      ID="objScriptomatic"
  20.      APPLICATIONNAME="Scriptomatic"
  21.      SCROLL="no"
  22.      SINGLEINSTANCE="yes"
  23.      WINDOWSTATE="normal"
  24. >
  25. <head>
  26. <style>
  27. BODY
  28. {
  29.    background-color: buttonface;
  30.    font-family: Helvetica;
  31.    font-size: 8pt;
  32.    margin-top: 10px;
  33.    margin-left: 10px;
  34.    margin-right: 10px;
  35.    margin-bottom: 10px;
  36. }
  37. .button
  38. {
  39.    font-family: Helvetica;
  40.    font-size: 8pt;
  41.    width: 35px;
  42. }
  43. textarea
  44. {
  45.    font-family: arial;
  46.    font-size: 8pt;
  47.    margin-left: 3px;
  48. }
  49. select
  50. {
  51.    font-family: arial;
  52.    font-size: 8pt;
  53.    width: 450px;
  54.    margin-left: 0px;
  55. }
  56. </style>
  57. <script language="vbscript">
  58. '*********************************************
  59. '* WHILE LOADING...
  60. '*
  61. '* As the application loads, we open a new
  62. '* browser window to act as a crude progress dialog
  63. '* while we wait for the enumeration of the WMI
  64. '* classes to complete.
  65. '*
  66. '* We minimize the parent window prior to presenting
  67. '* the progress dialog and resize it back to normal
  68. '* once the classes are enumerated.
  69. '*
  70. '*********************************************
  71. Sub Window_Onload
  72.    '* resize parent window
  73.    self.ResizeTo 1,1
  74.    self.MoveTo 300,300
  75.    
  76.    '* create dialog window
  77.    Set objDialogWindow = window.Open("about:blank","ProgressWindow","height=15,width=250,left=300,top=300,status=no,titlebar=no,toolbar=no,menubar=no,location=no,scrollbars=no")
  78.    objDialogWindow.Focus()
  79.    objDialogWindow.ResizeTo 250,15
  80.    objDialogWindow.document.body.style.fontFamily = "Helvetica"
  81.    objDialogWindow.document.body.style.fontSize = "11pt"
  82.    objDialogWindow.document.writeln "<html><body>Loading WMI Classes.</body></html>"
  83.    objDialogWindow.document.title = "Please wait."
  84.    objDialogWindow.document.body.style.backgroundColor = "buttonface"
  85.    objDialogWindow.document.body.style.borderStyle = "none"
  86.    objDialogWindow.document.body.style.marginTop = 15
  87.    '****************************************************************************
  88.    '* enumerate the WMI classes in the cimv2 namespace, filling up a recordset
  89.    '* with the names of the classes that begin with Win32_ and are not association
  90.    '* classes. we'll use the class names stored in the recordset to populate a
  91.    '* pulldown.
  92.    '*****************************************************************************
  93.    Const adVarChar = 200
  94.    Const MaxCharacters = 255
  95.    strComputer = "."
  96.    
  97.    Set rsDataList = CreateObject("ADODB.Recordset")
  98.    rsDataList.Fields.Append "ClassName", adVarChar, MaxCharacters
  99.    rsDataList.Open
  100.    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
  101.    
  102.    iCounter = 0
  103.    For Each objclass in objWMIService.SubclassesOf()
  104.    '* write a . to the dialog window once for every 250 classes
  105.    '* to let the user know something is still happening.
  106.       iCounter = iCounter + 1
  107.       If iCounter Mod 250 = 0 Then
  108.          objDialogWindow.document.writeln "."
  109.       End If
  110.       bIsQualifier = False
  111.       If UCase(Left(objClass.Path_.Class,5)) = "WIN32" Then
  112.          For Each Qualifier in objClass.Qualifiers_
  113.             If UCase(Trim(Qualifier.Name)) = "ASSOCIATION" Then
  114.                bIsQualifier = True
  115.             End If
  116.          Next
  117.    '* the class name starts with win32_ and is not an association
  118.    '* class - so append it to the recordset
  119.          If bIsQualifier = False Then
  120.             rsDataList.AddNew
  121.             rsDataList("ClassName") = objClass.Path_.Class
  122.             rsDataList.Update
  123.          End If
  124.       End If
  125.    Next
  126.    '* populate the pulldown
  127.    rsDataList.Sort = "ClassName"
  128.    rsDataList.MoveFirst
  129.    strHTML = "<select onChange=""ComposeCode()"" name=ClassesPulldown>" &_
  130.              "<option value=""PulldownMessage"">Begin by selecting a class"
  131.    Do Until rsDataList.EOF
  132.       strHTML = strHTML & "<option value= " & chr(34) &_
  133.       rsDataList.Fields.Item("ClassName") & chr(34) &_
  134.       ">" & rsDataList.Fields.Item("ClassName")
  135.       rsDataList.MoveNext
  136.    Loop
  137.    strHTML = strHTML & "</select>"
  138.    wmi_classes.insertAdjacentHTML "beforeEnd", strHTML
  139.    '* the classes are enumerated, close the progress dialog
  140.    '* and resize the main window
  141.    objDialogWindow.Close
  142.    self.Focus()
  143.    self.ResizeTo 670,550
  144.    self.MoveTo 200,200
  145.    
  146.    '* the user hasn't had a chance to select a class and generate
  147.    '* a script - so disable the run and save buttons because
  148.    '* they are not yet meaningful.
  149.    
  150.    run_button.disabled = True
  151.    save_button.disabled = True
  152. End Sub
  153. '****************************************************************************
  154. '* when the user selects a class from the pulldown, the ComposeCode subroutine
  155. '* is called. it queries WMI to determine the properties of the class the user
  156. '* selected and uses the information to construct sample code which it puts
  157. '* in the main window's textarea.
  158. '****************************************************************************
  159. Sub ComposeCode
  160.    '* if the user happens to select the message instead of a class, just
  161.    '* disable the run and save buttons and exit the subroutine
  162.    If ClassesPulldown.Value = "PulldownMessage" Then
  163.       run_button.disabled = True
  164.       save_button.disabled = True
  165.       Exit Sub
  166.    End If
  167.    strComputer = "."
  168.    Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
  169.    Set objClass = objWMIService.Get(ClassesPulldown.Value)
  170.    strHTML = "<textarea cols=100 rows=30>"
  171.    strHTML = strHTML & "On Error Resume Next" & Chr(10)
  172.    strHTML = strHTML & "strComputer = " & chr(34) & "." & chr(34) & Chr(10)
  173.    strHTML = strHTML & "Set objWMIService = GetObject(" & chr(34) & "winmgmts:\\" & chr(34) & " & strComputer & " & chr(34) & "\root\cimv2" & chr(34) & ")" & Chr(10)
  174.    strHTML = strHTML & "Set colItems = objWMIService.ExecQuery(" & chr(34) & "Select * from " & ClassesPulldown.value & chr(34) & ",,48)" & Chr(10)
  175.    strHTML = strHTML & "For Each objItem in colItems" & Chr(10)
  176.    For Each objProperty in objClass.properties_
  177.       strHTML = strHTML & "&nbsp; &nbsp; Wscript.Echo " & chr(34) & objProperty.name & ": " & chr(34) & " & " & "objItem." & objProperty.name & Chr(10)
  178.    Next
  179.    strHTML = strHTML & "Next" & "</textarea>"
  180.    code.InnerHTML= strHTML
  181.    '* once the code is successfully composed and put into the textarea, ensure
  182.    '* that the run and save buttons are enabled
  183.    run_button.disabled = False
  184.    save_button.disabled = False
  185. End Sub
  186. '****************************************************************************
  187. '* when the user presses the Run button, we use the WshShell object's Run
  188. '* method to run the code currently in the textarea under cscript.exe. we use
  189. '* cmd.exe's /k parameter to ensure the command window remains visible after
  190. '* the script has finished running.
  191. '****************************************************************************
  192. Sub RunScript
  193.    Set objFS = CreateObject("Scripting.FileSystemObject")
  194.    strTmpName = "temp_script.vbs"
  195.    Set objScript = objFS.CreateTextFile(strTmpName)
  196.    objScript.Write code.InnerText
  197.    objScript.Close
  198.    Set objShell = CreateObject("WScript.Shell")
  199.    strCmdLine = "cmd /k cscript.exe "
  200.    strCmdLine = strCmdLine & strTmpName
  201.    objShell.Run(strCmdLine)
  202. End Sub
  203. '****************************************************************************
  204. '* when the user presses the Save button, we present them with an InputBox
  205. '* and force them to give us the full path to where they'd like to the save
  206. '* the script that is currently in the textarea. The user is probably quite
  207. '* upset with our laziness here....and who can blame them?
  208. '****************************************************************************
  209. Sub SaveScript
  210.    Set objFSO = CreateObject("Scripting.FileSystemObject")
  211.    strSaveFileName = InputBox("Please enter the complete path where you want to save your script (for example, C:\Scripts\MyScript.vbs).")
  212.    If strSaveFileName = "" Then
  213.       Exit Sub
  214.    End If
  215.    Set objFile = objFSO.CreateTextFile(strSaveFileName)
  216.    objFile.WriteLine code.InnerText
  217.    objFile.Close
  218. End Sub
  219. '****************************************************************************
  220. '* when the user presses the Open button, we present them with an InputBox
  221. '* and force them to give us the full path to the script they'd like to open.
  222. '* This is, of course, rather wonky - but it's meant to be.
  223. '****************************************************************************
  224. Sub OpenScript
  225.    Set objFSO = CreateObject("Scripting.FileSystemObject")
  226.    strOpenFileName = InputBox("Please enter the complete path name for your script (for example, C:\Scripts\MyScript.vbs).")
  227.    If strOpenFileName = "" Then
  228.       Exit Sub
  229.    End If
  230.    Set objFile = objFSO.OpenTextFile(strOpenFileName)
  231.    strHTML = "<textarea cols=100 rows=30>"
  232.    strHTML = strHTML & objFile.ReadAll()
  233.    strHTML = strHTML & "</textarea>"
  234.    code.InnerHTML =  strHTML
  235.    objFile.Close
  236.    run_button.disabled = False
  237.    save_button.disabled = False
  238. End Sub
  239. '****************************************************************************
  240. '* when the user presses the Quit button, the file where we've been storing
  241. '* the scripts gets deleted and the main window closes.
  242. '****************************************************************************
  243. Sub QuitScript
  244.    On Error Resume Next
  245.    Set objFSO = CreateObject("Scripting.FileSystemObject")
  246.    objFSO.DeleteFile "temp_script.vbs"
  247.    Set objFSO = Nothing
  248.    self.Close()
  249. End Sub
  250. </script>
  251. </head>
  252. '***********************************************************
  253. '* our HTML layout - the only thing of note here is that when
  254. '* each of the buttons is pressed (clicked), their onClick
  255. '* attributes causes the appropriate subroutine to be called
  256. '***********************************************************
  257. <body>
  258. <table>
  259.    <td>
  260.       <span id="wmi_classes">&nbsp;</span>
  261.       <input id=runbutton  class="button" type="button" value="Run"  name="run_button"  onClick="RunScript()">
  262.       <input id=savebutton class="button" type="button" value="Save" name="save_button" onClick="SaveScript()">
  263.       <input id=openbutton class="button" type="button" value="Open" name="open_button" onClick="OpenScript()">
  264.       <input id=quitbutton class="button" type="button" value="Quit" name="quit_button" onClick="QuitScript()">
  265.       <div ID=code_header></div>
  266.       <div id="code"></div>
  267.    </td>
  268. </tr>
  269. </table>
  270. </body>
  271. </html>
  272. ;代码结束==============================================
复制代码
9.再来一个WMI脚本教程.这个也是从网络上搜集的,不记得下载地址了.好象里面差一个第四章的,可以自己到网络上搜索,好象在MS网站也有,地址是http://www.microsoft.com/china/M ... inicscripting.mspx.

下载地址:http://zhenlove.com.cn/cndos/fileup/files/wmi脚本入门(pdf不完整).rar

8.再来一个WMI查询分析工具.是外国网站的.里面赋有源代码,不下载的要后悔哟.不过我的电脑上运行不了该程序,不知道为什么,大家测试反馈下是什么问题.谢谢。
下载地址:
http://zhenlove.com.cn/cndos/fileup/files/WQLAnalyzer_1.02(wmi查询分析工具有源代码).zip

10.《WINDOWS WMI参考》,由于这个只能在网络上阅读,找不到相关的电子书下载,所以就把所有抓的网页发上来。其中名称前面的数字代表章节号,如0101代表第一章第一节,050105代表第五章-第一节-第一小节。
下载地址:
http://zhenlove.com.cn/cndos/fileup/files/windowswmi参考.rar
11.《WMI开发工具包》,这个是直接从MS 网站上下的,其中已经包含前面发的wmisdk(WMI开发文档).rar,所以下载这个的可以不再下载上面的哪个。
http://zhenlove.com.cn/cndos/fileup/files/
wmisdk(WMI开发工具包).rar

原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=25587
作者: Batcher    时间: 2009-4-8 12:52     标题: WMIC应用类日志

  1. 所有Win32 Classes (Win32节点) ,筛选显示信息见2楼举例
  2. Wmic Path Win32_1394Controller
  3. Wmic Path Win32_1394ControllerDevice
  4. Wmic Path Win32_Account
  5. Wmic Path Win32_AccountSID
  6. Wmic Path Win32_ACE
  7. Wmic Path Win32_ActionCheck
  8. Wmic Path Win32_ActiveRoute
  9. Wmic Path Win32_AllocatedResource
  10. Wmic Path Win32_ApplicationCommandLine
  11. Wmic Path Win32_ApplicationService
  12. Wmic Path Win32_AssociatedBattery
  13. Wmic Path Win32_AssociatedProcessorMemory
  14. Wmic Path Win32_AutochkSetting
  15. Wmic Path Win32_BaseBoard
  16. Wmic Path Win32_BaseService
  17. Wmic Path Win32_Battery
  18. Wmic Path Win32_Binary
  19. Wmic Path Win32_BindImageAction
  20. Wmic Path Win32_BIOS
  21. Wmic Path Win32_BootConfiguration
  22. Wmic Path Win32_Bus
  23. Wmic Path Win32_CacheMemory
  24. Wmic Path Win32_CDROMDrive
  25. Wmic Path Win32_CheckCheck
  26. Wmic Path Win32_CIMLogicalDeviceCIMDataFile
  27. Wmic Path Win32_ClassicCOMApplicationClasses
  28. Wmic Path Win32_ClassicCOMClass
  29. Wmic Path Win32_ClassicCOMClassSetting
  30. Wmic Path Win32_ClassicCOMClassSettings
  31. Wmic Path Win32_ClassInfoAction
  32. Wmic Path Win32_ClientApplicationSetting
  33. Wmic Path Win32_CodecFile
  34. Wmic Path Win32_CollectionStatistics
  35. Wmic Path Win32_COMApplication
  36. Wmic Path Win32_COMApplicationClasses
  37. Wmic Path Win32_COMApplicationSettings
  38. Wmic Path Win32_COMClass
  39. Wmic Path Win32_ComClassAutoEmulator
  40. Wmic Path Win32_ComClassEmulator
  41. Wmic Path Win32_CommandLineAccess
  42. Wmic Path Win32_ComponentCategory
  43. Wmic Path Win32_ComputerShutdownEvent
  44. Wmic Path Win32_ComputerSystem
  45. Wmic Path Win32_ComputerSystemEvent
  46. Wmic Path Win32_ComputerSystemProcessor
  47. Wmic Path Win32_ComputerSystemProduct
  48. Wmic Path Win32_ComputerSystemWindowsProductActivationSetting
  49. Wmic Path Win32_COMSetting
  50. Wmic Path Win32_Condition
  51. Wmic Path Win32_ConnectionShare
  52. Wmic Path Win32_ControllerHasHub
  53. Wmic Path Win32_CreateFolderAction
  54. Wmic Path Win32_CurrentProbe
  55. Wmic Path Win32_CurrentTime
  56. Wmic Path Win32_DCOMApplication
  57. Wmic Path Win32_DCOMApplicationAccessAllowedSetting
  58. Wmic Path Win32_DCOMApplicationLaunchAllowedSetting
  59. Wmic Path Win32_DCOMApplicationSetting
  60. Wmic Path Win32_DefragAnalysis
  61. Wmic Path Win32_DependentService
  62. Wmic Path Win32_Desktop
  63. Wmic Path Win32_DesktopMonitor
  64. Wmic Path Win32_DeviceBus
  65. Wmic Path Win32_DeviceChangeEvent
  66. Wmic Path Win32_DeviceMemoryAddress
  67. Wmic Path Win32_DeviceSettings
  68. Wmic Path Win32_DFSNode
  69. Wmic Path Win32_DFSNodeTarget
  70. Wmic Path Win32_DFSTarget
  71. Wmic Path Win32_Directory
  72. Wmic Path Win32_DirectorySpecification
  73. Wmic Path Win32_DiskDrive
  74. Wmic Path Win32_DiskDrivePhysicalMedia
  75. Wmic Path Win32_DiskDriveToDiskPartition
  76. Wmic Path Win32_DiskPartition
  77. Wmic Path Win32_DiskQuota
  78. Wmic Path Win32_DisplayConfiguration
  79. Wmic Path Win32_DisplayControllerConfiguration
  80. Wmic Path Win32_DMAChannel
  81. Wmic Path Win32_DriverForDevice
  82. Wmic Path Win32_DriverVXD
  83. Wmic Path Win32_DuplicateFileAction
  84. Wmic Path Win32_Environment
  85. Wmic Path Win32_EnvironmentSpecification
  86. Wmic Path Win32_ExtensionInfoAction
  87. Wmic Path Win32_Fan
  88. Wmic Path Win32_FileSpecification
  89. Wmic Path Win32_FloppyController
  90. Wmic Path Win32_FloppyDrive
  91. Wmic Path Win32_FontInfoAction
  92. Wmic Path Win32_Group
  93. Wmic Path Win32_GroupInDomain
  94. Wmic Path Win32_GroupUser
  95. Wmic Path Win32_HeatPipe
  96. Wmic Path Win32_IDEController
  97. Wmic Path Win32_IDEControllerDevice
  98. Wmic Path Win32_ImplementedCategory
  99. Wmic Path Win32_InfraredDevice
  100. Wmic Path Win32_IniFileSpecification
  101. Wmic Path Win32_InstalledSoftwareElement
  102. Wmic Path Win32_IP4PersistedRouteTable
  103. Wmic Path Win32_IP4RouteTable
  104. Wmic Path Win32_IP4RouteTableEvent
  105. Wmic Path Win32_IRQResource
  106. Wmic Path Win32_JobObjectStatus
  107. Wmic Path Win32_Keyboard
  108. Wmic Path Win32_LaunchCondition
  109. Wmic Path Win32_LoadOrderGroup
  110. Wmic Path Win32_LoadOrderGroupServiceDependencies
  111. Wmic Path Win32_LoadOrderGroupServiceMembers
  112. Wmic Path Win32_LocalTime
  113. Wmic Path Win32_LoggedOnUser
  114. Wmic Path Win32_LogicalDisk
  115. Wmic Path Win32_LogicalDiskRootDirectory
  116. Wmic Path Win32_LogicalDiskToPartition
  117. Wmic Path Win32_LogicalFileAccess
  118. Wmic Path Win32_LogicalFileAuditing
  119. Wmic Path Win32_LogicalFileGroup
  120. Wmic Path Win32_LogicalFileOwner
  121. Wmic Path Win32_LogicalFileSecuritySetting
  122. Wmic Path Win32_LogicalMemoryConfiguration
  123. Wmic Path Win32_LogicalProgramGroup
  124. Wmic Path Win32_LogicalProgramGroupDirectory
  125. Wmic Path Win32_LogicalProgramGroupItem
  126. Wmic Path Win32_LogicalProgramGroupItemDataFile
  127. Wmic Path Win32_LogicalShareAccess
  128. Wmic Path Win32_LogicalShareAuditing
  129. Wmic Path Win32_LogicalShareSecuritySetting
  130. Wmic Path Win32_LogonSession
  131. Wmic Path Win32_LogonSessionMappedDisk
  132. Wmic Path Win32_LUID
  133. Wmic Path Win32_LUIDandAttributes
  134. Wmic Path Win32_ManagedSystemElementResource
  135. Wmic Path Win32_MappedLogicalDisk
  136. Wmic Path Win32_MemoryArray
  137. Wmic Path Win32_MemoryArrayLocation
  138. Wmic Path Win32_MemoryDevice
  139. Wmic Path Win32_MemoryDeviceArray
  140. Wmic Path Win32_MemoryDeviceLocation
  141. Wmic Path Win32_MethodParameterClass
  142. Wmic Path Win32_MIMEInfoAction
  143. Wmic Path Win32_ModuleLoadTrace
  144. Wmic Path Win32_ModuleTrace
  145. Wmic Path Win32_MotherboardDevice
  146. Wmic Path Win32_MountPoint
  147. Wmic Path Win32_MoveFileAction
  148. Wmic Path Win32_MSIResource
  149. Wmic Path Win32_NamedJobObject
  150. Wmic Path Win32_NamedJobObjectActgInfo
  151. Wmic Path Win32_NamedJobObjectLimit
  152. Wmic Path Win32_NamedJobObjectLimitSetting
  153. Wmic Path Win32_NamedJobObjectProcess
  154. Wmic Path Win32_NamedJobObjectSecLimit
  155. Wmic Path Win32_NamedJobObjectSecLimitSetting
  156. Wmic Path Win32_NamedJobObjectStatistics
  157. Wmic Path Win32_NetworkAdapter
  158. Wmic Path Win32_NetworkAdapterConfiguration
  159. Wmic Path Win32_NetworkAdapterSetting
  160. Wmic Path Win32_NetworkClient
  161. Wmic Path Win32_NetworkConnection
  162. Wmic Path Win32_NetworkLoginProfile
  163. Wmic Path Win32_NetworkProtocol
  164. Wmic Path Win32_NTDomain
  165. Wmic Path Win32_NTEventlogFile
  166. Wmic Path Win32_NTLogEvent
  167. Wmic Path Win32_NTLogEventComputer
  168. Wmic Path Win32_NTLogEventLog
  169. Wmic Path Win32_NTLogEventUser
  170. Wmic Path Win32_ODBCAttribute
  171. Wmic Path Win32_ODBCDataSourceAttribute
  172. Wmic Path Win32_ODBCDataSourceSpecification
  173. Wmic Path Win32_ODBCDriverAttribute
  174. Wmic Path Win32_ODBCDriverSoftwareElement
  175. Wmic Path Win32_ODBCDriverSpecification
  176. Wmic Path Win32_ODBCSourceAttribute
  177. Wmic Path Win32_ODBCTranslatorSpecification
  178. Wmic Path Win32_OnBoardDevice
  179. Wmic Path Win32_OperatingSystem
  180. Wmic Path Win32_OperatingSystemAutochkSetting
  181. Wmic Path Win32_OperatingSystemQFE
  182. Wmic Path Win32_OSRecoveryConfiguration
  183. Wmic Path Win32_PageFile
  184. Wmic Path Win32_PageFileElementSetting
  185. Wmic Path Win32_PageFileSetting
  186. Wmic Path Win32_PageFileUsage
  187. Wmic Path Win32_ParallelPort
  188. Wmic Path Win32_Patch
  189. Wmic Path Win32_PatchFile
  190. Wmic Path Win32_PatchPackage
  191. Wmic Path Win32_PCMCIAController
  192. Wmic Path Win32_Perf
  193. Wmic Path Win32_PerfFormattedData
  194. Wmic Path Win32_PerfFormattedData_ASP_ActiveServerPages
  195. Wmic Path Win32_PerfFormattedData_ContentFilter_IndexingServiceFilter
  196. Wmic Path Win32_PerfFormattedData_ContentIndex_IndexingService
  197. Wmic Path Win32_PerfFormattedData_InetInfo_InternetInformationServicesGlobal
  198. Wmic Path Win32_PerfFormattedData_ISAPISearch_HttpIndexingService
  199. Wmic Path Win32_PerfFormattedData_MSDTC_DistributedTransactionCoordinator
  200. Wmic Path Win32_PerfFormattedData_NTFSDRV_SMTPNTFSStoreDriver
  201. Wmic Path Win32_PerfFormattedData_PerfDisk_LogicalDisk
  202. Wmic Path Win32_PerfFormattedData_PerfDisk_PhysicalDisk
  203. Wmic Path Win32_PerfFormattedData_PerfNet_Browser
  204. Wmic Path Win32_PerfFormattedData_PerfNet_Redirector
  205. Wmic Path Win32_PerfFormattedData_PerfNet_Server
  206. Wmic Path Win32_PerfFormattedData_PerfNet_ServerWorkQueues
  207. Wmic Path Win32_PerfFormattedData_PerfOS_Cache
  208. Wmic Path Win32_PerfFormattedData_PerfOS_Memory
  209. Wmic Path Win32_PerfFormattedData_PerfOS_Objects
  210. Wmic Path Win32_PerfFormattedData_PerfOS_PagingFile
  211. Wmic Path Win32_PerfFormattedData_PerfOS_Processor
  212. Wmic Path Win32_PerfFormattedData_PerfOS_System
  213. Wmic Path Win32_PerfFormattedData_PerfProc_FullImage_Costly
  214. Wmic Path Win32_PerfFormattedData_PerfProc_Image_Costly
  215. Wmic Path Win32_PerfFormattedData_PerfProc_JobObject
  216. Wmic Path Win32_PerfFormattedData_PerfProc_JobObjectDetails
  217. Wmic Path Win32_PerfFormattedData_PerfProc_Process
  218. Wmic Path Win32_PerfFormattedData_PerfProc_ProcessAddressSpace_Costly
  219. Wmic Path Win32_PerfFormattedData_PerfProc_Thread
  220. Wmic Path Win32_PerfFormattedData_PerfProc_ThreadDetails_Costly
  221. Wmic Path Win32_PerfFormattedData_PSched_PSchedFlow
  222. Wmic Path Win32_PerfFormattedData_PSched_PSchedPipe
  223. Wmic Path Win32_PerfFormattedData_RemoteAccess_RASPort
  224. Wmic Path Win32_PerfFormattedData_RemoteAccess_RASTotal
  225. Wmic Path Win32_PerfFormattedData_RSVP_ACSRSVPInterfaces
  226. Wmic Path Win32_PerfFormattedData_RSVP_ACSRSVPService
  227. Wmic Path Win32_PerfFormattedData_SMTPSVC_SMTPServer
  228. Wmic Path Win32_PerfFormattedData_Spooler_PrintQueue
  229. Wmic Path Win32_PerfFormattedData_TapiSrv_Telephony
  230. Wmic Path Win32_PerfFormattedData_Tcpip_ICMP
  231. Wmic Path Win32_PerfFormattedData_Tcpip_IP
  232. Wmic Path Win32_PerfFormattedData_Tcpip_NBTConnection
  233. Wmic Path Win32_PerfFormattedData_Tcpip_NetworkInterface
  234. Wmic Path Win32_PerfFormattedData_Tcpip_TCP
  235. Wmic Path Win32_PerfFormattedData_Tcpip_UDP
  236. Wmic Path Win32_PerfFormattedData_TermService_TerminalServices
  237. Wmic Path Win32_PerfFormattedData_TermService_TerminalServicesSession
  238. Wmic Path Win32_PerfFormattedData_W3SVC_WebService
  239. Wmic Path Win32_PerfRawData
  240. Wmic Path Win32_PerfRawData_ASP_ActiveServerPages
  241. Wmic Path Win32_PerfRawData_ContentFilter_IndexingServiceFilter
  242. Wmic Path Win32_PerfRawData_ContentIndex_IndexingService
  243. Wmic Path Win32_PerfRawData_InetInfo_InternetInformationServicesGlobal
  244. Wmic Path Win32_PerfRawData_ISAPISearch_HttpIndexingService
  245. Wmic Path Win32_PerfRawData_MSDTC_DistributedTransactionCoordinator
  246. Wmic Path Win32_PerfRawData_NTFSDRV_SMTPNTFSStoreDriver
  247. Wmic Path Win32_PerfRawData_PerfDisk_LogicalDisk
  248. Wmic Path Win32_PerfRawData_PerfDisk_PhysicalDisk
  249. Wmic Path Win32_PerfRawData_PerfNet_Browser
  250. Wmic Path Win32_PerfRawData_PerfNet_Redirector
  251. Wmic Path Win32_PerfRawData_PerfNet_Server
  252. Wmic Path Win32_PerfRawData_PerfNet_ServerWorkQueues
  253. Wmic Path Win32_PerfRawData_PerfOS_Cache
  254. Wmic Path Win32_PerfRawData_PerfOS_Memory
  255. Wmic Path Win32_PerfRawData_PerfOS_Objects
  256. Wmic Path Win32_PerfRawData_PerfOS_PagingFile
  257. Wmic Path Win32_PerfRawData_PerfOS_Processor
  258. Wmic Path Win32_PerfRawData_PerfOS_System
  259. Wmic Path Win32_PerfRawData_PerfProc_FullImage_Costly
  260. Wmic Path Win32_PerfRawData_PerfProc_Image_Costly
  261. Wmic Path Win32_PerfRawData_PerfProc_JobObject
  262. Wmic Path Win32_PerfRawData_PerfProc_JobObjectDetails
  263. Wmic Path Win32_PerfRawData_PerfProc_Process
  264. Wmic Path Win32_PerfRawData_PerfProc_ProcessAddressSpace_Costly
  265. Wmic Path Win32_PerfRawData_PerfProc_Thread
  266. Wmic Path Win32_PerfRawData_PerfProc_ThreadDetails_Costly
  267. Wmic Path Win32_PerfRawData_PSched_PSchedFlow
  268. Wmic Path Win32_PerfRawData_PSched_PSchedPipe
  269. Wmic Path Win32_PerfRawData_RemoteAccess_RASPort
  270. Wmic Path Win32_PerfRawData_RemoteAccess_RASTotal
  271. Wmic Path Win32_PerfRawData_RSVP_ACSRSVPInterfaces
  272. Wmic Path Win32_PerfRawData_RSVP_ACSRSVPService
  273. Wmic Path Win32_PerfRawData_SMTPSVC_SMTPServer
  274. Wmic Path Win32_PerfRawData_Spooler_PrintQueue
  275. Wmic Path Win32_PerfRawData_TapiSrv_Telephony
  276. Wmic Path Win32_PerfRawData_Tcpip_ICMP
  277. Wmic Path Win32_PerfRawData_Tcpip_IP
  278. Wmic Path Win32_PerfRawData_Tcpip_NBTConnection
  279. Wmic Path Win32_PerfRawData_Tcpip_NetworkInterface
  280. Wmic Path Win32_PerfRawData_Tcpip_TCP
  281. Wmic Path Win32_PerfRawData_Tcpip_UDP
  282. Wmic Path Win32_PerfRawData_TermService_TerminalServices
  283. Wmic Path Win32_PerfRawData_TermService_TerminalServicesSession
  284. Wmic Path Win32_PerfRawData_W3SVC_WebService
  285. Wmic Path Win32_PhysicalMedia
  286. Wmic Path Win32_PhysicalMemory
  287. Wmic Path Win32_PhysicalMemoryArray
  288. Wmic Path Win32_PhysicalMemoryLocation
  289. Wmic Path Win32_PingStatus
  290. Wmic Path Win32_PnPAllocatedResource
  291. Wmic Path Win32_PnPDevice
  292. Wmic Path Win32_PnPEntity
  293. Wmic Path Win32_PnPSignedDriver
  294. Wmic Path Win32_PnPSignedDriverCIMDataFile
  295. Wmic Path Win32_PointingDevice
  296. Wmic Path Win32_PortableBattery
  297. Wmic Path Win32_PortConnector
  298. Wmic Path Win32_PortResource
  299. Wmic Path Win32_POTSModem
  300. Wmic Path Win32_POTSModemToSerialPort
  301. Wmic Path Win32_PowerManagementEvent
  302. Wmic Path Win32_Printer
  303. Wmic Path Win32_PrinterConfiguration
  304. Wmic Path Win32_PrinterController
  305. Wmic Path Win32_PrinterDriver
  306. Wmic Path Win32_PrinterDriverDll
  307. Wmic Path Win32_PrinterSetting
  308. Wmic Path Win32_PrinterShare
  309. Wmic Path Win32_PrintJob
  310. Wmic Path Win32_PrivilegesStatus
  311. Wmic Path Win32_Process
  312. ::::::AttachDebugger Method of the Win32_Process Class
  313. ::::::Create Method of the Win32_Process Class
  314. ::::::GetOwner Method of the Win32_Process Class
  315. ::::::GetOwnerSid Method of the Win32_Process Class
  316. ::::::SetPriority Method of the Win32_Process Class
  317. ::::::Terminate Method of the Win32_Process Class
  318. Wmic Path Win32_Processor
  319. Wmic Path Win32_ProcessStartTrace
  320. Wmic Path Win32_ProcessStartup
  321. Wmic Path Win32_ProcessStopTrace
  322. Wmic Path Win32_ProcessTrace
  323. Wmic Path Win32_Product
  324. Wmic Path Win32_ProductCheck
  325. Wmic Path Win32_ProductResource
  326. Wmic Path Win32_ProductSoftwareFeatures
  327. Wmic Path Win32_ProgIDSpecification
  328. Wmic Path Win32_ProgramGroup
  329. Wmic Path Win32_ProgramGroupContents
  330. Wmic Path Win32_ProgramGroupOrItem
  331. Wmic Path Win32_Property
  332. Wmic Path Win32_ProtocolBinding
  333. Wmic Path Win32_Proxy
  334. Wmic Path Win32_PublishComponentAction
  335. Wmic Path Win32_QuickFixEngineering
  336. Wmic Path Win32_QuotaSetting
  337. Wmic Path Win32_Refrigeration
  338. Wmic Path Win32_Registry
  339. Wmic Path Win32_RegistryAction
  340. Wmic Path Win32_RemoveFileAction
  341. Wmic Path Win32_RemoveIniAction
  342. Wmic Path Win32_ReserveCost
  343. Wmic Path Win32_ScheduledJob
  344. Wmic Path Win32_SCSIController
  345. Wmic Path Win32_SCSIControllerDevice
  346. Wmic Path Win32_SecurityDescriptor
  347. Wmic Path Win32_SecurityDescriptorHelper
  348. Wmic Path Win32_SecuritySetting
  349. Wmic Path Win32_SecuritySettingAccess
  350. Wmic Path Win32_SecuritySettingAuditing
  351. Wmic Path Win32_SecuritySettingGroup
  352. Wmic Path Win32_SecuritySettingOfLogicalFile
  353. Wmic Path Win32_SecuritySettingOfLogicalShare
  354. Wmic Path Win32_SecuritySettingOfObject
  355. Wmic Path Win32_SecuritySettingOwner
  356. Wmic Path Win32_SelfRegModuleAction
  357. Wmic Path Win32_SerialPort
  358. Wmic Path Win32_SerialPortConfiguration
  359. Wmic Path Win32_SerialPortSetting
  360. Wmic Path Win32_ServerConnection
  361. Wmic Path Win32_ServerSession
  362. Wmic Path Win32_Service
  363. Wmic Path Win32_ServiceControl
  364. Wmic Path Win32_ServiceSpecification
  365. Wmic Path Win32_ServiceSpecificationService
  366. Wmic Path Win32_Session
  367. Wmic Path Win32_SessionConnection
  368. Wmic Path Win32_SessionProcess
  369. Wmic Path Win32_SettingCheck
  370. Wmic Path Win32_ShadowBy
  371. Wmic Path Win32_ShadowContext
  372. Wmic Path Win32_ShadowCopy
  373. Wmic Path Win32_ShadowDiffVolumeSupport
  374. Wmic Path Win32_ShadowFor
  375. Wmic Path Win32_ShadowOn
  376. Wmic Path Win32_ShadowProvider
  377. Wmic Path Win32_ShadowStorage
  378. Wmic Path Win32_ShadowVolumeSupport
  379. Wmic Path Win32_Share
  380. Wmic Path Win32_ShareToDirectory
  381. Wmic Path Win32_ShortcutAction
  382. Wmic Path Win32_ShortcutFile
  383. Wmic Path Win32_ShortcutSAP
  384. Wmic Path Win32_SID
  385. Wmic Path Win32_SIDandAttributes
  386. Wmic Path Win32_SMBIOSMemory
  387. Wmic Path Win32_SoftwareElement
  388. Wmic Path Win32_SoftwareElementAction
  389. Wmic Path Win32_SoftwareElementCheck
  390. Wmic Path Win32_SoftwareElementCondition
  391. Wmic Path Win32_SoftwareElementResource
  392. Wmic Path Win32_SoftwareFeature
  393. Wmic Path Win32_SoftwareFeatureAction
  394. Wmic Path Win32_SoftwareFeatureCheck
  395. Wmic Path Win32_SoftwareFeatureParent
  396. Wmic Path Win32_SoftwareFeatureSoftwareElements
  397. Wmic Path Win32_SoundDevice
  398. Wmic Path Win32_StartupCommand
  399. Wmic Path Win32_SubDirectory
  400. Wmic Path Win32_SystemAccount
  401. Wmic Path Win32_SystemBIOS
  402. Wmic Path Win32_SystemBootConfiguration
  403. Wmic Path Win32_SystemConfigurationChangeEvent
  404. Wmic Path Win32_SystemDesktop
  405. Wmic Path Win32_SystemDevices
  406. Wmic Path Win32_SystemDriver
  407. Wmic Path Win32_SystemDriverPnPEntity
  408. Wmic Path Win32_SystemEnclosure
  409. Wmic Path Win32_SystemLoadOrderGroups
  410. Wmic Path Win32_SystemLogicalMemoryConfiguration
  411. Wmic Path Win32_SystemMemoryResource
  412. Wmic Path Win32_SystemNetworkConnections
  413. Wmic Path Win32_SystemOperatingSystem
  414. Wmic Path Win32_SystemPartitions
  415. Wmic Path Win32_SystemProcesses
  416. Wmic Path Win32_SystemProgramGroups
  417. Wmic Path Win32_SystemResources
  418. Wmic Path Win32_SystemServices
  419. Wmic Path Win32_SystemSetting
  420. Wmic Path Win32_SystemSlot
  421. Wmic Path Win32_SystemSystemDriver
  422. Wmic Path Win32_SystemTimeZone
  423. Wmic Path Win32_SystemTrace
  424. Wmic Path Win32_SystemUsers
  425. Wmic Path Win32_TapeDrive
  426. Wmic Path Win32_TCPIPPrinterPort
  427. Wmic Path Win32_TemperatureProbe
  428. Wmic Path Win32_Thread
  429. Wmic Path Win32_ThreadStartTrace
  430. Wmic Path Win32_ThreadStopTrace
  431. Wmic Path Win32_ThreadTrace
  432. Wmic Path Win32_TimeZone
  433. Wmic Path Win32_TokenGroups
  434. Wmic Path Win32_TokenPrivileges
  435. Wmic Path Win32_Trustee
  436. Wmic Path Win32_TypeLibraryAction
  437. Wmic Path Win32_UninterruptiblePowerSupply
  438. Wmic Path Win32_USBController
  439. Wmic Path Win32_USBControllerDevice
  440. Wmic Path Win32_USBHub
  441. Wmic Path Win32_UserAccount
  442. Wmic Path Win32_UserDesktop
  443. Wmic Path Win32_UserInDomain
  444. Wmic Path Win32_UTCTime
  445. Wmic Path Win32_VideoConfiguration
  446. Wmic Path Win32_VideoController
  447. Wmic Path Win32_VideoSettings
  448. Wmic Path Win32_VoltageProbe
  449. Wmic Path Win32_Volume
  450. Wmic Path Win32_VolumeChangeEvent
  451. Wmic Path Win32_VolumeQuota
  452. Wmic Path Win32_VolumeQuotaSetting
  453. Wmic Path Win32_VolumeUserQuota
  454. Wmic Path Win32_WindowsProductActivation
  455. Wmic Path Win32_WMIElementSetting
  456. Wmic Path Win32_WMISetting  
  457. 手把手教你如何Get筛选类型
  458. 有了上面一些命令后,执行后窗口显示的往往是乱七八糟大部分都是些不想要的信息,这时我们就要筛选出自己想要的内容了。
  459. —————————————————————————————————————————————
  460. 例子:
  461. 遍历本地磁盘信息,筛选只显示“文件系统”“驱动器类型”“盘符”其他乱七八糟的一概不显示
  462. 步骤1: WMIC Path Win32_LogicalDisk>tmp.txt得到的一个乱七八糟的磁盘信息文本
  463. 步骤2: 打开tmp.txt会看到下面内容,因为篇幅不够这里就只贴部分内容了
  464.            Description                DeviceID   FileSystem  FreeSpace     ........
  465.            3 1/2 英寸软盘驱动器  A:                                                  ........
  466.            本地固定磁盘             C:            NTFS         1521709056 ........
  467.            本地固定磁盘             D:            NTFS         4812705792 ........
  468.            本地固定磁盘             E:            FAT32        2951413760 ........
  469.            CD-ROM 磁盘             F:                                                 ........
  470.            CD-ROM 磁盘             G:           CDFS          0               ........
  471. 步骤3:如上所示红色部分就是分支节点名称,这样我们可以用Get去筛选了,开始输入命令
  472.         WMIC Path Win32_LogicalDisk Get Description,DeviceID,FileSystem
  473. 好了屏幕显示的内容是不是很整齐啊,如果想分行显示可以在命令后面加/format:list
  474. 用for遍历所有本地磁盘盘符到%Disk%变量例子
  475. --------------------------------------------------------------------------------
  476. @echo off
  477. for /f "skip=2 tokens=3* delims=," %%i in ('WMIC Path Win32_LogicalDisk Get Description^,DeviceID^,FileSystem /format:csv^|findstr /i /v "英寸 CD-ROM"') do call set Disk=%%Disk%% %%i
  478. set Disk=%Disk:~1%
  479. echo %Disk%
  480. pause
  481. 遍历所有本地FAT32文件系统磁盘盘符到%FATDisk%变量例子
  482. --------------------------------------------------------------------------------
  483. @echo off
  484. for /f "skip=2 tokens=3* delims=," %%i in ('WMIC Path Win32_LogicalDisk Get Description^,DeviceID^,FileSystem /format:csv^|findstr /i /v "英寸 CD-ROM 移动 NTFS"') do call set FATDisk=%%FATDisk%% %%i
  485. set FATDisk=%FATDisk:~1%
  486. echo %FATDisk%
  487. pause
  488. 遍历所有本地可移动磁盘盘符到%USBDisk%变量例子
  489. --------------------------------------------------------------------------------
  490. @echo off
  491. for /f "tokens=3* delims=," %%i in ('WMIC Path Win32_LogicalDisk Get DeviceID^,FileSystem^,Description /format:csv^|find /i "移动"') do call set USBDisk=%%USBDisk%% %%i
  492. echo %USBDisk:~1%
  493. pause
  494. 遍历所有本地CD-ROM盘符到%CDROM%变量例子
  495. --------------------------------------------------------------------------------
  496. @echo off
  497. for /f "tokens=3* delims=," %%i in ('WMIC Path Win32_LogicalDisk Get DeviceID^,FileSystem^,Description /format:csv^|find /i "CD-ROM"') do call set CDROM=%%CDROM%% %%i
  498. echo %CDROM:~1%
  499. pause
  500. 遍历非闲置(有光盘的)CD-ROM盘符到%CDROM%变量例子
  501. --------------------------------------------------------------------------------
  502. @echo off
  503. for /f "tokens=3* delims=," %%i in ('WMIC Path Win32_LogicalDisk Get DeviceID^,FileSystem^,Description /format:csv^|find /i "CD-ROM"^|find "CDFS"') do call set CDROM=%%CDROM%% %%i
  504. echo %CDROM:~1%
  505. pause
  506. 遍历移动硬盘盘符到%RemovalDisk%变量例子(非U盘)
  507. --------------------------------------------------------------------------------
  508. @echo off
  509. for /f "tokens=3* delims=," %%i in ('WMIC Path Win32_LogicalDisk Get DeviceID^,VolumeDirty^,Description /format:csv^|find /i "TRUE"') do call set RemovalDisk=%%RemovalDisk%% %%i
  510. if not "%RemovalDisk%"==""  echo %RemovalDisk:~1%
  511. pause
  512. WMI命令行示例(某某同志看到下面示例比较眼熟别埋怨我^_^)
  513. BIOS  - 基本输入/输出服务 (BIOS) 管理
  514. ::查看bios版本型号
  515. wmic bios get Manufacturer,Name
  516. COMPUTERSYSTEM - 计算机系统管理
  517. ::查看系统启动选项,boot的内容
  518. wmic COMPUTERSYSTEM get SystemStartupOptions
  519. ::查看工作组/域
  520. wmic computersystem get domain
  521. ::更改计算机名abc为123
  522. wmic computersystem where "name='abc'" call rename 123
  523. ::更改工作组google为MyGroup
  524. wmic computersystem where "name='google'" call joindomainorworkgroup "","","MyGroup",1
  525. CPU - CPU 管理
  526. ::查看cpu型号
  527. wmic cpu get name
  528. DATAFILE - DataFile 管理
  529. ::查找e盘下test目录(不包括子目录)下的cc.cmd文件
  530. wmic datafile where "drive='e:' and path='\\test\\' and FileName='cc' and Extension='cmd'" list
  531. ::查找e盘下所有目录和子目录下的cc.cmd文件,且文件大小大于1K
  532. wmic datafile where "drive='e:' and FileName='cc' and Extension='cmd' and FileSize>'1000'" list
  533. ::删除e盘下文件大小大于10M的.cmd文件
  534. wmic datafile where "drive='e:' and Extension='cmd' and FileSize>'10000000'" call delete
  535. ::删除e盘下test目录(不包括子目录)下的非.cmd文件
  536. wmic datafile where "drive='e:' and Extension<>'cmd' and path='test'" call delete
  537. ::复制e盘下test目录(不包括子目录)下的cc.cmd文件到e:\,并改名为aa.bat
  538. wmic datafile where "drive='e:' and path='\\test\\' and FileName='cc' and Extension='cmd'" call copy "e:\aa.bat"
  539. ::改名c:\hello.txt为c:\test.txt
  540. wmic datafile "c:\\hello.txt" call rename c:\test.txt
  541. ::查找h盘下目录含有test,文件名含有perl,后缀为txt的文件
  542. wmic datafile where "drive='h:' and extension='txt' and path like '%\\test\\%' and filename like '%perl%'" get name
  543. DESKTOPMONITOR - 监视器管理
  544. ::获取屏幕分辨率
  545. wmic DESKTOPMONITOR where Status='ok' get ScreenHeight,ScreenWidth
  546. DISKDRIVE  - 物理磁盘驱动器管理
  547. ::获取物理磁盘型号大小等
  548. wmic DISKDRIVE get Caption,size,InterfaceType
  549. ENVIRONMENT  - 系统环境设置管理
  550. ::获取temp环境变量
  551. wmic ENVIRONMENT where "name='temp'" get UserName,VariableValue
  552. ::更改path环境变量值,新增e:\tools
  553. wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="%path%;e:\tools"
  554. ::新增系统环境变量home,值为%HOMEDRIVE%%HOMEPATH%
  555. wmic ENVIRONMENT create name="home",username="<system>",VariableValue="%HOMEDRIVE%%HOMEPATH%"
  556. ::删除home环境变量
  557. wmic ENVIRONMENT where "name='home'" delete
  558. FSDIR  - 文件目录系统项目管理
  559. ::查找e盘下名为test的目录
  560. wmic FSDIR where "drive='e:' and filename='test'" list
  561. ::删除e:\test目录下除过目录abc的所有目录
  562. wmic FSDIR where "drive='e:' and path='\\test\\' and filename<>'abc'" call delete
  563. ::删除c:\good文件夹
  564. wmic fsdir "c:\\good" call delete
  565. ::重命名c:\good文件夹为abb
  566. wmic fsdir "c:\\good" rename "c:\abb"
  567. LOGICALDISK  - 本地储存设备管理
  568. ::获取硬盘系统格式、总大小、可用空间等
  569. wmic LOGICALDISK get name,Description,filesystem,size,freespace
  570. NIC - 网络界面控制器 (NIC) 管理
  571. OS  - 已安装的操作系统管理
  572. ::设置系统时间
  573. wmic os where(primary=1) call setdatetime 20070731144642.555555+480
  574. PAGEFILESET  - 页面文件设置管理
  575. ::更改当前页面文件初始大小和最大值
  576. wmic PAGEFILESET set InitialSize="512",MaximumSize="512"
  577. ::页面文件设置到d:\下,执行下面两条命令
  578. wmic pagefileset create name='d:\pagefile.sys',initialsize=512,maximumsize=1024
  579. wmic pagefileset where"name='c:\\pagefile.sys'" delete
  580. PROCESS - 进程管理
  581. ::列出进程的核心信息,类似任务管理器
  582. wmic process list brief
  583. ::结束svchost.exe进程,路径为非C:\WINDOWS\system32\svchost.exe的
  584. wmic process where "name='svchost.exe' and ExecutablePath<>'C:\\WINDOWS\\system32\\svchost.exe'" call Terminate
  585. ::新建notepad进程
  586. wmic process call create notepad
  587. PRODUCT - 安装包任务管理
  588. ::安装包在C:\WINDOWS\Installer目录下
  589. ::卸载.msi安装包
  590. wmic PRODUCT where "name='Microsoft .NET Framework 1.1' and Version='1.1.4322'" call Uninstall
  591. ::修复.msi安装包
  592. wmic PRODUCT where "name='Microsoft .NET Framework 1.1' and Version='1.1.4322'" call Reinstall
  593. SERVICE - 服务程序管理
  594. ::运行spooler服务
  595. wmic SERVICE where name="Spooler" call startservice
  596. ::停止spooler服务
  597. wmic SERVICE where name="Spooler" call stopservice
  598. ::暂停spooler服务
  599. wmic SERVICE where name="Spooler" call PauseService
  600. ::更改spooler服务启动类型[auto|Disabled|Manual] 释[自动|禁用|手动]
  601. wmic SERVICE where name="Spooler" set StartMode="auto"
  602. ::删除服务
  603. wmic SERVICE where name="test123" call delete
  604. SHARE - 共享资源管理
  605. ::删除共享
  606. wmic SHARE where name="e$" call delete
  607. ::添加共享
  608. WMIC SHARE CALL Create "","test","3","TestShareName","","c:\test",0
  609. SOUNDDEV - 声音设备管理
  610. wmic SOUNDDEV list
  611. STARTUP - 用户登录到计算机系统时自动运行命令的管理
  612. ::查看msconfig中的启动选项
  613. wmic STARTUP list
  614. SYSDRIVER  - 基本服务的系统驱动程序管理
  615. wmic SYSDRIVER list
  616. USERACCOUNT  - 用户帐户管理
  617. ::更改用户administrator全名为admin
  618. wmic USERACCOUNT where name="Administrator" set FullName="admin"
  619. ::更改用户名admin为admin00
  620. wmic useraccount where "name='admin" call Rename admin00
  621. Datafile 别名
  622. wmic datafile "c:\\hello.txt" call rename c:\ppp.txt
  623. wmic datafile Where "drive='d:' and extension='txt' and path='\\'" get name
  624. WMIC FSDIR别名
  625. wmic fsdir where(name='c:\\good') delete
  626. wmic fsdir where(name='c:\\good') call delete
  627. 删除c:\good文件夹
  628. wmic fsdir where(name='c:\\good') rename "c:\abb"
  629. 重命名c:\good文件夹为abb
  630. 复制文件夹
  631. wmic fsdir where(name='d:\\test') call copy "c:\ppcd"
  632. 复制D盘下TEST文件夹的所有文件到C盘下的PPCD,如果PPCD存在直接复制过去,如果不存在他会自动创建并将文件复制过去
  633. wmic fsdir where(name='d:\\test') call Compress
  634. 压缩指定文件夹,以便节省磁盘空间
  635. wmic fsdir where(name='d:\\test') call unCompress
  636. 解除压缩文件夹
  637. Job 别名
  638. wmic job call create "sol.exe",0,0,1,0,********154600.000000+480
  639. 这个命令和AT命令是一模一样啊,AT添加的计划任务他可以看到,他添加的同样AT命令也是可以看到
  640. wmic job call create "sol.exe",0,0,true,false,********154800.000000+480
  641. wmic job call create "sol.exe",0,0,1,0,********154600.000000+480
  642. 这两句是相同的,TRUE可以用1表示,同样的FALSE可以用0值表示,时间前为何用八个星号,这是WMIC的特性,他显示时间的方式是YYYYMMDDHHMMSS.MMMMMM+时区 ,可是,我们并不需要指定年份和月份还有天,所以用*星号来替代
  643. Os 别名
  644. wmic os Where (primary='1') call win32shutdown *
  645. 这个*参数可以有如下值:
  646. Const LOGOFF=0
  647. Const SHUTDOWN=1
  648. Const REBOOT=2
  649. Const FORCE=4
  650. Const POWEROFF=8
  651. 这些参数可以进行任意组合,例如:
  652. 强制注销:4 (0+4)的组合
  653. 强制关机:5 (1+4)的组合
  654. 强制重启:6 (2+4)的组合
  655. 强制关闭电源:12 (8+4)的组合
  656. WMIC设置系统时间
  657. 要求需要有管理员权限
  658. wmic os where(primary=1) call setdatetime 20070731144642.555555+480
  659. Process 别名
  660. wmic process call create sol.exe
  661. wmic process 3848 call terminate
  662. 可以看出PROCESS别名是以HANDLE属性为默认属性进行操作的
  663. wmic process 2556 call setpriority 64
  664. wmic process Where "processid='%pid%'" call Terminate
  665. wmic process Where "name='%imagename%'" call Terminate
  666. wmic path Win32_Process.name="%imagename%" call Terminate
  667. wmic path Win32_Process.processid="%pid%" call Terminate
  668. wmic process Where name='sol.exe' delete
  669. Nicconfig 别名
  670. wmic nicconfig where(index='8') call enablestatic "192.168.1.81","255.255.255.0"   
  671. 设置IP地址和子网掩码
  672. wmic nicconfig where(index='8') call setgateways "192.168.0.1",1          
  673. 设置网关和跃点数
  674. wmic nicconfig where(index='8') call setdnsdomain ("192.168.0.1","192.168.0.11")  
  675. 设置DNS服务器地址,设置完毕后不会马上生效,必需要设置主次才可以生效
  676. wmic nicconfig where(index='8') call SetDNSServerSearchOrder ("192.168.0.1","192.168.0.11") 
  677. 设置DNS服务器地址的主次顺序,192.168.0.1在前表示为首选DNS地址,在后为备用DNS地址
  678. wmic path Win32_NetworkAdapterConfiguration.index=8 call enabledhcp
  679. WMIC默认的NICCONFIG别名是不提供enabledhcp这个方法的,所以我们只能调用他的WMI函数来设置动态分配IP地址的设置
  680. wmic nicconfig where(index='8') get /value ###INDEX值为你当前网卡的索引值,每台机器都不一样
  681. WMIC对注册表的操作
  682. wmic /namespace:\\root\default path stdregprov call getstringvalue ^&H80000002,"SOFTWARE\libowen","hello"
  683. wmic /namespace:\\root\default path stdregprov call createkey ^&h80000001,"libowen\good"
  684. 建立libowen\good 这个键值
  685. wmic /namespace:\\root\default path stdregprov call deletekey ^&h80000001,"libowen\sdd"  
  686. 删除键值SDD,注意此键值必须是最底层
  687. wmic /namespace:\\root\default path stdregprov call EnumKey ^&h80000001,"Keyboard Layout"
  688. 枚举Keyboard Layout下的所有子键值
  689. wmic /namespace:\\root\default path stdregprov call Enumvalues ^&h80000001,"Keyboard Layout\preload"
  690. 枚举Keyboard Layout\preload这个键值下的所有数值及其数值所对应的类型
  691. wmic /namespace:\\root\default path stdregprov call SetStringValue ^&h80000001,"libowen\test","hello world!","test"
  692. 建立一个名为test的string的数值,值为hello world!
  693. wmic /namespace:\\root\default path stdregprov call SetStringValue ^&h80000001,"libowen\test","test","aabb"
  694. 修改aabb的数值为test
  695. Pagefileset 别名
  696. wmic pagefileset get /value
  697. 用来察看本地计算机虚拟内存情况,初始大小,最大值,保存位置等
  698. 下面我们可以改变虚拟内存文件(也就是我们常说的页面文件) 所在位置以及初始大小和最大值
  699. wmic pagefileset set initialsize=512,maximumsize=1024
  700. 这个只是改变初始大小和最大值,SET不能修改页面文件所存放的位置,也就是说默认页面文件在C盘这时不能把他的位置修改到D盘,如果要修改到D盘我们可以这样来做
  701. wmic pagefileset create name='d:\pagefile.sys',initialsize=512,maximumsize=1024
  702. 然后删除以前的就可以了,请看
  703. wmic pagefileset where "name='c:\\pagefile.sys'"  delete
  704. 这样就实现了把页面文件转移到D盘的效果
  705. WMIC设置代理服务器
  706. wmic path win32_proxy get /value
  707. wmic path win32_proxy Where ServerName='ql-libowen.ql-art.com' call setproxysetting "8080","192.168.1.59"
  708. wmic path win32_proxy.servername="ql-libowen.ql-art.com" call setproxysetting "",""
  709. WMIC 设置共享
  710. 输入参数是 OBJECT 类型
  711. 原因:对于 OBJECT 类型的输入参数,还没有实现全面支持。默认值(空字符串:"")是目前支持的唯一值。
  712. 解决方案:使用下面的命令为三个用户设置 c:\test 目录的共享:
  713. WMIC SHARE CALL Create "","test","3","TestShareName","","c:\test",0
  714. 建立共享文件夹
  715. WMIC SHARE where(path='c:\\test') call delete
  716. WMIC对于共享文件夹操作
  717. WMIC SHARE where(path='c:\\test') delete
  718. Computersystem 别名
  719. wmic computersystem Where "name='原计算机名称'" call rename "要修改的计算机名"
  720. 主要功能:修改计算机名称
  721. wmic computersystem Where "name='计算机名称'" call joindomainorworkgroup "","","MyGroup"
  722. 主要功能:更改现有工作组为指定的工作组
  723. wmic computersystem Where "name='计算机名称' call UnjoinDomainOrWorkgroup
  724. 主要功能:退出所在域
  725. wmic computersystem Where "name='计算机名称'" call joindomainorworkgroup "",1,"域名称","域管理员密码","域管理员用户名"
  726. Useraccount 别名
  727. wmic useraccount where(LocalAccount='1' and name='good') set disabled=true
  728. wmic useraccount where(LocalAccount='1' and name='good') set fullname="hello world!"
  729. wmic useraccount where(localaccount=true and name='good') set passwordchangeable=true
  730. wmic useraccount Where "domain='ql-libowen' and name='libowen'" set PasswordExpires=false
复制代码
原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=35681
作者: Batcher    时间: 2009-4-8 12:53     标题: WMIC从命令行对Windows的全面管理

  1. 从Windows 2000开始,WMI(Windows 管理规范)就是Windows系统管理的重要组成部分。WMIC是Windows Management Instrumentation Command-line的简称,在WMIC出现之前,要从命令行访问WMI数据库或WMI名称空间不是一件容易的事情。现在,WMIC利用WMI强大的功能把系统管理扩展到了命令行。
  2.   一、什么是WMIC?
  3.   WMIC扩展WMI,提供了从命令行接口和批命令脚本执行系统管理的支持。在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,例如SMS,或者使用WMI的脚本编程API,或者使用象CIM Studio之类的工具。如果不熟悉C++之类的编成语言或VBScript之类的脚本语言,或者不掌握WMI名称空间的基本知识,要用WMI管理系统是很困难的。WMIC改变了这种情况,为WMI名称空间提供了一个强大的、友好的命令行接口。
  4.   WMIC比WMI简单、直观得多,这主要是由于使用了别名(Alias)。别名机制获取用户在命令行上输入的一些简单命令,按照预定义的方式操作WMI名称空间,例如根据一个简单的WMIC别名Get命令构造出一个复杂的WMI查询语言(WQL)命令。从这个意义上看,别名是用户和名称空间之间一个简化操作的中间层。例如,如果在WMIC命令行上执行下面这个简单的WMIC命令,就可以获得用户帐户的基本信息:
  5. useraccount list brief
  6.   在上面的命令中,Useraccount别名执行了一个Win32_Useraccount类的WQL查询,以文本的形式显示出从该类提取的信息。另外,WMIC还以文本的形式显示出Win32_Useraccount类的属性。除了文本形式的输出之外,WMIC还能够以其他形式返回命令执行结果,例如XML、HTML或者CSV(逗号分隔的文本文件)。
  7. WMIC以WMI模式中类的实例的形式保存别名。默认的别名类——MSFT_CliAlias,以及其他支持WMIC的类保存在模式的默认名称空间,或者说root\cli角色。角色可以简单地看成专门用来支持WMIC的另一个WMI名称空间。默认角色root\cli连接到root\cimv2名称空间,操作root\cimv2之内的类。虽然使用WMIC时一般不需要用到CIM Studio,但CIM Studio可以用来方便地查看root\cli名称空间。
  8.   你可以向root\cli名称空间和其他名称空间加入新的别名,还可以用Class和Path命令直接访问WMI名称空间,本文后面将详细说明Class和Path命令。
  9.   二、运行WMIC
  10.   执行“wmic”命令启动WMIC命令行环境。这个命令可以在XP或.NET Server的标准命令行解释器(cmd.exe)、Telnet会话或“运行”对话框中执行。这些启动方法可以在本地使用,也可以通过.NET Server终端服务会话使用。
  11.   第一次执行WMIC命令时,Windows首先要安装WMIC,然后显示出WMIC的命令行提示符。在WMIC命令行提示符上,命令以交互的方式执行。例如,执行下面的命令将关闭正在运行的Outlook:
  12. process where name='outlook.exe'  call terminate
  13.   命令运行结束后,WMIC命令行提示符重新出现。每个命令必须在一行之内输入,中间不能插入换行符。
  14.   WMIC也可以按照非交互的模式运行。如果要执行某个单步的任务,或者运行批命令中的一系列WMIC命令,非交互模式就很有用。要使用非交互模式,只要在同一个命令行上启动WMIC并输入要执行的命令就可以了。例如,执行cmd.exe打开一个命令行窗口,然后执行下面的命令,就可以输出连接到MACHINE1的打印机清单:
  15. wmic /node:MACHINE1 printer list status
  16.   在这个例子中,第一个操作是启动WMIC,然后是根据/node参数建立一个到MACHINE1的远程连接,最后执行一个WMIC命令显示出打印机状态信息。命令运行结束后,返回到Windows命令行提示符状态。
  17.   安装了WMIC的机器可以连接到任何一台安装了WMI的机器,被连接的机器不需要安装WMIC。例如,从一台运行Win XP Pro的机器启动WMIC,可以连接和管理所有运行着XP、Win2K、Windows NT 4.0、Windows Me和Windows 9x的机器。
  18.   三、WMIC命令行构成
  19.   WMIC提供了大量的全局开关、别名、动词、命令和丰富的命令行帮助增强用户接口。全局开关是适用于整个WMIC会话的配置选项。例如,/trace:on开关启用错误跟踪机制,如果这个开关处于打开状态,WMIC返回每一个命令的错误信息。利用/note开关可以访问远程机器,/interactive:on开关要求WMIC在执行删除操作之前提示确认,其他的全局开关还包括/role、/user、/implevel以及/namespace。
  20.   如前所述,别名是用户和WMI名称空间一个简化语法的中间层。当你指定一个别名时,动词(Verb)表示要执行的动作。例如,前面例子中的List和Call就是两个动词的例子。表一描述了其他一些WMIC动词,并为每一个动词给出了例子。
  21. 表一:WMIC动词  
  22. 动词  例子  说明  
  23. Assoc  group where name= 'administrators' assoc  显示出Administrators组与系统的所有关联,包括Administrators组成员等。又如,os assoc显示出有关操作系统的信息和已经安装的补丁。  
  24. Create  environment create name="progloc", username="work01\User1",variablevalue= "%programfiles%\prog01"  创建一个名字为Progloc的变量,把它的值设置为Program Files文件夹的一个子文件夹,把这个变量加入到Work01工作组计算机User1帐户。  
  25. Delete  environment where(name= "progloc") delete  删除Progloc环境变量。测试WMIC命令时,为了防止意外地删除,可以使用/interactive:on全局开关,这时删除之前会要求确认。  
  26. Get  partition get bootpartition, description, deviceid, bootable  返回分区是否可启动、描述信息和设备ID属性等信息。  
  27. Set  path WIN32_USERACCOUNT where(name="user01") set disabled="true"  在成员服务器或工作站上禁用User01用户帐户。  
  28.   命令用来控制对WMIC和WMI名称空间的访问。注意表一的最后一个例子,这个例子用的是Path和Win32_USERACCOUNT类,而不是Useraccount别名。Path是一个直接访问WMI名称空间中实例的命令,不必再通过别名访问。如果待执行的系统管理任务没有现成的别名可用,Path命令特别有用。虽然你可以用新的别名和角色扩展WMIC,但如果你对WMI名称空间比较熟悉,使用Path命令也很方便。
  29.  
  30. 除了Path命令之外,WMIC还支持Class、Context、Quit和Exit命令。Class命令用来直接访问WMI模式内的类或创建现有类的实例。Class命令和Path命令的不同之处在于,Path命令的作用对象是实例以及它的属性(例如,提取管理用的信息),而Class命令的作用对象是类的定义。例如,如果要提取出WIN32_SOFTWAREELEMENT类的所有属性,可以执行如下命令:
  31. class WIN32_SOFTWAREELEMENT get
  32.   这个命令的输出是HTML格式,稍后我们将了解如何用/output全局开关把输出重定向到可用浏览器打开的HTML文件。Class命令加上Assoc动词能够显示出类的名称空间路径以及其他与该类关联的类。利用Class命令可以删除类、创建类的实例,但不能创建类。
  33.   Context命令显示出全局开关的当前设置。Quit和Exit命令用来退出WMIC命令提示符环境,返回以前的Shell环境(例如Telnet环境,或XP的命令行提示符环境)。
  34.   命令行帮助是熟悉WMIC的有效途径。表二是在WMIC提示符下查找信息的常用命令:
  35. 四、实践应用
  36.   以上我们了解了WMIC命令行环境的基础知识,下面来看看如何用批命令运行WMIC,以及把输出结果定向到控制台或HTML、XML文件。从批命令文件运行WMIC的好处在于不需要重复输入一系列复杂的命令,例如,下面是一个批命令文件的内容,它的作用是显示出MACHINE1和MACHINE2这两台机器的CPU信息,输出结果显示在控制台上。/format开关是面向动词的开关,而不是全局开关,它只用于Get和List动词。
  37. wmic /node:MACHINE1, MACHINE4 cpu get name, caption,
  38.      maxclockspeed, systemname /format:textvaluelist.xsl
  39.   WMIC批命令可以使用变量。也就是说,对于上面的批命令,服务器的名字不仅可以直接指定,而且还可以通过%1、%2的形式指定,下面就是一个例子。把下面的代码放入一个批命令文件,然后在执行批命令文件时加上一到二个机器的名字即可;另外,也可以创建一个独立的文本文件,然后在文本文件中放入机器名字的清单,清单可以是CSV格式,或用换行符分隔的格式。如果使用独立的文本文件提供机器名字,只需在/node全局开关后面加上以@符号为前缀的文本文件名字,@符号告诉/node开关后面的参数是一个文件名字而不是机器名字。
  40. @echo off
  41. if "%1"=="" goto msg
  42. if "%2"=="" goto single
  43. wmic /node:%1, %2 cpu get name, caption, maxclockspeed, systemname
  44.      /format:textvaluelist.xsl
  45. goto end
  46. :single
  47. wmic /node:%1 cpu get name, caption, maxclockspeed,  
  48.      systemname /format:textvaluelist.xsl
  49. goto end
  50. :msg
  51. echo 必须指定至少一台计算机的名字。
  52. :end
  53.  如前所述,WMIC命令的输出结果不仅可以发送到控制台,还可以发送到XML或HTML、MOF(Managed Object Format)格式的文件。在安装了WMI的计算机上,MOF是WMI数据库中类和类实例的原始保存形式。下面的例子显示了如何把MACHINE4处理器信息的查询结果输出到HTML文件,/output全局开关要求WMIC把输出发送到file1.htm,/format开关要求WMIC把原始的XML输出转换成HTML格式。用来转换格式的XSL样式文件既可以是自定义的,也可以是任何安装了WMIC的机器上\%systemroot%\system32\wbem文件夹下面的任意XSL文件。例如,利用csv.xsl样式文件可以把输出结果转换成CSV格式,利用htable.xsl样式可以构造出一个包含结果数据的表格。
  54. wmic /node:MACHINE4 /output:e:\file1.htm cpu get description,
  55.      maxclockspeed, extclock, manufacturer,  revision /format:hform.xsl
  56.   前面已经提到,Class命令加上Get动词的默认输出是HTML格式。因此,如果要把这类命令的输出结果保存到HTML文件,只需指定/output开关,不必加上/format开关。/record和/append全局开关也能够从WMIC命令行截取信息,请利用WMIC的命令行帮助功能了解有关这些开关的更多信息。
  57.   如果要以XML格式输出,用/translate开关和Basicxml关键词把大于符号“>”和小于符号“<”转换成XML中有意义的字符。下面是输出XML的一个例子,输出的XML数据可导入到数据库或其他能够理解XML标记的系统。下面代码的输出中包含了WMIC命令、命令行请求参数、目标节点、全局开关以及命令执行结果。
  58. wmic cpu get maxclockspeed /translate:basicxml /format:rawxml.xsl
  59.   总之,WMIC是XP和.NET Server中命令行管理功能的一次重要改进,对于从命令行访问和管理WMI名称空间提供了强健的支持。虽然掌握和熟悉WMIC命令行环境需要一段时间,但只要你熟悉了它,一个系统管理的全新境界将展现在你的面前。
复制代码
原文地址:http://www.cn-dos.net/forum/viewthread.php?tid=22790
作者: lxzzr    时间: 2009-4-8 13:47

我想,一个新手来学习WMIC最好的办法还多看看一些WMIC的例子。
作者: zhouyongjun    时间: 2009-6-17 16:52

这么好的贴都不顶起来
感谢楼主!!!现在终于弄懂一些了,还要多去研究研究
作者: hacker_    时间: 2009-12-5 23:11

先收藏,有时间再看!哈哈
作者: middlelaw    时间: 2010-5-11 13:15

先收藏了,把VBS弄懂再说
作者: gxuan2008    时间: 2010-6-8 10:08

dos还没弄明白,又来了个WMIC。--#
谢谢老大的解答,要弄懂可能要花好长好长一段时间。
作者: wc726842270    时间: 2010-11-13 20:16

真是没想到WMIC竟然在这里,看来是稍微来晚了一些,不过帮助还是很大的,我对WMIC的用法也仅仅停留在几个别名上,不过在这个前提下是不是得先学好英文呢?
作者: locoman    时间: 2011-2-11 13:56

谢谢楼主分享,好好学习,天天向上。
作者: kevinak    时间: 2012-10-29 18:06

1.《WMI技术指南》:这个是基本上已经绝版的好图书,在网上唯一能找到的是来自“MS技术中国”的扫描版,该书我也是向该论坛斑竹索取的。谢谢技术中国也谢谢CN-DOS。
下载地址:
http://zhenlove.com.cn/cndos/fileup/files/Wmi技术指南(PDF).rar
2.《WMI开发文档》来自MS网站,下载地址是:http://zhenlove.com.cn/cndos/fileup/files/wmisdk(WMI开发文档).rar
3.《WMIC:从命令行对Windows的全面管理》,收集于网站:下载地址:
http://zhenlove.com.cn/cndos/fileup/files/WMIC从命令行对Windows的全面管理.rar


楼主,这几本书还有没,有的话,麻烦给个链接。最近需要查询win下一些硬件信息,用wmi比较方便。望给个下载地址
作者: kevinak    时间: 2012-10-29 18:06

上面的链接失效了。麻烦了
作者: caish2007    时间: 2014-2-28 15:36

不错,先存下来学习。
有些链接失效了,请楼主更新。爱学习的贴友,也可以百度你要的东西找。
作者: Linuxer    时间: 2014-8-26 10:25

今天想试着写个操作网卡的批处理,发现wmic真是个神器。。来学习wmic用法。
作者: 34205    时间: 2015-2-23 17:48

精彩,学习了111111111111111
作者: xiehua    时间: 2022-2-5 18:13

来晚了,下载链接已经失效
作者: Batcher    时间: 2022-2-6 20:33

回复 18# xiehua


    谢谢提醒,已更新。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2