wmic教程 命令收集

BIOS  – 基本输入/输出服务 (BIOS) 管理
 ::查看bios版本型号
 wmic bios get Manufacturer,Name
 
COMPUTERSYSTEM – 计算机系统管理
 ::查看系统启动选项,boot的内容
 wmic COMPUTERSYSTEM get SystemStartupOptions
 ::查看工作组/域
 wmic computersystem get domain
 ::更改计算机名abc为123
 wmic computersystem where “name=’abc’” call rename 123
 ::更改工作组google为MyGroup
 wmic computersystem where “name=’google’” call joindomainorworkgroup “”,”",”MyGroup”,1
 
CPU – CPU 管理
 ::查看cpu型号
 wmic cpu get name
 
DATAFILE – DataFile 管理
 ::查找e盘下test目录(不包括子目录)下的cc.cmd文件
 wmic datafile where “drive=’e:’ and path=’//test//’ and FileName=’cc’ and Extension=’cmd’” list
 ::查找e盘下所有目录和子目录下的cc.cmd文件,且文件大小大于1K
 wmic datafile where “drive=’e:’ and FileName=’cc’ and Extension=’cmd’ and FileSize>’1000′” list
 ::删除e盘下文件大小大于10M的.cmd文件
 wmic datafile where “drive=’e:’ and Extension=’cmd’ and FileSize>’10000000′” call delete
 ::删除e盘下test目录(不包括子目录)下的非.cmd文件
 wmic datafile where “drive=’e:’ and Extension<>’cmd’ and path=’test’” call delete
 ::复制e盘下test目录(不包括子目录)下的cc.cmd文件到e:/,并改名为aa.bat
 wmic datafile where “drive=’e:’ and path=’//test//’ and FileName=’cc’ and Extension=’cmd’” call copy “e:/aa.bat”
 ::改名c:/hello.txt为c:/test.txt
 wmic datafile “c://hello.txt” call rename c:/test.txt
 ::查找h盘下目录含有test,文件名含有perl,后缀为txt的文件
 wmic datafile where “drive=’h:’ and extension=’txt’ and path like ‘%//test//%’ and filename like ‘%perl%’” get name

DESKTOPMONITOR – 监视器管理
 ::获取屏幕分辨率
 wmic DESKTOPMONITOR where Status=’ok’ get ScreenHeight,ScreenWidth
 
DISKDRIVE  – 物理磁盘驱动器管理
 ::获取物理磁盘型号大小等
 wmic DISKDRIVE get Caption,size,InterfaceType
 
ENVIRONMENT  – 系统环境设置管理
 ::获取temp环境变量
 wmic ENVIRONMENT where “name=’temp’” get UserName,VariableValue
 ::更改path环境变量值,新增e:/tools
 wmic ENVIRONMENT where “name=’path’ and username=’’” set VariableValue=”%path%;e:/tools”
 ::新增系统环境变量home,值为%HOMEDRIVE%%HOMEPATH%
 wmic ENVIRONMENT create name=”home”,username=””,VariableValue=”%HOMEDRIVE%%HOMEPATH%”
 ::删除home环境变量
 wmic ENVIRONMENT where “name=’home’” delete
 
FSDIR  – 文件目录系统项目管理
 ::查找e盘下名为test的目录
 wmic FSDIR where “drive=’e:’ and filename=’test’” list
 ::删除e:/test目录下除过目录abc的所有目录
 wmic FSDIR where “drive=’e:’ and path=’//test//’ and filename<>’abc’” call delete
 ::删除c:/good文件夹
 wmic fsdir “c://good” call delete
 ::重命名c:/good文件夹为abb
 wmic fsdir “c://good” rename “c:/abb”

LOGICALDISK  – 本地储存设备管理
 ::获取硬盘系统格式、总大小、可用空间等
 wmic LOGICALDISK get name,Description,filesystem,size,freespace
 
NIC – 网络界面控制器 (NIC) 管理
 
OS  – 已安装的操作系统管理
 ::设置系统时间
 wmic os where(primary=1) call setdatetime 20070731144642.555555+480
 
