• 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。

  • 相关阅读:
    Java生产者与消费者(下)
    Java生产者与消费者(上)
    Java中的继承和接口
    syslog(),closelog()与openlog()--日志操作函数
    Nagle算法
    TCP_NODELAY详解
    Linux "零拷贝" sendfile函数中文说明及实际操作分析
    pdflush的工作原理
    proc/sys/net/ipv4/下各项的意义
    求最低价格
  • 原文地址:https://www.cnblogs.com/code1992/p/11498001.html
Copyright © 2020-2023  润新知