zoukankan      html  css  js  c++  java
  • Wmic

    WMIC(Windows Management InstrumentationCommand Line)

    windows除了cmd ,powershell以外另一个更为强大的命令执行shell:

    windows最令网管诟病的地方就是命令行没有unix和linux强大。但这种情况正在不断改观,windows命令行也越来越强大了。其中,微软耗费大量精力打造的wmi就是一例。

    运行wmic的先决条件:
    a. 启动Windows Management Instrumentation服务,开放TCP135端口。

    b. 本地安全策略的“网络访问: 本地帐户的共享和安全模式”应设为“经典-本地用户以自己的身份验证”。

    运行方式

    1、cmd中直接输入wmic打头的命令

    wmic os get name

    2、从开始里启动wmic,然后在wmic里输入  cpu get name 

    Microsoft Windows Management Instrumentation (WMI)。中文名字叫Windows管理规范。从Windows 2000开始,WMI(Windows 管理规范)就内置于操作系统中,并且成为了Windows系统管理的重要组成部分。


    WMI能做什么?
    WMI不仅可以获取想要的计算机数据,而且还可以用于远程控制。远程控制计算机可是大家都喜欢的东西。很多远程监视控制类软件通常的做法是:在远程计算机上运行服务端后台程序,在本地计算机上运行一个客户器端控制程序,通过这二个程序的勾结来实现对计算机的远程控制。这种作法的缺点是十分明显的,当服务端程序关了,这种远程监控就无法实现了,因为没有内线了。而WMI实现的远程监视和控制完全不需要另外装什么服务端的东西,系统默认就将WMI服务给开了。具体说来,WMI的本领如下:
    1.获取本地和远程计算机的硬件软件信息。
    2.监视本地和远程计算机的软件和服务等运行状况。
    3.控制本地和远程计算机的软件和服务运行。
    4.高级应用。

    如何访问WMI?
    当我们知道WMI的某些本领后,我们已经很想知道如何认识他并利用他了。利用WMI有许多途径,简单说来有三种了:
    1.通过微软给我们提供的各种工具来实现普通查询和操作。主要包括命令提示符下面的WMIC,还有就是微软给我们提供的WMI TOOL,大家可以到微软的网站上免费下载,当然我也可以给大家免费提供。
    2.通过自己编写脚本来实现更灵活操作。要想真正灵活实用,对WSH脚本的熟悉是必须的,当然如果你不熟悉也没有关系,稍后我会给大家详细解释的。
    3. 通过编写我们自己的程序来访问并操作它。什么语言都行。如果用.NET类程序要简单些了,如果用VC等要复杂些了,起码我是这么认为的。
    4.还有个访问它的方法,就是到它的一个巢穴。在C:WINDOWSsystem32wbem目录中的东西都和它有密切联系,有日志和各种工具,在里面你可以找到很多答案的。不过这些东西一般都不适合我们新手玩了,感觉有点吓人。

    WMIC是Windows Management Instrumentation Commandline的简称,WMIC扩展WMI,提供了从命令行接口和批命令脚本执行系统管理的支持。为WMI名称空间提供了一个强大的、友好的命令行接口。有了WMIC,WMI就显的平易近人了。

    wmic 获取进程名称以及可执行路径:
    wmic process get name,executablepath

    wmic 删除指定进程(根据进程名称):
    wmic process where name="qq.exe" call terminate
    或者用
    wmic process where name="qq.exe" delete

    wmic 删除指定进程(根据进程PID):
    wmic process where pid="123" delete

    wmic 创建新进程
    wmic process call create "C:Program FilesTencentQQQQ.exe"

    在远程机器上创建新进程:
    wmic /node:192.168.1.10 /user:administrator /password:123456 process call create cmd.exe

    关闭本地计算机
    wmic process call create shutdown.exe

    重启远程计算机
    wmic /node:192.168.1.10/user:administrator /password:123456 process call create "shutdown.exe -r -f -m"

    更改计算机名称
    wmic computersystem where "caption='%ComputerName%'" call rename newcomputername

    更改帐户名
    wmic USERACCOUNT where "name='%UserName%'" call rename newUserName

    wmic 结束可疑进程(根据进程的启动路径)

    wmic process where "name='explorer.exe' and executablepath<>'%SystemDrive%\windows\explorer.exe'" delete

    wmic 获取物理内存
    wmic memlogical get TotalPhysicalMemory|find /i /v "t"

    获得系统版本信息
    wmic datafile where Name='c:\windows\explorer.exe' get Manufacturer,Version,Filename

    获得系统进程
    wmic process list full 注意:
    这里的full也可以换成brief(简洁)

    获得硬件信息(这里以cpu为例)
    wmic cpu get name,caption,maxclockspeed,description

    将结果输出到d盘的1.txt里面
    wmic /output:D:1.txt cpu get name

    wmic 获取硬盘固定分区盘符:
    wmic logicaldisk where "drivetype=3" get name

    wmic 获取硬盘各分区文件系统以及可用空间:
    wmic logicaldisk where "drivetype=3" get name,filesystem,freespace

    wmic 获取进程名称以及可执行路径:
    wmic process get name,executablepath

    wmic 删除指定进程(根据进程名称):
    wmic process where name="qq.exe" call terminate
    或者用
    wmic process where name="qq.exe" delete

    wmic 删除指定进程(根据进程PID):
    wmic process where pid="123" delete

    wmic 创建新进程
    wmic process call create "C:Program FilesTencentQQQQ.exe"

    在远程机器上创建新进程:
    wmic /node:192.168.1.10 /user:administrator /password:123456 process call create cmd.exe

    关闭本地计算机
    wmic process call create shutdown.exe

    重启远程计算机
    wmic /node:192.168.1.10/user:administrator /password:123456 process call create "shutdown.exe -r -f -m"

    更改计算机名称
    wmic computersystem where "caption='%ComputerName%'" call rename newcomputername

    更改帐户名
    wmic USERACCOUNT where "name='%UserName%'" call rename newUserName

    wmic 结束可疑进程(根据进程的启动路径)
    wmic process where "name='explorer.exe' and executablepath<>'%SystemDrive%\windows\explorer.exe'" delete

    wmic 获取物理内存
    wmic memlogical get TotalPhysicalMemory|find /i /v "t"

    wmic 获取文件的创建、访问、修改时间
    @echo off
    'wmic datafile where name^="c:\windows\system32\notepad.exe" get CreationDate^,LastAccessed^,LastModified

    wmic 全盘搜索某文件并获取该文件所在目录
    wmic datafile where "FileName='qq' and extension='exe'" get drive,path
    for /f "skip=1 tokens=1*" %i in ('wmic datafile where "FileName='qq' and extension='exe'" get drive^,path') do (set "qPath=%i%j" &@echo %qPath:~0,-3%)

    获取屏幕分辨率
    wmic DESKTOPMONITOR where Status='ok' get ScreenHeight,ScreenWidth

    获取共享资源(包括隐藏共享)
    WMIC share list brief

    获取U盘盘符,并运行U盘上的QQ.exe
    @for /f "skip=1 tokens=*" %i in ('wmic logicaldisk where "drivetype=2" get name') do (if not "%i"=="" start d:qq.exe)

    获得进程当前占用的内存和最大占用内存的大小:
    wmic process where caption='filename.exe' get WorkingSetSize,PeakWorkingSetSize

    更改现有工作组为指定的工作组
    wmic computersystem Where "name='计算机名称' call UnjoinDomainOrWorkgroup

    退出所在域
    wmic computersystem Where "name='计算机名称'" call joindomainorworkgroup "",1,"域名称","域管理员密码","域管理员用户名"

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    开2003的3389
    wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call
    SetAllowTSConnections 1

    远程打开计算机远程桌面
    wmic /node:%pcname% /USER:%pcaccount% PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1

    添加的计划任务,wmic添加的同样AT命令也是可以看到
    wmic job call create "sol.exe",0,0,true,false,********154800.000000+480
    wmic job call create "sol.exe",0,0,1,0,********154600.000000+480
    这两句是相同的,TRUE可以用1表示,同样的FALSE可以用0值表示,时间前为何用八个星号,这是WMIC的特性,他显示时间的方式是YYYYMMDDHHMMSS.MMMMMM+时区 ,可是,我们并不需要指定年份和月份还有天,所以用*星号来替代

    在wmic下查看BIOS信息
    wmic bios list full

    wmic还有停止、暂停和运行服务的功能:
    启动服务startservice,停止服务stopservice,暂停服务pauseservice。
    具体的命令使用格式就是:
    wmic Service where caption=”windows time” call stopservice
    ●--停止服务
    wmic Service where caption=”windows time” call startservice
    ●--启动服务
    wmic Service where name=”w32time” call stopservice
    ●--停止服务,注意name和caption的区别。


    远程创建进程
    wmic
    /node:109.254.2.102 /user:"rdgadadministrator" /password:"1234"
    process call create commandline="cmd.exe /k echo xxxxx|clip.exe"

    WMIC检测电脑最大可支持的内存:
    1)点“开始”——在“运行”框中输入CMD,按回车键;
    2)在命令窗口中输入wmic memphysical get maxcapacity,按回车键;3)此时系统会给出一串以千字节为单位的数字,把该数字换算成GB单位;换算方法:得到的数字/1024/1024

    如上,33554432/1024/1024=32GB;
    即最大可支持的内存容量为32GB。

  • 相关阅读:
    洛谷 1850 NOIP2016提高组 换教室
    2018牛客多校第三场 C.Shuffle Cards
    2018牛客多校第一场 B.Symmetric Matrix
    2018牛客多校第一场 A.Monotonic Matrix
    2018牛客多校第一场 D.Two Graphs
    2018宁夏邀请赛L Continuous Intervals
    2018宁夏邀请赛K Vertex Covers
    BZOJ
    HDU
    ACM International Collegiate Programming Contest, Egyptian Collegiate Programming Contest (ECPC 2015)
  • 原文地址:https://www.cnblogs.com/code1992/p/11498001.html
Copyright © 2011-2022 走看看