博客日历
2024年11月 | ||||||
一 | 二 | 三 | 四 | 五 | 六 | 七 |
28 | 29 | 30 | 31 | 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 1 |
存档
2024年03月 04月 05月 2021年
01月 02月 11月 12月 2020年
02月 03月 04月 05月 06月 07月
09月 2018年
09月 2017年
01月 02月 07月 2016年
01月 04月 07月 08月 11月 12月
2015年
01月 02月 03月 05月 09月 10月
11月 2014年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2013年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2012年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2011年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2010年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2009年
03月 04月 05月 06月 07月 08月
09月 10月 11月 12月
WMI脚本编程初体验
1.简介
WMI是Windows 的管理支持技术,WMI最初于 1998 年作为一个附加组件与 Windows NT 4.0 Service Pack 4 一起发行,是内置在 Windows 2000、Windows XP 和 Windows Server 2003 系列操作系统中核心的管理支持技术。
WMI 是一种规范和基础结构,通过它可以访问、配置、管理和监视所有的 — 几乎所有的 Windows 资源。
2.WMI脚本编程初体验
先看一个例子:使用 WMI 和 VBScript 检索总物理内存
'//“.”代表本机
const DEF_strComputer = "."
3.WMI开发用到的工具下载
WMI Administrative Tools(WMI CIM Studio,WMI Object Browser)下载:
http://www.microsoft.com/downloads/details.aspx?familyid=6430F853-1120-48DB-8CC5-F2ABDC3ED314&displaylang=en
4.参考资料
WMI 脚本入门:第一部分http://msdn.microsoft.com/zh-cn/library/ms974579.aspx
WMI 脚本入门:第二部分http://msdn.microsoft.com/zh-cn/library/ms974592.aspx
WMI 脚本入门:第三部分http://msdn.microsoft.com/zh-cn/library/ms974547.aspx
使用WMI:http://msdn.microsoft.com/en-us/library/aa393964.aspx
Scripting API for WMI:http://msdn.microsoft.com/en-us/library/aa393258(VS.85).aspx
分类:脚本编程 查看次数:12144 发布时间:2009/5/31 15:01:09
用Windows SteadyState来保护Windows系统安全,实现磁盘保护
1.Windows SteadyState简介
Windows SteadyState可防止计算机的设置被更改,可防止某些用户自行安装不需要的软件,可以实现Windows 磁盘保护功能,还提供了磁盘保护功能的API编程接口,完全可以媲美影子系统(PowerShadow)。
2.下载安装Windows SteadyState
在安装 Windows SteadyState 之前,需要验证计算机运行的是否为正版 Microsoft Windows。
3.SteadyState的磁盘保护功能
我们这里重点关注SteadyState的磁盘保护功能。
3.1 SteadyState的磁盘保护功能原理
第一次安装 Windows SteadyState 时,Windows 磁盘保护默认为关闭状态,Windows 磁盘保护打开后,会创建一个缓存文件,用于保存对操作系统和程序文件的所有更改。创建的
缓存文件将在系统驱动器上预留大量的空间,安装并打开 Windows 磁盘保护之后,再关闭 Windows 磁盘保护会删除安装过程中创建的缓存文件。
在安装并打开 Windows 磁盘保护之前,应先对硬盘进行碎片整理,在有碎片的硬盘上安装并打开 Windows 磁盘保护会导致创建 Windows 磁盘保护缓存失败。
3.2 使用SteadyState的磁盘保护功能
使用SteadyState的磁盘保护功能需要使用管理员登陆计算机。
a.执行磁盘碎片整理;
b.通过SteadyState打开磁盘保护功能,注意打开后默认状态是“重新启动时删除所有更改”;
c.要保存当前系统状态,请选择“永久保留所有更改”;
d.要实现磁盘保护、系统还原功能,请选择“重新启动时删除所有更改”。
一句话总结:
选择“永久保留所有更改”后,对系统进行各种设置,之后重新启动计算机,再设置为“重新启动时删除所有更改”并重启即可。
3.3 使用 Windows 磁盘保护 API
Windows SteadyState 应用程序编程接口 (API) 由 Windows Management Instrumentation (WMI) 接口组成。
安装好SteadyState之后,在WMI的命名空间root\WMI下,会有一个叫做WDP_CONTROL的WMI类,该类具有五个属性:
EnableWDPAndReboot、CurrentStatus、CurrentMode、DisableWDPAndReboot 和 PersistDateTime。
a.CurrentMode
表 1:Windows 磁盘保护模式以及对应的磁盘保护级别
Windows 磁盘保护模式 |
磁盘保护级别 |
---|---|
WDP_MODE_DISCARD (0) | 在重新启动时删除所有更改 |
WDP_MODE_PERSIST (1) | 临时保留更改 |
WDP_MODE_COMMIT (2) | 永久保留所有更改 |
b.CurrentStatus
- WDP_ACTIVE (0)
- WDP_PASSIVE (1)
如果 Windows 磁盘保护主动缓存更改,则处于主动状态 (WDP_ACTIVE)。在 Windows 磁盘保护打开时,如果可以直接将更改保存到硬盘中,而不必使用缓存文件作为临时存储,Windows 磁盘保护则处于被动状态 (WDP_PASSIVE)。
请注意,用户无法通过 Windows SteadyState 用户界面选择或写入被动状态 (WDP_PASSIVE),该状态供 Windows SteadyState 应用程序内部使用。通常,此属性的值是 WDP_ACTIVE。
c.DisableWDPAndReboot
DisableWDPAndReboot 可以禁用并卸载 Windows 磁盘保护。此脚本执行的功能与在 Windows SteadyState 用户界面中关闭 Windows 磁盘保护相同。该过程要求进行三次重新启动来完成下列任务:
- 清除缓存。
- 提交对计算机所做的更改(删除 Windows 磁盘保护驱动程序)。
- 完成 Windows 磁盘保护的卸载。
d.EnableWDPAndReboot
也可以执行命令:sctui /EnableWDPAndReboot
e.PersistDateTime
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
' WDP_Control.PersistDateTime 属性要求使用 FILETIME 类型。
' 通过可读字符串创建 FILETIME 最容易的方式是使用
' WBemScripting.SWbemDateTime 对象。
set dateTime = Createobject ("WBemScripting.SWbemDateTime")
' 将 datetime 设置为 2020 年 5 月 8 日上午 8:00
dateTime.SetVarDate #5/8/2020 08:00:00 AM#
' 获取 WDP_Control WMI 类的实例
set objWbemServices = GetObject ("winmgmts:\\.\root\wmi")
set setWdpObjects = objWbemServices.ExecQuery ("Select * FROM WDP_Control")
for each objWdp in setWdpObjects
objWdp.CurrentMode = WDP_MODE_PERSIST
objWdp.PersistDateTime = dateTime.GetFileTime
objWdp.Put_
next
4.其他SteadyState相关文章
Windows 磁盘保护功能在 Windows SteadyState API 的说明:
http://support.microsoft.com/kb/938335/zh-cn
5.小结
SteadyState在某种程度上比EWF和GHOST都要好用,只是要占用C盘比较多的空间。
分类:Win32/C++ 查看次数:9599 发布时间:2009/5/31 12:49:38