Error DataBase-One Place all Solutions Forums Blog Glossary    Contact Us
Search  
   
Browse by Category
Error DataBase-One Place all Solutions .: Operating Systems .: Windows Operating Systems .: Windows Scripts and Batch Files .: VB Script to Block The Installation of XP Service Pack 2 - Requires Local Admin Rights

VB Script to Block The Installation of XP Service Pack 2 - Requires Local Admin Rights

 

Description: Blocks the installation of XP Service Pack 2 either by SUS or Windows Update by setting a registry value

' Copyright (c) Microsoft Corporation 2004
' File: BlockXPSP2.vbs
' Contents: Remotely blocks or unblocks the delivery of
' Windows XP SP2 from Windows Update web site or via Automatic
' Updates.
' History: 8/20/2004 Peter Costantini Created
' Version: 1.0

On Error Resume Next

' Define constants and global variables.
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "." ' Can be changed to name of remote computer.
strKeyPath = "Software\Policies\Microsoft\Windows\WindowsUpdate"
strEntryName = "DoNotAllowXPSP2"
dwValue = 1

' Handle command-line arguments.
Set colArgs = WScript.Arguments
If colArgs.Count = 0 Then
ShowUsage
Else
If colArgs.Count = 2 Then
strComputer = colArgs(1)
End If
' Connect with WMI service and StdRegProv class.
Set objReg = GetObject _
("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
If Err = 0 Then
If (LCase(colArgs(0)) = "/b") Or _
(LCase(colArgs(0)) = "-b" ) Then
AddBlock
ElseIf (LCase(colArgs(0)) = "/u") Or _
(LCase(colArgs(0)) = "-u") Then
RemoveBlock
Else
ShowUsage
End If
Else
WScript.Echo "Unable to connect to WMI service on " _
& strComputer & "."
End If
Err.Clear
End If

'*************************************************************

Sub AddBlock

'Check whether WindowsUpdate subkey exists.
strParentPath = "SOFTWARE\Policies\Microsoft\Windows"
strTargetSubKey = "WindowsUpdate"
intCount = 0
intReturn1 = objReg.EnumKey(HKEY_LOCAL_MACHINE, _
strParentPath, arrSubKeys)
If intReturn1 = 0 Then
For Each strSubKey In arrSubKeys
If strSubKey = strTargetSubKey Then
intCount = 1
End If
Next
If intCount = 1 Then
SetValue
Else
WScript.Echo "Unable to find registry subkey " & _
strTargetSubKey & ". Creating ..."
intReturn2 = objReg.CreateKey(HKEY_LOCAL_MACHINE, _
strKeyPath)
If intReturn2 = 0 Then
SetValue
Else
WScript.Echo "ERROR: Unable to create registry " & _
"subkey " & strTargetSubKey & "."
End If
End If
Else
WScript.Echo "ERROR: Unable to find registry path " & _
strParentPath & "."
End If

End Sub

'*************************************************************

Sub SetValue

intReturn = objReg.SetDWORDValue(HKEY_LOCAL_MACHINE, _
strKeyPath, strEntryName, dwValue)
'If intReturn = 0 Then
' WScript.Echo "Added registry entry to block Windows XP " & _
' "SP2 deployment via Windows Update or Automatic Update."
'Else
' WScript.Echo "ERROR: Unable to add registry entry to " & _
' "block Windows XP SP2 deployment via Windows Update " & _
' "or Automatic Update."
'End If

End Sub

'*************************************************************

Sub RemoveBlock

intReturn = objReg.DeleteValue(HKEY_LOCAL_MACHINE, _
strKeyPath, strEntryName)
'If intReturn = 0 Then
' WScript.Echo "Deleted registry entry " & strEntryName & _
' ". Unblocked Windows XP SP2 deployment via Windows " & _
' "Update or Automatic Update."
'Else
' WScript.Echo "Unable to delete registry entry " & _
' strEntryName & ". Windows XP SP2 deployment via " & _
' "Windows Update or Automatic Update is not blocked."
'End If

End Sub

'*************************************************************

Sub ShowUsage

WScript.Echo "Usage:" & VbCrLf & _
" BlockXPSP2.vbs { /b | /u | /? } [hostname]" & VbCrLf & _
" /b = Block (deny) Windows XP Service Pack 2 " & _
"deployment" & VbCrLf & _
" /u = Unblock (allow) Windows XP Service Pack 2 " & _
"deployment" & VbCrLf & _
" /? = Show usage" & VbCrLf & _
" hostname = Optional. Name of remote computer. " & _
"Default is local computer" & VbCrLf & _
"Example:" & VbCrLf & _
" BlockXPSP2.vbs /b client1"

End Sub


How helpful was this article to you?

Related Articles

article VB Script to Add Domain User to Local Administrators - Requires Local Admin Rights
  Description: Takes a domain user...

(No rating)  3-24-2008    Views: 185   
article Add VBScript to New File Context Menu - Requires Local Admin Rights
  filetype = ".vbs" '...

(No rating)  3-24-2008    Views: 148   
article VB Script to Find Service Pack Version
strComputer = "."Set...

(No rating)  3-24-2008    Views: 172   

User Comments

Add Comment
No comments have been posted.