wmic命令有什么用

wmic命令有什么用,第1张

 WMIC扩展WMI(Windows Management Instrumentation,Windows管理规范) ,提供了从命令行接口和批命令脚本执行系统管理的支持。在WMIC出现之前,如果要管理WMI系统,必须使用一些专门的WMI应用,例如SMS,或者使用WMI的脚本编程API,或者使用象CIM Studio之类的工具。如果不熟悉C++之类的编成语言或VBScript之类的脚本语言,或者不掌握WMI名称空间的基本知识,要用WMI管理系统是很困难的。WMIC改变了这种情况,为WMI名称空间提供了一个强大的、友好的命令行接口。

WMIC比WMI简单、直观得多,这主要是由于使用了别名(Alias)。别名机制获取用户在命令行上输入的一些简单命令,按照预定义的方式 *** 作WMI名称空间,例如根据一个简单的WMIC别名Get命令构造出一个复杂的WMI查询语言(WQL)命令。从这个意义上看,别名是用户和名称空间之间一个简化 *** 作的中间层。例如,如果在WMIC命令行上执行下面这个简单的WMIC命令,就可以获得用户帐户的基本信息:

useraccount list brief

在上面的命令中,Useraccount别名执行了一个Win32_Useraccount类的WQL查询,以文本的形式显示出从该类提取的信息。另外,WMIC还以文本的形式显示出Win32_Useraccount类的属姓。除了文本形式的输出之外,WMIC还能够以其他形式返回命令执行结果,例如XML、HTML或者CSV(逗号分隔的文本文件)。

WMIC以WMI模式中类的实例的形式保存别名。默认的别名类——MSFT_CliAlias,以及其他支持WMIC的类保存在模式的默认名称空间,或者说root\cli角色。角色可以简单地看成专门用来支持WMIC的另一个WMI名称空间。默认角色root\cli连接到root\cimv2名称空间, *** 作root\cimv2之内的类。虽然使用WMIC时一般不需要用到CIM Studio,但CIM Studio可以用来方便地查看root\cli名称空间

你可以向root\cli名称空间和其他名称空间加入新的别名,还可以用Class和Path命令直接访问WMI名称空间,本文后面将详细说明Class和Path命令。

编辑本段运行WMIC

执行“wmic”命令启动WMIC命令行环境。这个命令可以在XP或 NET Server的标准命令行解释器(cmdexe)、Telnet会话或“运行”对话框中执行。这些启动方法可以在本地使用,也可以通过NET Server终端服务会话使用。

第一次执行WMIC命令时,Windows首先要安装WMIC,然后显示出WMIC的命令行提示符。在WMIC命令行提示符上,命令以交互的方式执行。例如,执行下面的命令将关闭正在运行的Outlook:

process where name='outlookexe' call terminate

命令运行结束后,WMIC命令行提示符重新出现。

WMIC也可以按照非交互的模式运行。如果要执行某个单步的任务,或者运行批命令中的一系列WMIC命令,非交互模式就很有用。要使用非交互模式,只要在同一个命令行上启动WMIC并输入要执行的命令就可以了。例如,执行cmdexe打开一个命令行窗口,然后执行下面的命令,就可以输出连接到MACHINE1的打印机清单:

wmic /node:MACHINE1 printer list status

在这个例子中,第一个 *** 作是启动WMIC,然后是根据/node参数建立一个到MACHINE1的远程连接,最后执行一个WMIC命令显示出打印机状态信息。命令运行结束后,返回到Windows命令行提示符状态。

安装了WMIC的机器可以连接到任何一台安装了WMI的机器,被连接的机器不需要安装WMIC。例如,从一台运行Win XP Pro的机器启动WMIC,可以连接和管理所有账行着XP、Win2K、Windows NT 40、Windows Me和Windows 9x的机器。

编辑本段WMIC命令行构成

WMIC提供了大量的全局开关、别名、动词、命令和丰富的命令行帮助增强用户接口。全局开关是适用于整个WMIC会话的配置选项。例如,/trace:on开关启用错误跟踪机制,如果这个开关处于打开状态,WMIC返回每一个命令的错误信息。利用/note开关可以访问远程机器,/interactive:on开关要求WMIC在执行删除 *** 作之前提示确认,其他的全局开关还包括/role、/user、/implevel以及/namespace。

如前所述,别名是用户和WMI名称空间一个简化语法的中间层。当你指定一个别名时,动词(Verb)表示要执行的动作。例如,前面例子中的List和Call就是两个动词的例子。表一描述了其他一些WMIC动词,并为每一个动词给出了例子。

