Option Explicit

'WDP_Control.CurrentStatus
const WDP_ACTIVE = 0
const WDP_PASSIVE = 1
 
'WDP_Control.CurrentMode
const WDP_MODE_DISCARD = 0 '在重新启动时删除所有更改
const WDP_MODE_PERSIST = 1
const WDP_MODE_COMMIT = 2 '永久保留所有更改
 
Dim objSWbemLocator
Set objSWbemLocator=CreateObject("WbemScripting.SWbemLocator")
 
Dim objSWbemServices
Set objSWbemServices=objSWbemLocator.ConnectServer(".","root\WMI")
 
Dim objSWbemObjectSet
Set objSWbemObjectSet=objSWbemServices.InstancesOf("WDP_CONTROL")
 
'读取CurrentStatus 属性
Dim CurrentStatus
Dim objSWbemObjectWDP
For Each objSWbemObjectWDP In objSWbemObjectSet
    CurrentStatus=objSWbemObjectWDP.CurrentStatus
Next
 
'只有 CurrentStatus 属性是 WDP_ACTIVE,才能应用 CurrentMode 属性。
If WDP_ACTIVE=CurrentStatus Then
    For Each objSWbemObjectWDP In objSWbemObjectSet
        objSWbemObjectWDP.CurrentMode=WDP_MODE_COMMIT
        'SWbemObjectPut_方法将属性更新到WMI中去
        objSWbemObjectWDP.Put_
    Next
    MsgBox "成功设置为永久保留所有更改状态。",48,"提示"
Else
    MsgBox "没有打开磁盘保护功能!"
End If
 
'备注:Scripting API Objects中的每个类都包含缩写WbemWbem是一项规范企业网络中受管资源的描述与使用的业界倡议,是Web-Based Enterprise Management的简写,实际上WBEM就是针对于计算机设备的一种管理标准,WMI算是微软的WindowsWbem方面的一个具体实现。
 

 


本文链接地址: 通过WMI脚本来操作SteadyState,将磁盘保护功能设置为“永久保留所有更改”
https://blog.qingfengju.com/index.asp?id=61

上一篇: 通过一个具体实例来理解WMI脚本编程-读取BIOS信息
下一篇: 基于C++的WMI应用编程初探-读取BIOS信息

分类:Win32/C++ 查看次数:5924 发布时间:2009/6/1 12:32:21