PAGEFILESET  – 页面文件设置管理
 ::更改当前页面文件初始大小和最大值
 wmic PAGEFILESET set InitialSize=”512″,MaximumSize=”512″
 ::页面文件设置到d:/下,执行下面两条命令
 wmic pagefileset create name=’d:/pagefile.sys’,initialsize=512,maximumsize=1024
 wmic pagefileset where”name=’c://pagefile.sys’” delete
 
PROCESS – 进程管理
 ::列出进程的核心信息,类似任务管理器
 wmic process list brief
 ::结束svchost.exe进程,路径为非C:/WINDOWS/system32/svchost.exe的
 wmic process where “name=’svchost.exe’ and ExecutablePath<>’C://WINDOWS//system32//svchost.exe’” call Terminate
 ::新建notepad进程
 wmic process call create notepad
 
PRODUCT – 安装包任务管理
 ::安装包在C:/WINDOWS/Installer目录下
 ::卸载.msi安装包
 wmic PRODUCT where “name=’Microsoft .NET Framework 1.1′ and Version=’1.1.4322′” call Uninstall
 ::修复.msi安装包
 wmic PRODUCT where “name=’Microsoft .NET Framework 1.1′ and Version=’1.1.4322′” call Reinstall
 
SERVICE – 服务程序管理
 ::运行spooler服务
 wmic SERVICE where name=”Spooler” call startservice
 ::停止spooler服务
 wmic SERVICE where name=”Spooler” call stopservice
 ::暂停spooler服务
 wmic SERVICE where name=”Spooler” call PauseService
 ::更改spooler服务启动类型[auto|Disabled|Manual] 释[自动|禁用|手动]
 wmic SERVICE where name=”Spooler” set StartMode=”auto”
 ::删除服务
 wmic SERVICE where name=”test123″ call delete
 文章地址:http://qlj.sh.cn/system/20090430/wmic-command/
SHARE – 共享资源管理
 ::删除共享
 wmic SHARE where name=”e$” call delete
 ::添加共享
 WMIC SHARE CALL Create “”,”test”,”3″,”TestShareName”,”",”c:/test”,0
 
SOUNDDEV – 声音设备管理
 wmic SOUNDDEV list
 
STARTUP – 用户登录到计算机系统时自动运行命令的管理
 ::查看msconfig中的启动选项
 wmic STARTUP list
 
SYSDRIVER  – 基本服务的系统驱动程序管理
 wmic SYSDRIVER list
 
USERACCOUNT  – 用户帐户管理
 ::更改用户administrator全名为admin
 wmic USERACCOUNT where name=”Administrator” set FullName=”admin”
 ::更改用户名admin为admin00
 wmic useraccount where “name=’admin” call Rename admin00

 

 

 

关于 WMIC 的使用
最佳操作
对为别名返回的特定实例使用 WHERE () 子句。
? WHERE() 子句必须包括 WHERE 子句以进行有效的 WQL 查询。只有复杂的条件才需要括号。请查看 WQL 语法的 WMI SDK。WHERE() 子句必须紧随在别名之后。例如: process where (processID>300) list brief

? 当 WHERE 子句是 WHERE NAME=’’ 时,只提供值就足够了。例如: SERVICE CLIPSRV
代替:
SERVICE WHERE NAME=’CLIPSRV’

使用 /OUTPUT、/APPEND 和 /RECORD 命令重定向输出。
? 以 HTML 格式输出的命令(如 CLASS)通常将它们的输出定向到一个文件。然后可以查看该文件,以了解命令的结果。可以使用 /OUTPUT、/APPEND 和 /RECORD 命令重定向输出。

如果值包含特殊字符(短划线、斜杠或空格),则请用引号将值括起来。
对于大的域或数据库,请使用以下查询的方法
? ALIAS
WMIC ALIAS PROCESS LIST BRIEF

? USERACCOUNT
WMIC USERACCOUNT WHERE “Name=’PutUserNameHere’ and Domain=’PutDomainNameHere’”

? FSDIR
WMIC FSDIR WHERE Name=’c://WINDOWS’

? DATAFILE
WMIC DATAFILE WHERE Name=”c://boot.ini” WMIC DATAFILE WHERE “PATH=’//windows//’ and Extension=’exe’ and FileSize>’108032′” GET LastAccessed, LastModified, Name, FileSize