表一:WMIC动词

动词 例子 说明

Assoc group where name= 'administrators' assoc 显示出Administrators组与系统的所有关联,包括Administrators组成员等。

又如,os assoc显示出有关 *** 作系统的信息和已经安装的补丁。

Create environment create name="progloc", username="work01\User1",variablevalue= "%programfiles%\prog01" 创建一个名字为Progloc的变量,把它的值设置为Program Files文件夹的一个子文件夹,把这个变量加入到Work01工作组计算机User1帐户。

Delete environment where(name= "progloc") delete 删除Progloc环境变量。测试WMIC命令时,为了防止意外地删除,可以使用/interactive:on全局开关,这时删除之前会要求确认。

Get partition get bootpartition, description, deviceid, bootable 返回分区是否可启动、描述信息和设备ID属姓等信息。

Set path WIN32_USERACCOUNT where(name="user01") set disabled="true" 在成员服务器或工作站上禁用User01用户帐户。

命令用来控制对WMIC和WMI名称空间的访问。注意表一的最后一个例子,这个例子用的是Path和Win32_USERACCOUNT类,而不是Useraccount别名。Path是一个直接访问WMI名称空间中实例的命令,不必再通过别名访问。如果待执行的系统管理任务没有现成的别名可用,Path命令特别有用。虽然你可以用新的别名和角色扩展WMIC,但如果你对WMI名称空间比较熟悉,使用Path命令也很方便。

除了Path命令之外,WMIC还支持Class、Context、Quit和Exit命令。Class命令用来直接访问WMI模式内的类或创建现有类的实例。Class命令和Path命令的不同之处在于,Path命令的作用对象是实例以及它的属姓(例如,提取管理用的信息),而Class命令的作用对象是类的定义。例如,如果要提取出WIN32_SOFTWAREELEMENT类的所有属姓,可以执行如下命令:

class WIN32_SOFTWAREELEMENT get

这个命令的输出是HTML格式,稍后我们将了解如何用/output全局开关把输出重定向到可用浏览器打开的HTML文件。Class命令加上Assoc动词能够显示出类的名称空间路径以及其他与该类关联的类。利用Class命令可以删除类、创建类的实例,但不能创建类。

Context命令显示出全局开关的当前设置。Quit和Exit命令用来退出WMIC命令提示符环境,返回以前的Shell环境(例如Telnet环境,或XP的命令行提示符环境)。

命令行帮助是熟悉WMIC的有效途径。表二是在WMIC提示符下查找信息的常用命令:

表二:命令行帮助

命令 例子 说明

/ 或 - 显示所有全局开关和别名的语法

/ / /user / 显示指定全局开关的信息

/ class / 显示某个命令的信息

/ memcache / 显示某个别名的信息

/ temperature get / 显示别名与动词组合的信息

/:Full irq get /:Full 显示动词的帮助信息

这个应该是在WINDOWS下如何获取系统各进程的CPU使用率的。

1、可以按“ctr+alt+del”组合键就会d出电脑任务管理的窗口,下方即可显示cpu的使用率。

2、选择资源监视器,在性能监视器里面,可以看到cpu的使用进程。

@echo off

chcp 936>nul 2>nul

setlocal enabledelayedexpansion

set /p name=姓名:

set /p type=类型:

set /p use=用途:

@echo 名称: %name% >%name%txt

@echo 类型: %type% >>%name%txt

@echo 用途: %use% >>%name%txt

@echo>>%name%txt

@echo

@rem 电脑名称 制造商

for /f "tokens=1-2 delims==" %%a in ('wmic computersystem get Name^,Manufacturer /value') do (

for /f %%i in ("%%a") do (

if "%%i" == "Name" (

@echo 电脑名称: %%b

set str=%%b

@echo 电脑名称: !str:~0,-1!>>%name%txt

)

if "%%i" == "Manufacturer" (

@echo 制造商: %%b

set str=%%b

@echo 制造商: !str:~0,-1!>>%name%txt

)

)

)

@rem *** 作系统

for /f "tokens= delims=" %%a in ('wmic os get Caption /value') do (

for /f %%i in ("%%a") do (

if "%%i" == "Caption" (

@echo *** 作系统: %%b

set str=%%b

@echo *** 作系统: !str:~0,-1!>>%name%txt

)

)

)

@echo>>%name%txt

@echo

@rem IP MAC

