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:\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,pathfor /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的3389wmic RDTOGGLE WHERE Servername=‘%COmpuTERname%‘ callSetAllowTSConnections 1 远程打开计算机远程桌面wmic /node:%pcname% /USER:%pcaccount% PATH win32_terminalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1 添加的计划任务,wmic添加的同样AT命令也是可以看到wmic job call create "sol.exe",true,false,********154800.000000+480wmic job call create "sol.exe",********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全部内容,希望文章能够帮你解决Wmic所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)