您好,NM。坦白地讲,我们不知道。远程锁定计算机可能有点棘手;有关这方面的详细信息,请参阅一年前我们的一个专栏。此外,还面临确定计算机是否处于空闲状态的问题。由于无法监控击键或鼠标点击操作,您最多只能检查 CPU 的使用情况,并对计算机是否处于空闲状态作出猜测。这样也许可行,但您必须持续监控计算机,并要频繁地确定计算机是否处于空闲状态。必须有一种更好的方法。
的确有这样的方法。要知道,计算机已经能够自我监控并在 5 分钟不活动后将自身锁定:您所要做的就是为屏幕保护程序设置密码保护,并将屏幕保护程序超时值设置为 5 分钟。如果计算机空闲时间持续 5 分钟,将激活屏幕保护程序,并将计算机锁定。这听起来正像是您的审计员所建议的。
最大的好处是,您可以使用脚本直接修改注册表,以在所有计算机上配置相应的屏幕保护程序设置。例如,下面是一个为屏幕保护程序启用密码保护的脚本:
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
strKeyPath = "Control Panel/Desktop"
ValueName = "ScreenSaverIsSecure"
strValue = "1"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
该脚本先是定义一个名为 HKEY_CURRENT_USER 的常量,并将其值设置为 &H80000001,这样脚本便会知道我们要处理的注册表配置单元。然后,我们使用以下这行代码连接到 WMI 服务和标准注册表提供程序类 (StdRegProv):
Set objReg = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
接下来,我们为三个不同的变量赋值:
| • |
strKeyPath。HKEY_CURRENT_USER 内需要更改的注册表项的路径。对于屏幕保护程序,该路径恰好是 Control Panel/Desktop。 |
| • |
ValueName。要更改的注册表值。为启用密码保护,我们需要更改 ScreenSaverIsSecure 的值。 |
| • |
strValue。要赋予 ScreenSaverIsSecure 的新值。将 ScreenSaverIsSecure 设置为 1 会启用密码保护,将其设置为 0 则禁用密码保护。 |
接下来我们只需调用 SetStringValue 方法,并将所有定义的参数传递给它:
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
这样就可以了。下次用户登录时,屏幕保护程序将受密码保护。
|
注意:是的,尽管注册表立即发生了更改,但所做更改在用户下次登录时才会生效。因此,您可能希望在登录脚本中包含此代码。在这种情况下,将在用户登录之前配置注册表。也可以进行更改,然后强制性地注销用户。有关从计算机注销用户的信息,请查阅 Microsoft Windows 2000 脚本指南。 |
当然,您可能还希望在注销用户之前将屏幕保护程序的超时值配置为 5 分钟。下面的脚本执行的就是这一操作:
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts://" & strComputer & "/root/default:StdRegProv")
strKeyPath = "Control Panel/Desktop"
ValueName = "ScreenSaveTimeout"
strValue = "300"
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, ValueName, strValue
您说对了:它与我们为您展示的第一个脚本几乎完全相同。实际上,只有两个不同之处:
| • |
我们更改的注册表值是 ScreenSaveTimeout(仍位于 Control Panel/Desktop 项中)。 |
| • |
赋予 ScreenSaveTimeout 的新值为 300。屏幕保护程序超时值以秒为单位存储:300 秒等于 5 分钟(300/60 = 5)。如果审计员建议的超时值为三分钟,请将 ScreenSaveTimeout 设置为 180(60 秒乘以 3)。 |
至此您已实现了您的目的。您的计算机将在五分钟不活动后被锁定,而您不必编写任何复杂的监控/远程锁定脚本。
既然您问到了,是的,脚本专家们会怀着非常感激的心情告诉您:他们没能在计算机 5 分钟(甚至是 5 小时)不活动后将其锁定。