查找感兴趣的WMI对象
Finding Interesting WMI Classes
http://app.en25.com/e/es.aspx?s=1403&e=6567&elq=1b4fb04527034828893d32831da6ff24
WMI非常庞大,如果要进行操作就必须要提供一个正确的WMI类名,不过有一种比较方便的查询方式,就是用Get-WmiObject并且加-list参数,这个参数可以是模糊查询,比如:
PS> Get-WmiObject -list Win32_*video*
这个命令会列出跟video相关的WMI对象。同时也可以用以下命令查看详细信息。
Get-WmiObject Win32_VideoController
获取WMI对象的帮助信息
Getting Help for WMI Classes
http://app.en25.com/e/es.aspx?s=1403&e=6635&elq=c68b79ad9419488c951e03b177005c54
$class = [wmiclass]'Win32_VideoController'
$class.psbase.Options.UseAmendedQualifiers = $true
($class.psbase.qualifiers["description"]).Value
先定义一个变量,类型为一个Win32_VideoController的WMI对象,然后查看其description信息。
中间的一句是必须加上的,否则无法查看description信息。
通过WMI调用ChkDsk命令
Calling ChkDsk via WMI
http://app.en25.com/e/es.aspx?s=1403&e=6711&elq=3fd74a46b65a4f2398eae4ab76d4d559
([wmi]"Win32_LogicalDisk='D:'").Chkdsk($true, $false, $false, $false, $false, $true).ReturnValue
需要注意的是一定要有相关的权限,否则会提示”Access Denied”。
如果需要获取这个命令都需要提供什么参数,使用下面的命令:
([wmi]"Win32_LogicalDisk='D:'").Chkdsk
重置DHCP(?)
Renewing all DHCP Leases
http://app.en25.com/e/es.aspx?s=1403&e=6803&elq=5a3e0d0cf1aa436ca0376a7f65a711e8
([wmiclass]"Win32_NetworkAdapterConfiguration").RenewDHCPLeaseAll().ReturnValue
WMI对象也是带静态方法的,所以可以在不实例化的情况下直接调用。
获取WMI方法的帮助信息
Getting Help on WMI Methods
http://app.en25.com/e/es.aspx?s=1403&e=6894&elq=3b7042ea11fe4e49b58f7e812caffb24
介绍获取某WMI类下指定方法的帮助信息:
$class = [wmiclass]"Win32_NetworkAdapterConfiguration"
$class.psbase.Options.UseAmendedQualifiers = $true
$class.psbase.methods | % { $rv = 1 | Select-Object Name, Help; $rv.Name = $_.Name; $rv.help = ($_.Qualifiers["Description"]).Value; $rv } | format-table -AutoSize –Wrap
以上来自powershell.com
2010年七月份26日到30日的PowerTip of the Day