? NTEVENT
WMIC NTEVENT WHERE “LogFile=’system’ and Type>’0′” GET Message, TimeGenerated WMIC NTEVENT WHERE “LogFile=’system’ and Type>’0′” GET Message, TimeGenerated /FORMAT:htable >c:/MySystemEvents.htm

? 查询:
使用引号 “” 将 WHERE 表达式分开,而不用括号 ():
WMIC NTEVENT WHERE “LogFile=’system’ and Type>’4′”
[ 比较:WMIC NTEVENT WHERE (LogFile='system' and TYPE>4)
在这种情况下,命令行解释器将曲解    ">4)"
并试图将输出重定向到指定文件      "4)"      ]

在交互模式下运行 WMIC
1.
单击“开始”,然后单击“运行”。

2.
键入:
WMIC,然后按 Enter。

3.
键入希望 WMIC 执行的别名、命令或全局开关。

注意
? 要执行该过程,您必须是本地计算机上 Administrators 组的成员,或者您必须被委派了适当的权限。如果计算机已加入某个域,则 Domain Admins 组的成员可能会执行该过程。详细信息,请参阅默认本地组和默认组。

? 在交互模式下使用完 WMIC 之后,可以使用 Exit 或 Quit 命令退出 WMIC。

? 有关 WMIC 命令的详细信息,请在命令提示符处键入 /?。

在非交互模式下运行 WMIC
1.
打开“命令提示符”。

2.
在命令提示符下,键入:
WMIC
和希望 WMIC 执行的命令、别名或全局开关。

3.
按 Enter。

注意
要执行该过程,您必须是本地计算机上 Administrators 组的成员,或者您必须被委派了适当的权限。如果计算机已加入某个域,则 Domain Admins 组的成员可能会执行该过程。作为安全性最佳操作,请考虑使用“运行方式”执行此过程。详细信息,请参阅默认本地组、默认组以及使用运行方式。

要打开命令提示符窗口,请单击“开始”,依次指向“所有程序”、“附件”,然后单击“命令提示符”。

在非交互式模式下,WMIC 在执行一个命令之后返回到命令提示符。

有关 WMIC 命令的详细信息,请在命令提示符处键入 WMIC /?。
WMIC 的安全性
有关安全模式的一般信息
只有本地 Administrators 组的用户才可以启动 WMIC。在任何从 WMIC 到 WMI 的调用中都会强制执行 WMI 安全访问模型。操作系统对于通过 WMI 执行的任何操作均强制实施操作系统级别的安全性。例如,您不能通过 WMI 访问您不能从 Windows 资源管理器访问的文件。
WMIC 是 WMI 的客户端,因此所有安全检查都在 WMI 组件内进行。在连接到远程计算机之前,组件使用 PING 功能验证输入的有效性(远程计算机状态)。
当 WMIC 在 Telnet、终端服务或相似会话中使用时,所有命令都将在发布该命令的用户环境中执行。
WMIC 允许对别名和 XSL 进行扩展。安全性是通过 NTFS 解决的,该文件系统对访问 WMIC 的文件的操作实施仅限管理员的凭据要求。
除方法参数以外,WMIC 还允许只通过 /NODE 开关进行数据输入。可以使用 @FileList 选项作为一个文本文件提供计算机节点的列表。文件以及其位置应由管理员进行保护,并且输入文件最好应从 WBEM 目录中读取。
用户权限
不需要特殊的用户权限即可运行 WMIC。含蓄地说,为了能够使用 WMIC,用户需要有对 WMIC 名称空间和两个注册表项(HKLM/Software/Microsoft/WBEM 和 HKLM/Software/Microsoft/WBEM/WMIC)的完全写入访问权。
身份验证和授权
当这些资源被打开时,系统将提供身份验证和授权。它们存储在安全的位置,并使用随机访问控制列表 (DACL) 验证客户端是否具有对它们进行访问的权限。它们完全依赖于分布式组件对象模型 (DCOM) 安全性以及 Windows 管理 (WINMGMT) 进行远程访问,提供所需要的用户名、密码和所请求的级别。可以使用 /AUTHLEVEL 开关保护 WMIC 网络通信的安全。在 Windows Server 2003 家族操作系统中,默认级别设置为 PKTPRIVACY,它提供数据包隐私性加密级别。可以使用 /AUTHLEVEL 开关修改身份验证级别。
示例:
WMIC /AUTHLEVEL:Pktprivacy /NODE:”testcomputer.microsoft.com” BIOS
配置数据
配置信息存储在注册表和 WMI 储备库中。注册表配置保存了有关架构的采用托管对象格式 (MOF) 编译的状态的时间戳和有效性。在 WMIC 的每一个会话开始时,将对此信息进行评估,当架构无效或已被一个用户更新时,WMIC 将更新 WMI 储备库。
杂项
WMIC 是一个功能强大的命令行工具,通过该工具,您可以很快地执行您有权限执行的任何任务。如果您不熟悉 WMI 环境,可以使用 /INTERACTIVE 开关为删除操作设置一个警告。例如:
WMI /INTERACTIVE:ON

