I used a simple startup script to remove the built-in Windows XP games altogether. Worked pretty well for us. See the attached file (change extension to .vbs) if interested. Regards, Jamie Nelson -----Original Message----- From: gptalk-bounce@xxxxxxxxxxxxx [mailto:gptalk-bounce@xxxxxxxxxxxxx] On Behalf Of Darren Mar-Elia Sent: Friday, September 28, 2007 11:05 AM To: gptalk@xxxxxxxxxxxxx Subject: [gptalk] Re: Gaming Restrictions Tom- That's probably going to slow them down. The intrepid user will get around these easily but that's a "Layer 8" issue. You might also consider using Software Restriction Policy for those apps rather than the "Don't run specified Windows applications" policy. It's a little more bomb-proof and if you create hash rules for those exes, renaming won't help them-they'll still not run. Darren From: gptalk-bounce@xxxxxxxxxxxxx [mailto:gptalk-bounce@xxxxxxxxxxxxx] On Behalf Of Tom Clover Sent: Friday, September 28, 2007 9:03 AM To: gptalk@xxxxxxxxxxxxx Subject: [gptalk] Gaming Restrictions I've been asked to restrict gaming at work. Here are the changes that I'm going to start with: Keys: \User Configuration\Administrative Templates\Windows Components\Start Menu and Taskbar\Remove Drag-and-drop context menus on the Start Menu \User Configuration\Administrative Templates\System\Restrict these programs from being launched from help \User Configuration\Administrative Templates\System\Don't run specified Windows applications \User Configuration\Administrative Templates\System\Prevent access to the command prompt \User Configuration\Start Menu and Taskbar\Remove Run from the Start Menu Restricted Program List: winmine.exe spider.exe sol.exe freecell.exe mshearts.exe bckgzm.exe chkrzm.exe hrtzzm.exe rvsezm.exe shvlzm.exe pinball.exe This should only leave the opening of browsing the hard disk drive and renaming sol.exe to something else. I figure if they're that desperate to game, their going to get caught anyway. Have I missed anything that you can think of? Thanks, Tom Clover Desktop Support Specialist
'/////////////////////////////////////////////////////////////// 'Name: RemoveWinXPGames.vbs 'Author: Jamie Nelson 'Version: 1.1 'Purpose: Remove default games on Windows XP systems. '-----------Date--------Version-----ChangeLog------------------- 'History: 1.0 Initial code developed. '13 Jun 06 1.1 Modified conditional entry condition to detect removeGames.txt '/////////////////////////////////////////////////////////////// 'Option Explicit On Error Resume Next '=============================================================== 'Declare variables, instantiate common script objects '=============================================================== If IsServer() Or GetOsVersionNumber <> 5.1 Then WScript.Quit Dim wsh : Set wsh = CreateObject("WScript.Shell") Dim fso : Set fso = CreateObject("Scripting.FileSystemObject") Dim strSystemRoot : strSystemRoot = wsh.ExpandEnvironmentStrings("%SYSTEMROOT%") Dim strGamesFolder : strGamesFolder = wsh.SpecialFolders("AllUsersPrograms") & "\Games" '=============================================================== 'Begin Execution of Script '=============================================================== 'Check for removeGame.txt file - ONLY run if NOT found If NOT fso.FileExists(strSystemRoot & "\inf\removeGames.txt") Then 'Create file for uninstalling games. Dim objFile : Set objFile = fso.CreateTextFile(strSystemRoot & "\inf\removeGames.txt", True) With objFile .WriteLine("[Components]") .WriteLine("freecell=off") .WriteLine("hearts=off") .WriteLine("minesweeper=off") .WriteLine("msnexplr=off") .WriteLine("pinball=off") .WriteLine("solitaire=off") .WriteLine("spider=off") .WriteLine("zonegames=off") .Close End With Set objFile = Nothing wsh.Run "sysocmgr.exe /i:" & strSystemRoot & "\inf\sysoc.inf /u:""" & strSystemRoot & "\inf\removeGames.txt"" /q", 1, True fso.DeleteFolder strGamesFolder, True End If '=============================================================== 'Clear variables, terminate script '=============================================================== Set wsh = Nothing Set fso = Nothing WScript.Quit '=============================================================== 'Declare procedures/functions/classes '=============================================================== '-------------------- Function GetOsVersionNumber() '-------------------- 'Determines OS by reading registry value & comparing to known values 'OS version number returned as number of type double: '---------- 'Windows 95: 1 'Windows 98: 2 'Windows ME: 3 'Windows NT4: 4 'Windows 2K: 5 'Windows XP: 5.1 'Windows 2K3: 5.2 'Windows >2K3: >5.2 '---------- 'Note: Decimal point returned is based on the Locale setting 'of the computer, so it might be returned as 5,1 as well. Dim wshTemp : Set wshTemp = CreateObject("WScript.Shell") Dim strOSType, strOSVersion On Error Resume Next strOSType = wshTemp.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions\ProductType") If Err.Number <> 0 Then 'Could not find this key, OS must be Win9x/Me Err.Clear strOSType = wshTemp.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\VersionNumber") Select Case strOSType Case "4.00.950" : strOSVersion = 1 'Windows 95A Case "4.00.1111" : strOSVersion = 1 'Windows 95B/C Case "4.03.1214" : strOSVersion = 1 'Windows 95B Case "4.10.1998" : strOSVersion = 2 'Windows 98 Case "4.10.2222" : strOSVersion = 2 'Windows 98SE Case "4.90.3000" : strOSVersion = 3 'Windows Me Case Else : strOSVersion = 0 'Unknown End Select Else 'Operating System is NT based strOSVersion = wshTemp.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion") If Err.Number <> 0 Then 'Could not determine NT version GetOsVersionNumber = 0 Exit Function End If End If Set wshTemp = Nothing 'CDbl might error so we should set locale to "en-us" to be indifferent to 'country settings. SetLocale "en-us" GetOsVersionNumber = CDbl(strOSVersion) End Function '-------------------- Function IsServer() '-------------------- 'Determines platform by reading registry value & comparing to known values 'http://support.microsoft.com/default.aspx?scid=kb;EN-US;152078 'Returns True if server platform, False if not On Error Resume Next Dim wshTemp, strOSType Set wshTemp = CreateObject("WScript.Shell") strOSType = wshTemp.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions\ProductType") If Err.Number <> 0 Then 'Could not find this key, OS must be Win9x/Me Err.Clear IsServer = False Exit Function End If Set wshTemp = Nothing Select Case strOSType Case "LanmanNT" : IsServer = True Case "ServerNT" : IsServer = True Case "WinNT" : IsServer = False End Select End Function