首页 > 其他分享 >Wmic——WMI不仅可以获取想要的计算机数据,而且还可以用于远程控制

Wmic——WMI不仅可以获取想要的计算机数据,而且还可以用于远程控制

时间:2023-08-02 21:37:32浏览次数:28  
标签:exe name call process WMI wmic Wmic where 远程

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

Wmic——WMI不仅可以获取想要的计算机数据,而且还可以用于远程控制_进程名

 

 

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

Wmic——WMI不仅可以获取想要的计算机数据,而且还可以用于远程控制_安全分析_02

 

Wmic——WMI不仅可以获取想要的计算机数据,而且还可以用于远程控制_进程名_03

 

 

 

 

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:\WINDOWS\system32\wbem目录中的东西都和它有密切联系,有日志和各种工具,在里面你可以找到很多答案的。不过这些东西一般都不适合我们新手玩了,感觉有点吓人。

 

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 Files\Tencent\QQ\QQ.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 Files\Tencent\QQ\QQ.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:"rdgad\administrator" /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。

标签:exe,name,call,process,WMI,wmic,Wmic,where,远程
From: https://blog.51cto.com/u_11908275/6943113

相关文章

  • 配置Windows远程服务证书
    1、生成自签名证书$certname="certnameTest"##Replace{certificateName}$cert=New-SelfSignedCertificate-Subject"CN=$certname"-CertStoreLocation"Cert:\CurrentUser\My"-KeyExportPolicyExportable-KeySpecSignature-KeyLe......
  • 4G无线断电断网监测网关可远程告警
    RTU5028E网络故障监测终端是一款功能强大且方便实用的设备,集合了断网、断电、网线故障报警功能。它支持同时监测多达7台网络设备,可以帮助用户快速定位远程网络设备离线的原因。此外,它还具备自动重启和远程重启网络设备的功能,为用户提供了更加便捷的操作方式。一、断网报警功能RTU50......
  • git 远程库(github)使用以及远程协作
    前文所述工作区、暂存区和本地库均属位于个人电脑上,其他人无法共享。若要让别人获取自己的代码进行修改,需要将其上传至github(或者gitlab)。命令详解1.为远程库创建别名$gitremoteaddgit-demohttps://github.com/shj-12345/git-demo.gitgit-demo:给库取的别名,主要是为了......
  • Git删除本地分支和远程分支
    Git删除本地分支和远程分支#删除本地dev分支gitbranch-Ddev#删除远程dev分支gitpushorigin-ddev......
  • windows下eclipse远程调试tomcat部署的工程
    修改catalina添加以下内容,其中21888为自定义的调试端口set"JAVA_OPTS=%JAVA_OPTS%-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=21888-Djava.protocol.handler.pkgs=org.apache.catalina.webresources"正常启动tomcat后,在eclipse的debugconfiguratio......
  • 大厂原来都这么使用IDEA远程调试的!
    远程调试是一项重要的技术,特别是对于使用IDEA开发的开发者来说。在本篇技术博客中,我们将探讨如何使用IDEA进行远程调试。1IDEA配置首先,我们需要确保我们的开发环境已经准备就绪。我们需要在远程服务器上安装并配置好调试器,如GDB或LLDB。我们还需要在本地计算机上安装IDEA,并确保我......
  • Gin+Xterm.js实现远程Kubernetes Pod(一)
    Xterm.js简介xterm.js(https://xtermjs.org/)是一个开源的JavaScript库,它模拟了一个终端接口,可以在网页中嵌入一个完全功能的终端。这个库非常灵活,并且具有很多定制选项和插件系统。下面是一些使用xterm.js的基本步骤:首先,需要在项目中安装xterm.js。你可以直接从npm......
  • Apache RocketMQ 远程代码执行漏洞(CVE-2023-33246)
    漏洞简介RocketMQ5.1.0及以下版本,在一定条件下,存在远程命令执行风险。RocketMQ的NameServer、Broker、Controller等多个组件外网泄露,缺乏权限验证,攻击者可以利用该漏洞利用更新配置功能以RocketMQ运行的系统用户身份执行命令。此外,攻击者可以通过伪造RocketMQ协议内容来达到......
  • Windows server 2012 服务器允许多用户同时远程桌面的设置
    错误表现如下方法1.在运行里面(Windows+R)或者右击开始菜单,选择运行,输入“gpedit.msc”命令2.计算机组策略”依次打开计算机配置-->管理模板--->windows组件--->远程桌面服务--->远程桌面会话主机--->连接3.在连接里面找到“限制连接的数量”双击,显示如图,选中“已启用”and我设置......
  • pycharm远程调试忽略文件
     pycharm远程调试忽略文件https://zhuanlan.zhihu.com/p/511270615如果要忽略指定文件夹,可以在settings->build,execution,Deployment->deployment->options->Excludeitemsbyname中设置。 ......