Deployment Script for the Repair Clipboard Chain utility

by Jeremy Saunders on November 29, 2009

Here is a deployment script for the Citrix Repair Clipboard Chain (RepairCBDChain.exe) utility as per Citrix KB article CTX106226.

This utility does not have a nice default icon, so I have used one that looks like this:

I have zipped up the actual ico file here: clipboard

Enjoy!


‘ Installation script for the Repair Clipboard Chain utility as per Citrix KB article CTX106226

‘ Notes:
‘ 1) Even though this a a 32-bit application…
‘ i) It will still run 100% correctly in a 64-bit environment.
‘ ii) In a 64-bit environment we deploy it to the “%ProgramFiles%”
‘ location and not the “%ProgramFiles(x86)%” location. This provides
‘ a single location for the published application regardless of the
‘ system architecture type.

‘ Revision 1.0
‘ Written by Jeremy@jhouseconsulting.com on 10th November 2009.

Option Explicit

Dim objfso, objFolder, wshShell, oShellLink, strAUPrograms, strAUDesktop
Dim strProgramFiles, strScriptPath, blnStartMenuShortcut, blnDesktopShortcut
Dim strStartMenuSubFolder, strStartMenuFolder

blnStartMenuShortcut = True
blnDesktopShortcut = False
strStartMenuSubFolder = “User Self-Help Tools”

set WshShell = WScript.CreateObject(“WScript.Shell”)
set objfso = CreateObject(“Scripting.FileSystemObject”)

strProgramFiles = WshShell.ExpandEnvironmentStrings(“%ProgramFiles%”)
strAUPrograms = WshShell.SpecialFolders(“AllUsersPrograms”)
strAUDesktop = WshShell.SpecialFolders(“AllUsersDesktop”)
strScriptPath = Left(WScript.ScriptFullName, InstrRev(WScript.ScriptFullName, “\”))

If objFSO.FileExists(strScriptPath & “RepairCBDChain.exe”) AND objFSO.FileExists(strScriptPath & “clipboard.ico”) Then
If NOT objFSO.FolderExists(strProgramFiles & “\Citrix”) Then
Set objFolder = objFSO.CreateFolder(strProgramFiles & “\Citrix”)
End If
objFSO.CopyFile strScriptPath & “RepairCBDChain.exe”, strProgramFiles & “\Citrix\”, True
objFSO.CopyFile strScriptPath & “clipboard.ico”, strProgramFiles & “\Citrix\”, True
If blnStartMenuShortcut Then
If strStartMenuSubFolder <> “” Then
strStartMenuFolder = strAUPrograms & “\” & strStartMenuSubFolder
If NOT objFSO.FolderExists(strAUPrograms & “\” & strStartMenuSubFolder) Then
Set objFolder = objFSO.CreateFolder(strAUPrograms & “\” & strStartMenuSubFolder)
End If
Else
strStartMenuFolder = strAUPrograms
End If
Set oShellLink = WshShell.CreateShortcut(strStartMenuFolder & “\Repair Clipboard Chain.lnk”)
oShellLink.TargetPath = chr(34) & strProgramFiles & “\Citrix\RepairCBDChain.exe” & chr(34)
oShellLink.WorkingDirectory= strProgramFiles & “\Citrix”
oShellLink.IconLocation = strProgramFiles & “\Citrix\clipboard.ico” & “,0”
oShellLink.Save
End If
If blnDesktopShortcut Then
Set oShellLink = WshShell.CreateShortcut(strAUDesktop & “\Repair Clipboard Chain.lnk”)
oShellLink.TargetPath = chr(34) & strProgramFiles & “\Citrix\RepairCBDChain.exe” & chr(34)
oShellLink.WorkingDirectory= strProgramFiles & “\Citrix”
oShellLink.IconLocation = strProgramFiles & “\Citrix\clipboard.ico” & “,0”
oShellLink.Save
End If
End If

Set WshShell = Nothing
Set objfso = Nothing
Set objFolder = Nothing
Set oShellLink = Nothing

WScript.Quit(0)

Jeremy Saunders

Jeremy Saunders

Technical Architect | DevOps Evangelist | Software Developer | Microsoft, NVIDIA, Citrix and Desktop Virtualisation (VDI) Specialist/Expert | Rapper | Improvisor | Comedian | Property Investor | Kayaking enthusiast at J House Consulting
Jeremy Saunders is the Problem Terminator. He is a highly respected IT Professional with over 35 years’ experience in the industry. Using his exceptional design and problem solving skills with precise methodologies applied at both technical and business levels he is always focused on achieving the best business outcomes. He worked as an independent consultant until September 2017, when he took up a full time role at BHP, one of the largest and most innovative global mining companies. With a diverse skill set, high ethical standards, and attention to detail, coupled with a friendly nature and great sense of humour, Jeremy aligns to industry and vendor best practices, which puts him amongst the leaders of his field. He is intensely passionate about solving technology problems for his organisation, their customers and the tech community, to improve the user experience, reliability and operational support. Views and IP shared on this site belong to Jeremy.
Jeremy Saunders
Jeremy Saunders

Previous post:

Next post: