如何在Windows中使用WMIC控制台命令

 我们的windows系统除了大家都熟悉的cmd命令行工具外,还有另一个更强大的命令行shell你知道是什么吗?

关于windows命令行不如unix和linux强大,是一直以来的诟病。然而这种情况正在改变,微软花费大量精力建造的wmic,wmic虽然鲜为人知,但是功能非常强大,它具有许多的选项使得windows命令行变得越来越强大。可以使我们有效地管理系统。

Windows中的WMIC是什么?

WMIC是Windows Management Instrumentation控制台(WMI控制台)的缩写。通过WMIC,可以同时管理本地和远程计算机,并且可以执行任何类型的任务,例如获取信息,启动,停止,暂停进程和服务,以及更改以管理员身份访问的计算机上的任何类型的配置。

从命令行或批处理文件中使用WMI控制台获取有关PC硬件和软件的信息,并在Windows中管理系统获取数据,控制和执行各种任务。代码和实际示例如下。

使用WMIC获取系统信息的命令示例

您可以使用一些命令示例来获取有关硬件完整部分的所有信息,这些情况下的输出将在屏幕上显示该信息。

如何在WMIC中使用命令

您可以通过几种方式使用示例命令:

1--将命令提示符实例复制并粘贴到窗口中。

2--将它们复制并粘贴到“开始”中,然后按Enter键。

在这种情况下,必须在它们前面加上:cmd /k。

  cmd /k WMIC /Output:STDOUT BIOS get /all /format:LIST

3--创建一个批处理文件,并将其包含在其中。

默认情况下,WMIC返回的信息以列表格式显示在“命令提示符”屏幕上。
要将其写入文本文件,请用/Output:lista.txt替换参数:/ Output:STDOUT。
要将其写入文件以使用Excel打开和编辑,请用/Output:lista.xls替换参数:/ Output:Stdout。

使用WMIC的示例命令

使用WMIC获取有关计算机BIOS的信息


wmic /Output:STDOUT  BIOS get /all /format:LIST

启动某服务

WMIC SERVICE where caption='TELNET' CALL STARTSERVICE

杀掉某进程

WMIC PROCESS where name='calc.exe' delete

获取有关计算机CPU的信息

WMIC /Output:STDOUT  CPU get /all /format:LIST

获取有关带有WMIC的CD-ROM驱动器的信息

WMIC /Output:STDOUT  CDROM get /all /format:LIST

获取有关适配器或网卡的信息

WMIC /Output:STDOUT  NICCONFIG get /all /format:LIST

获取有关操作系统的信息

WMIC /Output:STDOUT  COMPUTERSYSTEM get /all /format:LIST

获取有关它或硬盘驱动器的信息

WMIC /Output:STDOUT  DISKDRIVE get /all /format:LIST

获取有关逻辑磁盘的信息

WMIC /Output:STDOUT  LOGICALDISK get /all /format:LIST

获取有关RAM内存的信息

WMIC /Output:STDOUT  MEMPHYSICAL get /all /format:LIST

获取有关WMIC服务的信息

WMIC /Output:STDOUT  SERVICE get /all /format:LIST

获取有关WMIC流程的信息

WMIC /Output:STDOUT  PROCESS get /all /format:LIST

使用WMIC在Windows启动时获取有关程序的信息

WMIC /Output:STDOUT  STARTUP get /all /format:LIST

获取有关主板或基卡上设备的信息

WMIC /Output:STDOUT  ONBOARDDEVICE get /all /format:LIST

获取有关操作系统错误的信息

WMIC /Output:STDOUT  RECOVEROS get /all /format:LIST

如何在WMIC中使用命令,选项

您请求的每个子项或别名中的WMIC都为您提供了许多您可能不需要的大多数参数。
选项是在代码中输入用逗号分隔的特定参数的列表,因此返回给您的信息是真正必要的信息。
像下面的示例一样,在LOGICALDISK子项中请求最常用的参数。

显示带有WMIC硬盘的信息

 WMIC /Output:STDOUT  LOGICALDISK get DeviceID, VolumeName, Size, FreeSpace, FileSystem, Compressed, Description, MaximumComponentLength, QuotasDisabled, QuotasIncomplete, QuotasRebuilding, SupportsDiskQuotas, VolumeSerialNumber /Format:LIST

显示带有WMIC磁盘驱动器的信息

您还可以通过使用where单词指定参数的条件来发出请求。例如,要在LOGICALDISK中列出仅使用drivetype = 3的硬盘驱动器,而仅列出使用drivetype = 5的光驱,则如下所示:

列出硬盘驱动器

WMIC  LOGICALDISK where drivetype=3 get DeviceID, VolumeName, Size, FreeSpace, FileSystem,  Description

列出光盘驱动器(CD播放器)

WMIC  LOGICALDISK where drivetype=5 get VolumeName, Size, DeviceID, Description

列出具有WMIC的网络适配器

同样,在使用Alias NICCONFIG时,它会列出所有网络适配器。要获得仅指定当前连接的网络适配器状况的信息,它看起来像这样:

WMIC NICCONFIG Where IPEnabled=TRUE get /format:list

最后,仅选择一些参数并将其保存在文本文件中

 WMIC NICCONFIG Where IPEnabled=TRUE get DefaultIPGateway, Description, DNSServerSearchOrder, IPAddress, IPSubnet, MACAddress /format:list>"%userprofile%\Desktop\Datos adaptador de red".txt

Windows任务中使用WMIC

WMIC还可以用于其他功能中,不仅可以提取信息,还可以实际使用一些示例:

--svchost.exe中进程列表:

wmic process where (Name='svchost.exe') get name, processid, commandline

--更改应用程序的优先级:

wmic process where name="explorer.exe" call setpriority 64

--启动一个应用程序:

wmic process call create "notepad.exe"

--完成申请:

wmic process where name="notepad.exe" call terminate

--管理服务:

 wmic service where caption="DHCP Client" call changestartmode "Disabled"

--启用动态IP地址:

wmic nicconfig where index=9 call enabledhcp

--设置静态IP地址:

wmic nicconfig where index=9 call enablestatic("192.168.1.6"), ("255.255.255.0")

其实wmic还有很多用法,我们可以灵活运用它们,还可以把它们放进批处理里面使用,有关具体用法 wmic /? 获得帮助信息。