# This code enables screen saver locking for all users that log on
# a system even if they've configured other screen saver settings previously.
# ------ SCRIPT CONFIGURATION ------
use Win32::OLE;
$strComputer = '.';
$strScreenSaveActive = '1';
$strScreenSaverIsSecure = '1';
$strScreenSaveTimeout = '300';
$strScrnSave = 'scrnsave.scr';
# ------ END CONFIGURATION ---------
use constant HKEY_USERS => 0x80000003;
$objReg = Win32::OLE->GetObject('winmgmts:\\\\' . $strComputer . '\\root\\default:StdRegProv');
$objReg->EnumKey(HKEY_USERS, '', $arrSubKeys);
foreach my $strSubkey (@{$arrSubKeys}) {
print "$strSubkey\n";
$objReg->EnumValues(HKEY_USERS, $strSubkey . '\\Control Panel\\Desktop', $arrValues, $arrTypes);
if (IsArray($arrValues)) {
print " setting screen saver values\n";
$objReg->SetStringValue(HKEY_USERS, $strSubkey . '\\Control Panel\\Desktop', 'ScreenSaveActive', $strScreenSaveActive);
$objReg->SetStringValue(HKEY_USERS, $strSubkey . '\\Control Panel\\Desktop', 'ScreenSaverIsSecure', $strScreenSaverIsSecure);
$objReg->SetStringValue(HKEY_USERS, $strSubkey . '\\Control Panel\\Desktop', 'ScreenSaveTimeOut', $strScreenSaveTimeout);
$objReg->SetStringValue(HKEY_USERS, $strSubkey . '\\Control Panel\\Desktop', 'SCRNSAVE.EXE', $strScrnSave);
}
else {
print " NOT setting screen saver values\n";
}
print "\n";
}
|