for /f "tokens=1-2 delims==" %%a in ('wmic nicconfig where "IPEnabled='TRUE'" get IPAddress^,MACAddress /value') do (

for /f %%i in ("%%a") do (

if "%%i" == "IPAddress" (

for /f tokens^=1-3^ delims^={^" %%x in ("%%b") do (

@echo IP地址: %%x

@echo IP地址: %%x>>%name%txt

)

)

if "%%i" == "MACAddress" (

@echo MAC地址: %%b

@echo MAC地址: !str:~0,-1!>>%name%txt

)

)

)

@echo>>%name%txt

@echo

@rem CPU型号 CPU核数 CPU线程数

for /f "tokens=1-2 delims==" %%a in ('wmic cpu get Name^,NumberOfCores^,NumberOfLogicalProcessors /value') do (

for /f %%i in ("%%a") do (

if "%%i" == "Name" (

@echo CPU型号: %%b

set str=%%b

@echo CPU型号: !str:~0,-1!>>%name%txt

)

if "%%i" == "NumberOfCores" (

@echo CPU核数: %%b

set str=%%b

@echo CPU核数: !str:~0,-1!>>%name%txt

)

if "%%i" == "NumberOfLogicalProcessors" (

@echo CPU线程数: %%b

set str=%%b

@echo CPU线程数: !str:~0,-1!>>%name%txt

)

)

)

@echo>>%name%txt

@echo

@rem 内存型号 内存大小

for /f "tokens=1-2 delims==" %%a in ('wmic memorychip get PartNumber^,Capacity /value') do (

for /f %%i in ("%%a") do (

if "%%i" == "PartNumber" (

@echo 内存型号: %%b

set str=%%b

@echo 内存型号: !str:~0,-1!>>%name%txt

)

if "%%i" == "Capacity" (

@echo 内存大小: %%b

set str=%%b

@echo 内存大小: !str:~0,-1!>>%name%txt

)

)

)

@echo>>%name%txt

@echo

@rem 磁盘名称 磁盘型号 磁盘容量

for /f "tokens=1-2 delims==" %%a in ('wmic diskdrive get Caption^,Model^,Size /value') do (

for /f %%i in ("%%a") do (

if "%%i" == "Caption" (

@echo 磁盘名称: %%b

set str=%%b

@echo 磁盘名称: !str:~0,-1!>>%name%txt

)

if "%%i" == "Model" (

@echo 磁盘型号: %%b

set str=%%b

@echo 磁盘型号: !str:~0,-1!>>%name%txt

)

if "%%i" == "Size" (

@echo 磁盘容量: %%b

set str=%%b

@echo 磁盘容量: !str:~0,-1!>>%name%txt

)

)

)

@echo>>%name%txt

@echo

@rem 显卡名称

for /f "tokens=1-2 delims==" %%a in ('wmic path Win32_VideoController get Name /value') do (

for /f %%i in ("%%a") do (

if "%%i" == "Name" (

@echo 显卡名称: %%b

set str=%%b

@echo 显卡名称: !str:~0,-1!>>%name%txt

)

)

)

pause

获取进程名称以及可执行路径开始--运行,输入CMD,确定,打开命令提示符输入wmic process get 回车即可注意wmic process get 后面应该有进程名,如果没有,则会显示所有进程。

你可以使用WMIC命令来获取OSGUID,WMIC指令格式为:wmics /namespace:"<NameSpace>" path "<Class>" get "<Property>" <Options>。其中<NameSpace>的值为root\\cimv2,而<Class>和<Property>的值则分别为Win32_OperatingSystem和GUID。

利用wmic获取cpu使用率

看到一个程序通过wmic process get Caption,KernelModeTime,UserModeTime命令来

获取所有进程的KernelModeTime和UserModeTime。

算出所有进程的 (KernelModeTime总和 + UserModeTime总和),作为allPorcessTime1;

算出System Idle Process进程和System进程的 (KernelModeTime总和 + UserModeTime总和),作为systemProcessTime1;

隔几秒后,再次调用wmic命令,再次获取allPorcessTime2和systemProcessTime2;

然后,

busyTime = allPorcessTime2 - allPorcessTime1;

idleTime = systemProcessTime2 - systemProcessTime1;

cpu使用率 = 100 (busyTime) / (busyTime + idleTime);

以上就是关于wmic命令有什么用全部的内容,包括:wmic命令有什么用、WMI如何获取系统各进程的CPU使用率、批处理之获取电脑配置信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9624769.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存