Friday 30 November 2012

ThinApp SDK Login Script


'===========================================================
'<CUSTOMER> Login Script
'===========================================================

'===========================================================
' Set Environment Variables
'===========================================================
Const HKCR = &H80000000 'HKEY_CLASSES_ROOT
Const HKCU = &H80000001 'HKEY_CURRENT_USER
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
Const HKUS = &H80000003 'HKEY_USERS
Const HKCC = &H80000005 'HKEY_CURRENT_CONFIG
Set WSHNetwork = WScript.CreateObject("WScript.Network")
Set WSHShell = WScript.CreateObject("WScript.Shell")
Set objShell = CreateObject("Shell.Application")
Set TAManagement = CreateObject("ThinApp.Management")
Dim ThinAppType, Package, RegKey, CheckReg, DebugMsg


On Error Resume Next

Domain = WSHNetwork.UserDomain
UserName = ""

While UserName = ""
   UserName = WSHNetwork.UserName
   MyGroups = GetGroups(Domain, UserName)
Wend

'===========================================================
'Register ThinApps Based upon Group Membership using the SDK
'===========================================================
'USAGE: RegUnRegApp
'<ADGroup = The AD Group that is entitled to the app>,
'<FileName = "Full name and path of ThinApped exe">,
'<RegKey = "Registry Key created when registered under HKCU">,
'<CheckReg = True or False, where True will check the registry to see if the ThinApp has already been registered>,
'<DebugMsg = True or False, where True will popup message on register or unregister>


'=====================
'Register Adobe Reader
'=====================
ADGroup = "Adobe Reader"
FileName = "\\demo.vmware\data\apps\Adobe Reader 9\Adobe Reader 9.exe"
RegKey = "Software\Thinstall\ThinReg\Adobe Reader 9_28503025"
CheckReg = True
DebugMsg = False
RegUnRegApp ADGroup, FileName, RegKey, CheckReg, DebugMsg

'=====================
'Register Firefox 3
'=====================
ADGroup = "Firefox 3"
FileName = "\\demo.vmware\data\apps\Mozilla Firefox 3\Mozilla Firefox.exe"
RegKey = "Software\Thinstall\ThinReg\Mozilla Firefox 3_80d24cdd"
CheckReg = True
DebugMsg = False
RegUnRegApp ADGroup, FileName, RegKey, CheckReg, DebugMsg

'=====================
'Register Virtual IE 6
'=====================
ADGroup = "VirtIE6"
FileName = "\\demo.vmware\data\apps\VirtIE6\VirtIE6.exe"
RegKey = "Software\Thinstall\ThinReg\VirtIE6_742e9c48"
CheckReg = True
DebugMsg = False
RegUnRegApp ADGroup, FileName, RegKey, CheckReg, DebugMsg

'===========================================================
'Exit Script
'===========================================================
WScript.Quit


'===========================================================
'Subfunctions and Routines
'===========================================================
'===========================================================
'Function: RegUnRegApp - Register or UnRegister a ThinApp
'===========================================================
Function RegUnRegApp(ADGroup, FileName, RegKey, CheckReg, DebugMsg)
   If INGROUP (ADGroup) Then
      If NOT CheckReg Then
         RegisterPackage FileName, DebugMsg
      ElseIf NOT KeyExists(HKCU, RegKey) Then
         RegisterPackage FileName, DebugMsg
      End If
   Else
      If NOT CheckReg Then
         UnRegisterPackage FileName, DebugMsg
      ElseIf KeyExists(HKCU, RegKey) Then
         UnRegisterPackage FileName, DebugMsg
      End If
   End If
End Function

'===========================================================
'Function: RegisterPackage - Register ThinApp
'===========================================================
Function RegisterPackage(FileName, DebugMsg)
   Set Package = TAManagement.OpenPackage(FileName)
   Package.Register 1
   If DebugMsg Then MsgBox Package.InventoryName & " has been registered.", 4160, "ThinApp Registration Check" End If
End Function

'===========================================================
'Function: UnRegisterPackage - UnRegister ThinApp
'===========================================================
Function UnRegisterPackage(FileName, DebugMsg)
   Set Package = TAManagement.OpenPackage(FileName)
   Package.UnRegister
   If DebugMsg Then MsgBox Package.InventoryName & " has been unregistered.", 4160, "ThinApp Unregistration Check" End If
End Function

'===========================================================
'Function: GetGroups
'===========================================================
Function GetGroups(Domain, UserName)
   Set objUser = GetObject("WinNT://" & Domain & "/" & UserName)
   GetGroups=""
   For Each objGroup In objUser.Groups
      GetGroups=GetGroups & "[" & UCase(objGroup.Name) & "]"
   Next
End Function

'===========================================================
'Function: InGroup
'===========================================================
Function InGroup(strGroup)
   InGroup=False
   If InStr(MyGroups,"[" & UCase(strGroup) & "]") Then
      InGroup=True
   End If
End Function


'===========================================================
'Function KeyExists - This method uses WMI to check if a registry key exists
'===========================================================
Function KeyExists(Key, KeyPath)
   Dim oReg: Set oReg = GetObject("winmgmts:!root/default:StdRegProv")
   If oReg.EnumKey(Key, KeyPath, arrSubKeys) = 0 Then
      KeyExists = True
   Else
      KeyExists = False
   End If
End Function


No comments:

Post a Comment