下列命令在任何时候都可以使用:

CLASS  退出 WMIC 的默认别名模式并以 WMI 架构直接访问类。

PATH   退出 WMIC 的默认别名模式并以 WMI 架构直接访问实例。

CONTEXT  显示所有全局开关的当前值。

QUIT   退出 WMIC。

EXIT   退出 WMIC

 
WMIC在批处理的应用实例(转)

第一次使用WMI会自动安装,等待数秒即可正常使用。

wmic 获取硬盘固定分区盘符:
for /f “skip=1″ %%i in (‘wmic logicaldisk where “drivetype=3″ get name’) do @echo %%i
简要说明:
wmic + 欲操作的对象名+ where 从句(这是筛选条件)+ get + 对象的属性
这样的格式已经可以帮助我们获取很多东西了,大家可以具体参考
查看wmic对象: wmic /?
查看wmic对象有何可用属性: wmic 对象名称 get /?  例如 wmic process get /?
查看wmic对象某个属性的值: wmic 对象名称 get 对象某个属性  例如 wmic process get name
ps: 以上例子中的drivetype的值为2 表示可移动磁盘或软盘,值为3表示固定磁盘,值为5表示光驱。
wmic 获取进程名称、可执行路径、删除、创建指定进程
:
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 process get /? 查看所有可用的属性

wmic 操作远程计算机上的程序

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

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

重启远程计算机 (2003系统)
wmic /node:192.168.1.10/user:administrator /password:123456 process call create “shutdown.exe -r -f -m”

wmic 操作计算机名称和用户帐户
更改计算机名称
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<>C://WINDOWS//windows//explorer.exe’” delete

wmic 获取物理内存http://qlj.sh.cn/system/20090430/wmic-command/
wmic memlogical get TotalPhysicalMemory|find /i /v “t”

wmic 获取文件的创建、访问、修改时间 (tvzml纠正)
@echo off
for /f “skip=1 tokens=1,3,5 delims=. ” %%a in (‘wmic datafile where name^=”C://WINDOWS//NOTEPAD.EXE” get CreationDate^,LastAccessed^,LastModified’) do set a=%%a & set b=%%b & set c=%%c
echo 文件名称:  %WINDIR%/NOTEPAD.EXE
echo 创建时间:  %a:~0,4%年%a:~4,2%月%a:~6,2%日, %a:~8,2%:%a:~10,2%:%a:~12,2%
echo 修改时间:  %c:~0,4%年%c:~4,2%月%c:~6,2%日, %c:~8,2%:%c:~10,2%:%c:~12,2%
echo 访问时间:  %b:~0,4%年%b:~4,2%月%b:~6,2%日, %b:~8,2%:%b:~10,2%:%b:~12,2%
pause

wmic 全盘搜索某文件并获取该文件所在目录
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 获取屏幕分辨率
wmic DESKTOPMONITOR where Status=’ok’ get ScreenHeight,ScreenWidth

更改当前页面文件初始大小和最大值,重启计算机后生效
wmic PageFileSet set InitialSize=”512″,MaximumSize=”512″

设置虚拟内存到E盘,并删除C盘下的页面文件,重启计算机后生效
wmic PageFileSet create name=”E://pagefile.sys”,InitialSize=”1024″,MaximumSize=”1024″
wmic PageFileSet where “name=’C://pagefile.sys’” delete

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

你可能感兴趣的:(系统程序员成长计划-李先静)