利用wmic修改是直接生效的:(e:\tools 是新添加的目录)
wmic ENVIRONMENT where “name=’path’ and username=”” set VariableValue=”%path%e:\tools”
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 获取物理内存
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