NINITE PRO INTEGRATION WITH LABTECH REMOTE MONITORING AND MANAGEMENT VERSION 1.1 PREPARED BY: BRANDON CARL POINTSOLVE TECHNOLOGY, INC.
CONTENTS Introduction... 3 Requirements... 4 Setup... 5 Extra Data Fields... 6 Computers... 6 Locations... 7 Clients... 14 Searches... 15 Title: Ninite Servers... 15 Title: Ninite Workstations... 16 Title: Ninite Laptops... 17 Title: Ninite Onboarding... 18 Scripts... 20 Ninite Update... 20 Ninite Onboarding... 24 Ninite Audit... 33 Ninite Cache Cleanup... 36 Groups... 37 Ninite Onboarding... 37 Ninite Servers... 38 Ninite Workstations... 38 Ninite Laptops... 39 Conclusion... 40 2
INTRODUCTION This document will outline instructions on how to successfully integrate Ninite Pro with LabTech Remote Management Software. Ninite Pro is a third party software management system that can install, update and uninstall over 100 freeware applications from a variety of vendors. This includes the Java Runtime Environment, Adobe Reader and Flash and all major browsers. It can run silently in the background, automatically determine OS architecture (x64 vs. x86) and strip out any additional unwanted downloads, such as toolbars and adware. LabTech's RMM software is a powerful remote administration tool that can automate most IT administration tasks with the use of its extensive scripting capabilities and SQL query based groupings. By following these instructions you will be able to: Fully automate location based, third party install packages as part of the on-boarding process. Complete automated daily updates on installed software. Generate software audit reports that can be uploaded to your server or sent via email to all concerned parties. Caution: These assets and instructions will modify your LabTech software. If they are being installed in a production environment we recommend performing a full backup of LabTech prior to installation. PointSolve Technology, Inc. makes no guarantee that this package will work as described, and is not responsible for damaged caused by making the modifications described in this document, or by adding the included assets to your LabTech database. 3
REQUIREMENTS LabTech Remote Monitoring & Management System by LabTech Software (http://www.labtechsoftware.com) (Note: This process was tested on LabTech 2012 SP1 running on a Windows Server 2008 Enterprise server.) Ninite Pro by Security by Design Inc. (http://ninite.com/pro) (Note: You will need as many licenses as computers you plan to run Ninite on.) Access to create groups, searches, and scripts in LabTech. Warning: The searches and scripts included with this documentation need to be edited after they are imported. They will not work in your system until you replace the group and extradatafield ids with the ones that you create when importing or manually creating the groups/datafields. The Ninite Update script is a modified version of the script posted by Luy Teitelroit from IT Support Guys (http://www.itsupportguys.com). The original script can be downloaded from http://itsluy.posterous.com/patching-made-easyusing-ninite-pro-w-labtech If you are importing directly into your LabTech system, the instruction in italics will give the file names of the items being discussed and lines/fields that need to be edited after importing. 4
SETUP Begin by placing your NiniteOne.exe application in the LabTech Transfer Directory. You can download the NiniteOne.exe application by logging into the Ninite website at https://ninite.com/signin/ with your account credentials. Create a Ninite folder in the default Software directory, so your file path to NiniteOne.exe looks like this: "L:\Transfer\Software\Ninite\NiniteOne.exe". This is the path used in all of the included scripts, so I recommended placing it in that file path so you have one less change to make in the scripts. All of the scripts by default execute Ninite with the following switches: /disableshortcuts /disableautoupdate /nocache All of the command line switches are documented on Ninite s website at http://ninite.com/help/features/switches.html As a fair amount of our managed clients have older machines with small hard drives, it is preferred to not have Ninite cache its downloads. The disableshortcuts switch keeps from cluttering desktops, and the disableautoupdate switch stops the update notification popups from Reader and Java. (Note: Ninite will only disable auto updates when it installs/updates a program. So if you just begin using Ninite, it may be worth setting the /repair switch on the first few runs. This will force reinstallation of the program and disable the program s auto-update feature. The list of programs that Ninite can disable auto-updates for can be found at http://ninite.com/help/features/disableautoupdate.html) 5
EXTRA DATA FIELDS The next step is to create all the Extra Data Fields that are required. In the LabTech control center go to System Dashboard -> Config -> Configurations -> Additional Fields. The sort value of any of these fields is for aesthetic purposes only. Data Screen fields are based on ascending order of the Sort value, so a field with sort 5 will be displayed after a field with sort 1. Also, all of these fields are created with Not Editable unchecked, No Break unchecked and Collapsed unchecked. COMPUTERS Data Fields\Computers Data Fields.sql We will create two fields on the Computers Data Screen under the Exclusions Section. Name: Disable Ninite Updates Data Screen: Computers Section: Exclusions ToolTip: Checking this option will exclude this computer from receiving automated Ninite updates. Name: Ninite Onboarding Complete Data Screen: Computers Section: Exclusions ToolTip: If this box is checked the computer has successfully completed the Ninite onboarding process for its location. 6
LOCATIONS Now create four fields on the Locations Data Screen. It is highly recommended to put these fields in the same section as your Windows Updates selections. At PointSolve a section was created for all of our updating selections under the section "CommonFocus" as this is the name of our managed services product. Since you may put them in any section you prefer, remember to update the scripts to reflect your choice. Data Fields\CF Locations Data Fields.sql Name: Enable Ninite Onboarding Section: CommonFocus ToolTip: This will enable Ninite onboarding for the location. Name: Enable Ninite Updates Servers Section: CommonFocus ToolTip: This will enable Ninite updating for all servers in this location. Name: Enable Ninite Updates Workstations Section: CommonFocus ToolTip: This will enable Ninite updating for all workstations in this location. 7
Name: Enable Ninite Updates Laptops Section: CommonFocus ToolTip: This will enable Ninite updating for all laptops in this location. Now create the data fields for the Ninite Onboarding package. The script below reflects the 28 applications that the majority of our clients have installed. These are all created on their own separate Ninite Onboarding Section. All ToolTip descriptions come from Ninite's application list here: http://ninite.com/applist/pro.html Data Fields\Onboarding Locations Data Fields.sql Name: Chrome ToolTip: Fast Browser by Google Name: Firefox ToolTip: Extensible Browser Name: Safari ToolTip: Alternative Browser by Apple 8
Name: Skype ToolTip: Internet Telephone Name: itunes ToolTip: Music/Media Manager Name: QuickTime ToolTip: Video Player Name: Flash ToolTip: Flash Player for other browsers Name: Flash (IE) ToolTip: Flash Player for Internet Explorer 9
Name: Java 7 ToolTip: Java Runtime Environment (JRE) Name: Java x64 7 ToolTip: 64-bit Java Runtime (JRE) Name:.NET ToolTip: Microsoft.NET 3.5 SP1 Name:.NET 4 ToolTip: Microsoft.NET 4.0 Name:.NET 4.5 ToolTip: Microsoft.NET 4.5 10
Name: Silverlight ToolTip: Microsoft Silverlight Name: Air ToolTip: Adobe Air Name: Shockwave ToolTip: Shockwave Player Name: GIMP ToolTip: Open Source Image Editor Name: Reader ToolTip: Adobe PDF Reader 11 11
Name: CutePDF ToolTip: Print Documents as PDF Files Name: Essentials ToolTip: Great Antivirus by Microsoft Name: Malwarebytes ToolTip: Malware Remover Name: Dropbox ToolTip: Great Online Backup/File Sync Name: Google Earth ToolTip: Online Atlas by Google 12
Name: Classic Start (Windows 8 Only) ToolTip: Classic Shell Win8 Start Menu Name: TeamViewer ToolTip: Remote Access Tool Name: 7-Zip ToolTip: Great Compression App Name: WebEx ToolTip: WebEx Connect Name: Citrix Receiver ToolTip: Citrix Receiver 13
CLIENTS Now add one field on the Clients Data Screen. This is also on our "CommonFocus" Section that has update selections. Data Fields\Clients Data Fields.sql Name: Enable Ninite Updates Data Screen: Clients Section: CommonFocus ToolTip: Enable Ninite updates for this client. 14
SEARCHES Now that all the extra data fields that are required have been created, the next step is to create the Searches that are needed. At PointSolve all Ninite related searches are in a "CF Ninite" Folder. TITLE: NINITE SERVERS Searches\Servers.sql Edit all Related Fields to point to your extra data fields. Field: Related - Additional Client Fields Related: Enable Ninite Updates (v_extradataclients) Operator: = Value: 1 Field: Related - Additional LocationFields Related: Enable Ninite Updates Servers (v_extradatalocations) Operator: = Value: 1 Field: Related - Additional Fields Related: Disable Ninite Updates (v_extradatacomputers) Operator: Not = Value: 1 Field: OS Related: Operator: Like Value: %Windows% 15
Field: OS Related: Operator: Like Value: %Server% TITLE: NINITE WORKSTATIONS Searches\Workstations.sql Edit all Related Fields to point to your extra data fields. Field: Related - Additional Client Fields Related: Enable Ninite Updates (v_extradataclients) Operator: = Value: 1 Field: Related - Additional LocationFields Related: Enable Ninite Updates Workstations (v_extradatalocations) Operator: = Value: 1 Field: Related - Additional Fields Related: Disable Ninite Updates (v_extradatacomputers) Operator: Not = Value: 1 Field: OS Related: Operator: Like Value: %Windows% 16
Field: Bios Flash Related: Operator: notlike Value: %Portable% Field: OS Related: Operator: notlike Value: %Server% TITLE: NINITE LAPTOPS Searches\Laptops.sql Edit all Related Fields to point to your extra data fields. Field: Related - Additional Client Fields Related: Enable Ninite Updates (v_extradataclients) Operator: = Value: 1 Field: Related - Additional LocationFields Related: Enable Ninite Updates Laptops (v_extradatalocations) Operator: = Value: 1 Field: Related - Additional Fields Related: Disable Ninite Updates (v_extradatacomputers) Operator: Not = Value: 1 17
Field: OS Related: Operator: Like Value: %Windows% Field: Bios Flash Related: Operator: Like Value: %Portable% TITLE: NINITE ONBOARDING Searches\Onboarding.sql Edit all Related Fields to point to your extra data fields. Field: Related - Additional LocationFields Related: Enable Ninite Onboarding (v_extradatalocations) Operator: = Value: 1 Field: Related - Additional Fields Related: Ninite Onboarding Complete (v_extradatacomputers) Operator: Not = Value: 1 Field: OS Related: Operator: Like Value: %Windows% 18
Field: OS Related: Operator: notlike Value: %Server% 19
SCRIPTS The next step is to create the scripts that will be used to onboard or update the computers automatically. This also includes some general purpose scripts to perform various actions such as performing a Ninite Audit or deleting the Ninite cache. NINITE UPDATE Scripts\Ninite Update.xml Then lines to edit: 2 and 7 Else lines to edit: 2 and 7 Script Notes: This script will check to see if the computer is domain joined. It will then look for the NiniteOne.exe file in %LTSVCDIR%\Ninite and if it doesn't exist will download it from LabTech\Transfer\Software\Ninite. If the download fails it will create a ticket and email @UserID@ @ @Domain@. Please remember to set the Global Variables. If the computer is Domain Joined it will execute Ninite as Admin, if not it will do a normal execute. Make sure you have Administrator passwords set correctly for all ADDS clients. A log is created at %LTSVCDIR%\Ninite\ninitereport.txt Script created by Brandon Carl. You may contact me at: bcarl@pointsolve.com Name: Ninite Update Computer Script: Checked All others: UnChecked Global Variables: Domain : Email Domain (example.com) UserID : Email UserID (support) 20
IF: Sql Data Check Sql Statement: SELECT `Domain` FROM `computers` WHERE ComputerID = %computerid% Compare: Contains To:. Then: 1. Note: Check if computer has Ninite updates disabled. 2. SET: @DisNinUpd@ = [EXTRAFIELD Disable Ninite Updates] 3. IF @DisNinUpd@ Not = 1 THEN Jump to line 6 4. LOG: This computer has Ninite updates disabled. 5. Exit Script 6. Note: Check if client has Ninite updates enabled. 7. SET: @EnNinUpd@ = [EXTRAFIELD Enable Ninite Updates] 8. IF @EnNinUpd@ = 1 THEN Jump to line 11 9. LOG: This client does not have Ninite updates enabled. 10. Exit Script 11. LOG: Starting Ninite Update on %computername% at location %locationname% for client %clientname% at %when%. 12. IF FILE Exists %ltsvcdir%\ninite\niniteone.exe THEN Jump to line 20 13. SHELL: mkdir %ltsvcdir%\ninite and store the result in %shellresult% 14. LOG: Result of mkdir command: %shellresult% 15. DOWNLOAD: /Labtech/Transfer/Software/Ninite/NiniteOne.exe saved to %ltsvcdir%\ninite\niniteone.exe 16. IF FILE Exists %ltsvcdir%\ninite\niniteone.exe THEN Jump to line 20 17. LOG: %ltsvcdir%\ninite\niniteone.exe file was not found. 18. Create New Ticket for %clientid%\%computerid% Email:@UserID@@@Domain@ Subject:Failed to download NiniteOne.exe install file. Install aborted on %computername% 19. Exit Script 21
20. EXECUTE as Admin: %ltsvcdir%\ninite\niniteone.exe /updateonly /nocache /disableshortcuts /disableautoupdate /remote %computername% /remoteauth %ComputerUsername% %ComputerPassword% /silent %ltsvcdir%\ninite\ninitereport.txt and wait until finish, store the result in %executeresult% 21. Sleep 120 seconds 22. Resend Software Else: 1. Note: Check if computer has Ninite updates disabled. 2. SET: @DisNinUpd@ = [EXTRAFIELD Disable Ninite Updates] 3. IF @DisNinUpd@ Not = 1 THEN Jump to line 6 4. LOG: This computer has Ninite updates disabled. 5. Exit Script 6. Note: Check if client has Ninite updates enabled. 7. SET: @EnNinUpd@ = [EXTRAFIELD Enable Ninite Updates] 8. IF @EnNinUpd@ = 1 THEN Jump to line 11 9. LOG: This client does not have Ninite updates enabled. 10. Exit Script 11. LOG: Starting Ninite Update on %computername% at location %locationname% for client %clientname% at %when%. 12. IF FILE Exists %ltsvcdir%\ninite\niniteone.exe THEN Jump to line 20 13. SHELL: mkdir %ltsvcdir%\ninite and store the result in %shellresult% 14. LOG: Result of mkdir command: %shellresult% 15. DOWNLOAD: /Labtech/Transfer/Software/Ninite/NiniteOne.exe saved to %ltsvcdir%\ninite\niniteone.exe 16. IF FILE Exists %ltsvcdir%\ninite\niniteone.exe THEN Jump to line 20 17. LOG: %ltsvcdir%\ninite\niniteone.exe file was not found. 18. Create New Ticket for %clientid%\%computerid% Email:@UserID@@@Domain@ Subject:Failed to download NiniteOne.exe install file. Install aborted on %computername% 19. Exit Script 22
20. EXECUTE: %ltsvcdir%\ninite\niniteone.exe /updateonly /nocache /disableautoupdate /disableshortcuts /silent %ltsvcdir%\ninite\ninitereport.txt and wait until finish, store the result in %executeresult% 21. Sleep 120 seconds 22. Resend Software 23
NINITE ONBOARDING Scripts\Ninite Onboarding.xml Edit IF ExtraData Check: Extra Field Then lines to edit: 13, 19-41, 43, 48-52, and 196 Else lines to edit: N/A Script Notes: Be sure to set the global variables to the desired email address. This script should be used in combination with an Auto-Join group that runs this script every hour. Criteria for the search should check the computer's extra data field for a checked/unchecked Ninite Onboarding Complete, and check client extra data field for Enable Ninite Onboarding. Script created by Brandon Carl. You may contact me at: bcarl@pointsolve.com Name: Ninite Onboarding Computer Script: Checked All others: UnChecked Global Variables: Domain : Email Domain (example.com) UserID : Email UserID (support) IF: ExtraData Check Extra Field: Enable Ninite Onboarding-2 ID: %LocationID% Compare: = To: 1 24
Then: 1. Note: Script begins by checking if location is set for Ninite Onboarding. 2. Note: Check if UAC is on. 3. IF %os% Contains %Windows 8% THEN Jump to line 7 4. IF %os% Contains Windows 7 THEN Jump to line 7 5. IF %os% Contains Windows Vista THEN Jump to line 7 6. GOTO line 12 7. SET: @UAC@ = REGISTRY[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curren tversion\policies\system\enablelua] 8. IF @UAC@ = 0 THEN Jump to line 12 9. LOG: This computer has UAC turned on. Please turn it off before attempting Ninite Onboarding. 10. Send Email To:@UserID@@@Domain@ Subject:Ninite Onbaording Failed - UAC 11. Exit Script 12. Note: Check to see if Computer already has Ninite Onboarding Complete Extra Data Field Checked. 13. SET: @NinCmplt@ = [EXTRAFIELD Ninite Onboarding Complete] 14. IF @NinCmplt@ Not = 1 THEN Jump to line 17 15. LOG: This computer has already been through the Ninite Onaboarding process. 16. Exit Script 17. Note: Begin script by checking location extra data fields for programs to be installed. 18. LOG: Starting Ninite Onboarding on %computername% at location %locationname% for client %clientname% at %when%. 19. SET: @Chrome@ = [EXTRAFIELD Chrome] 20. SET: @Firefox@ = [EXTRAFIELD Firefox] 21. SET: @Safari@ = [EXTRAFIELD Safari] 22. SET: @Skype@ = [EXTRAFIELD Skype] 23. SET: @itunes@ = [EXTRAFIELD itunes] 24. SET: @QuickTime@ = [EXTRAFIELD QuickTime] 25
25. SET: @Flash@ = [EXTRAFIELD Flash] 26. SET: @Flash IE@ = [EXTRAFIELD Flash (IE)] 27. SET: @Java 7@ = [EXTRAFIELD Java 7] 28. SET: @Java x64 7@ = [EXTRAFIELD Java x64 7] 29. SET: @.NET@ = [EXTRAFIELD.NET] 30. SET: @.NET 4@ = [EXTRAFIELD.NET 4] 31. SET: @.NET 4.5@ = [EXTRAFIELD.NET 4.5] 32. SET: @Silverlight@ = [EXTRAFIELD Silverlight] 33. SET: @Air@ = [EXTRAFIELD Air] 34. SET: @Shockwave@ = [EXTRAFIELD Shockwave] 35. SET: @GIMP@ = [EXTRAFIELD GIMP] 36. SET: @Reader@ = [EXTRAFIELD Reader] 37. SET: @CutePDF@ = [EXTRAFIELD CutePDF] 38. SET: @Essentials@ = [EXTRAFIELD Essentials] 39. SET: @Malwarebytes@ = [EXTRAFIELD Malwarebytes] 40. SET: @Dropbox@ = [EXTRAFIELD Dropbox] 41. SET: @Google Earth@ = [EXTRAFIELD Google Earth] 42. Note: Make sure the computer is Windows 8 before it installs Classic Start. 43. SET: @Classic Start@ = [EXTRAFIELD Classic Start (Windows 8 Only)] 44. IF @Classic Start@ Not = 1 THEN Jump to line 49 45. IF %os% Not Contains Windows 8 THEN Jump to line 47 46. IF @Classic Start@ = 1 THEN Jump to line 49 47. LOG: Classic Start is only needed on Windows 8 computers. 48. SET: @Classic Start@ = 0 49. SET: @TeamViewer@ = [EXTRAFIELD TeamViewer] 50. SET: @7-Zip@ = [EXTRAFIELD 7-Zip] 51. SET: @WebEx@ = [EXTRAFIELD WebEx] 52. SET: @Citrix Receiver@ = [EXTRAFIELD Citrix Receiver] 53. Note: We now have binary (1 or 0/null) variables set for every program listed. We now set the Prog variables based on if the program extra data fields were checked or not. 26
54. Note: Also note that Ninite's /select command requires certain programs to be enclosed in quotes. Labtech variables that need quotes around them must be in this format: " "Program Name" " 55. IF @Chrome@ Not = 1 THEN Jump to line 58 56. SET: @Prog1@ = Chrome 57. GOTO line 59 58. SET: @Prog1@ = 59. IF @Firefox@ Not = 1 THEN Jump to line 62 60. SET: @Prog2@ = Firefox 61. GOTO line 63 62. SET: @Prog2@ = 63. IF @Safari@ Not = 1 THEN Jump to line 66 64. SET: @Prog3@ = Safari 65. GOTO line 67 66. SET: @Prog3@ = 67. IF @Skype@ Not = 1 THEN Jump to line 70 68. SET: @Prog4@ = Skype 69. GOTO line 71 70. SET: @Prog4@ = 71. IF @itunes@ Not = 1 THEN Jump to line 74 72. SET: @Prog5@ = itunes 73. GOTO line 75 74. SET: @Prog5@ = 75. IF @QuickTime@ Not = 1 THEN Jump to line 78 76. SET: @Prog6@ = QuickTime 77. GOTO line 79 78. SET: @Prog6@ = 79. IF @Flash@ Not = 1 THEN Jump to line 82 80. SET: @Prog7@ = Flash 81. GOTO line 83 82. SET: @Prog7@ = 83. IF @Flash IE@ Not = 1 THEN Jump to line 86 84. SET: @Prog8@ = " "Flash (IE)" " 27
85. GOTO line 87 86. SET: @Prog8@ = 87. IF @Java 7@ Not = 1 THEN Jump to line 90 88. SET: @Prog9@ = "Java" 89. GOTO line 91 90. SET: @Prog9@ = 91. IF @Java x64 7@ Not = 1 THEN Jump to line 94 92. SET: @Prog10@ = " "Java x64" " 93. GOTO line 95 94. SET: @Prog10@ = 95. IF @.NET@ Not = 1 THEN Jump to line 98 96. SET: @Prog11@ = " ".NET" " 97. GOTO line 99 98. SET: @Prog11@ = 99. IF @.NET 4@ Not = 1 THEN Jump to line 102 100. SET: @Prog12@ = " ".NET 4" " 101. GOTO line 103 102. SET: @Prog12@ = 103. IF @.NET 4.5@ Not = 1 THEN Jump to line 106 104. SET: @Prog13@ = " ".NET 4.5" " 105. GOTO line 107 106. SET: @Prog13@ = 107. IF @Silverlight@ Not = 1 THEN Jump to line 110 108. SET: @Prog14@ = Silverlight 109. GOTO line 111 110. SET: @Prog14@ = 111. IF @Air@ Not = 1 THEN Jump to line 114 112. SET: @Prog15@ = Air 113. GOTO line 115 114. SET: @Prog15@ = 115. IF @Shockwave@ Not = 1 THEN Jump to line 118 116. SET: @Prog16@ = Shockwave 117. GOTO line 119 28
118. SET: @Prog16@ = 119. IF @GIMP@ Not = 1 THEN Jump to line 122 120. SET: @Prog17@ = GIMP 121. GOTO line 123 122. SET: @Prog17@ = 123. IF @Reader@ Not = 1 THEN Jump to line 126 124. SET: @Prog18@ = Reader 125. GOTO line 127 126. SET: @Prog18@ = 127. IF @CutePDF@ Not = 1 THEN Jump to line 130 128. SET: @Prog19@ = CutePDF 129. GOTO line 131 130. SET: @Prog19@ = 131. IF @Essentials@ Not = 1 THEN Jump to line 134 132. SET: @Prog20@ = Essentials 133. GOTO line 135 134. SET: @Prog20@ = 135. IF @Malwarebytes@ Not = 1 THEN Jump to line 138 136. SET: @Prog21@ = Malwarebytes 137. GOTO line 139 138. SET: @Prog21@ = 139. IF @Dropbox@ Not = 1 THEN Jump to line 142 140. SET: @Prog22@ = Dropbox 141. GOTO line 143 142. SET: @Prog22@ = 143. IF @Google Earth@ Not = 1 THEN Jump to line 146 144. SET: @Prog23@ = " "Google Earth" " 145. GOTO line 147 146. SET: @Prog23@ = 147. IF @Classic Start@ Not = 1 THEN Jump to line 150 148. SET: @Prog24@ = " "Classic Start" " 149. GOTO line 151 150. SET: @Prog24@ = 29
151. IF @TeamViewer@ Not = 1 THEN Jump to line 154 152. SET: @Prog25@ = TeamViewer 153. GOTO line 155 154. SET: @Prog25@ = 155. IF @7-Zip@ Not = 1 THEN Jump to line 158 156. SET: @Prog26@ = " "7-Zip" " 157. GOTO line 159 158. SET: @Prog26@ = 159. IF @WebEx@ Not = 1 THEN Jump to line 162 160. SET: @Prog27@ = WebEx 161. GOTO line 163 162. SET: @Prog27@ = 163. IF @Citrix Receiver@ Not = 1 THEN Jump to line 166 164. SET: @Prog28@ = " "Citrix Receiver" " 165. GOTO line 167 166. SET: @Prog28@ = 167. Note: Check to see if NiniteOne.exe is already in %ltsvc%\ninite If it is not download it. 168. IF FILE Exists %ltsvcdir%\ninite\niniteone.exe THEN Jump to line 176 169. SHELL: mkdir %ltsvcdir%\ninite and store the result in %shellresult% 170. LOG: Result of mkdir command: %shellresult% 171. DOWNLOAD: /Labtech/Transfer/Software/Ninite/NiniteOne.exe saved to %ltsvcdir%\ninite\niniteone.exe 172. IF FILE Exists %ltsvcdir%\ninite\niniteone.exe THEN Jump to line 176 173. LOG: %ltsvcdir%\ninite\niniteone.exe file was not found. 174. Create New Ticket for %clientid%\%computerid% Email:@UserID@@@Domain@ Subject:Failed to download NiniteOne.exe install file. Install aborted on %computername% 175. Exit Script 176. Note: Log list of programs to be installed. Then install programs using Ninite. 177. LOG: Installing: @Prog1@ @Prog2@ @Prog3@ @Prog4@ @Prog5@ @Prog6@ @Prog7@ @Prog8@ @Prog9@ @Prog10@ @Prog11@ 30
@Prog12@ @Prog13@ @Prog14@ @Prog15@ @Prog16@ @Prog17@ @Prog18@ @Prog19@ @Prog20@ @Prog21@ @Prog22@ @Prog23@ @Prog24@ @Prog25@ @Prog26@ @Prog27@ @Prog28@ 178. SET: %sqlresult% = [SELECT `Domain` FROM `computers` WHERE ComputerID = %computerid%] 179. IF %sqlresult% Contains. THEN Jump to line 184 180. Note: Labtech does not like long arguments, so we write the command to a batch file and execute that. 181. Write %ltsvcdir%\ninite\niniteone.exe /select @Prog1@ @Prog2@ @Prog3@ @Prog4@ @Prog5@ @Prog6@ @Prog7@ @Prog8@ @Prog9@ @Prog10@ @Prog11@ @Prog12@ @Prog13@ @Prog14@ @Prog15@ @Prog16@ @Prog17@ @Prog18@ @Prog19@ @Prog20@ @Prog21@ @Prog22@ @Prog23@ @Prog24@ @Prog25@ @Prog26@ @Prog27@ @Prog28@ /allusers /disableshortcuts /nocache /disableautoupdate /silent %ltsvcdir%\ninite\niniteonboarding.txt to %ltsvcdir%\ninite\onboard.bat 182. EXECUTE: %ltsvcdir%\ninite\onboard.bat and wait until finish, store the result in %executeresult% 183. GOTO line 186 184. Write %ltsvcdir%\ninite\niniteone.exe /select @Prog1@ @Prog2@ @Prog3@ @Prog4@ @Prog5@ @Prog6@ @Prog7@ @Prog8@ @Prog9@ @Prog10@ @Prog11@ @Prog12@ @Prog13@ @Prog14@ @Prog15@ @Prog16@ @Prog17@ @Prog18@ @Prog19@ @Prog20@ @Prog21@ @Prog22@ @Prog23@ @Prog24@ @Prog25@ @Prog26@ @Prog27@ @Prog28@ /remote %computername% /remoteauth %ComputerUsername% %ComputerPassword% /allusers /disableshortcuts /nocache /disableautoupdate /silent %ltsvcdir%\ninite\niniteonboarding.txt to %ltsvcdir%\ninite\onboard.bat 185. EXECUTE as Admin: %ltsvcdir%\ninite\onboard.bat and wait until finish, store the result in %executeresult% 186. Sleep 300 seconds 187. Resend Software 188. Sleep 600 seconds 189. Note: Clean up batch file. 31
190. DELETE: %ltsvcdir%\ninite\onboard.bat 191. Note: Check if any errors occured during the install. If they did, email contact and DO NOT set Ninite Onboarding as complete. If the onboarding is being done automatically using an AutoJoin group than in an hour the process will be retried. 192. SET: @NinOnb@ = FILECONTENTS[%ltsvcdir%\Ninite\niniteonboarding.txt] 193. IF @NinOnb@ Contains Fail THEN Jump to line 198 194. IF @NinOnb@ Contains Error THEN Jump to line 198 195. LOG: Ninite onboarding complete. 196. SET: [EXTRAFIELD Ninite Onboarding Complete] = 1 197. GOTO line 200 198. LOG: Ninite has reported an error during the onboarding process. 199. Send Email To:@UserID@@@Domain@ Subject:Ninite Onboarding Error 200. Exit Script Else: 1. LOG: This location does not have Ninite Onboarding Enabled. 32
NINITE AUDIT Scripts\Ninite Audit.xml No lines to edit. Script Notes: This script will perform a Ninite Audit. It will than upload the audit report to the LabTech share and email the contents of the report to the specified email address. Please be sure to set your Global Variables. Script created by Brandon Carl. You may contact me at bcarl@pointsolve.com Name: Ninite Audit Computer Script: Checked All others: UnChecked Global Variables: Domain : Email Domain (example.com) UserID : Email UserID (support) IF: Sql Data Check Sql Statement: SELECT `Domain` FROM `computers` WHERE ComputerID = %computerid% Compare: Contains To:. Then: 1. LOG: Starting audit on %computername% at location %locationname% for client %clientname% at %when%. 2. IF FILE Exists %ltsvcdir%\ninite\niniteone.exe THEN Jump to line 10 3. SHELL: mkdir %ltsvcdir%\ninite and store the result in %shellresult% 4. LOG: Result of mkdir command: %shellresult% 5. DOWNLOAD: /Labtech/Transfer/Software/Ninite/NiniteOne.exe saved to %ltsvcdir%\ninite\niniteone.exe 33
6. IF FILE Exists %ltsvcdir%\ninite\niniteone.exe THEN Jump to line 10 7. LOG: %ltsvcdir%\ninite\niniteone.exe file was not found. 8. Create New Ticket for %clientid%\%computerid% Email:@UserID@@@Domain@ Subject:Failed to download NiniteOne.exe install file. Install aborted on %computername% 9. Exit Script 10. EXECUTE as Admin: %ltsvcdir%\ninite\niniteone.exe /audit /remote %computername% /remoteauth %ComputerUsername% %ComputerPassword% /silent %ltsvcdir%\ninite\niniteaudit.txt and wait until finish, store the result in %executeresult% 11. Sleep 120 seconds 12. UPLOAD: %ltsvcdir%\ninite\niniteaudit.txt to LTSHARE\Uploads\, store the result in %uploadedfile% 13. SET: @NinAud@ = FILECONTENTS[%ltsvcdir%\Ninite\niniteaudit.txt] 14. Send Email To:@UserID@@@Domain@ Subject:Ninite Audit Report for %computername% at %clientname% 15. UPLOAD: %ltsvcdir%\ninite\niniteaudit.txt to LTSHARE\Uploads\, store the result in %uploadedfile% Else: 1. LOG: Starting audit on %computername% at location %locationname% for client %clientname% at %when%. 2. IF FILE Exists %ltsvcdir%\ninite\niniteone.exe THEN Jump to line 10 3. SHELL: mkdir %ltsvcdir%\ninite and store the result in %shellresult% 4. LOG: Result of mkdir command: %shellresult% 5. DOWNLOAD: /Labtech/Transfer/Software/Ninite/NiniteOne.exe saved to %ltsvcdir%\ninite\niniteone.exe 6. IF FILE Exists %ltsvcdir%\ninite\niniteone.exe THEN Jump to line 10 7. LOG: %ltsvcdir%\ninite\niniteone.exe file was not found. 8. Create New Ticket for %clientid%\%computerid% Email:@UserID@@@Domain@ Subject:Failed to download NiniteOne.exe install file. Install aborted on %computername% 9. Exit Script 34
10. EXECUTE: %ltsvcdir%\ninite\niniteone.exe /audit /silent %ltsvcdir%\ninite\niniteaudit.txt and wait until finish, store the result in %executeresult% 11. Sleep 120 seconds 12. UPLOAD: %ltsvcdir%\ninite\niniteaudit.txt to LTSHARE\Uploads\, store the result in %uploadedfile% 13. SET: @NinAud@ = FILECONTENTS[%ltsvcdir%\Ninite\niniteaudit.txt] 14. Send Email To:@UserID@@@Domain@ Subject:Ninite Audit Report for %computername% at %clientname% 15. UPLOAD: %ltsvcdir%\ninite\niniteaudit.txt to LTSHARE\Uploads\, store the result in %uploadedfile% 35
NINITE CACHE CLEANUP Script\Ninite Audit.xml No lines to edit. Script Notes: This script will delete the Ninite cache folder. Script created by Brandon Carl. You may contact me at bcarl@pointsolve.com Name: Ninite Cache Cleanup Computer Script: Checked All others: UnChecked No Global variables. IF: True Then: 1. Delete Folder: %ltsvcdir%\ninite\ninitedownloads\files 2. IF FILE Exists %ltsvcdir%\ninite\ninitedownloads\files\% THEN Jump to line 5 3. LOG: Ninite cache folder successfully deleted. 4. Exit Script 5. LOG: Ninite folder deletion failed. 36
GROUPS Now that all the searches and scripts are complete, the next step is to create the groups to associate with the searches, and to set the scripts to run on. At PointSolve we have all Ninite groups in a group named CF Ninite. If you use the Patch Manager, you will want to set the top level group to Type Organizational so it does not appear in the Patch Manager. All of these groups should be set to be a grayed Master Group, meaning that adding a computer to this group will not remove it from any other groups, and the computer cannot be automatically removed from this group by joining another Master Group. NINITE ONBOARDING Groups\Ninite Onboarding.xml Edit Auto Join Search and Software Script Main Tab Name: Ninite Onboarding Master Group: Grayed Auto Join Search: CF Ninite\Ninite Onboarding Limit to Search: Checked Software Tab Script: Software\Ninite\Ninite Onboarding This set to run every hour, everyday. 37
NINITE SERVERS Groups\Ninite Servers.xml Edit Auto Join Search and Software Script Main Tab Name: Ninite Servers Master Group: Grayed Auto Join Search: CF Ninite\Ninite Servers Limit to Search: Checked Software Tab Script: Software\Ninite\Ninite Update This is set to run Everyday at 12:15 PM and 4:00 AM NINITE WORKSTATIONS Groups\Ninite Workstations.xml Edit Auto Join Search and Software Script Main Tab Name: Ninite Workstations Master Group: Grayed Auto Join Search: CF Ninite\Ninite Workstations Limit to Search: Checked Software Tab Script: Software\Ninite\Ninite Update This is set to run Everyday at 12:15 PM and 4:00 AM 38
NINITE LAPTOPS Groups\Ninite Laptops.xml Edit Auto Join Search and Software Script Main Tab Name: Ninite Laptops Master Group: Grayed Auto Join Search: CF Ninite\Ninite Laptops Limit to Search: Checked Software Tab Script: Software\Ninite\Ninite Update This is set to run Everyday at 12:15 PM and 4:00 AM 39
CONCLUSION The last step is to go through your clients and locations and configure the extradatafields to your liking. By default, Ninite Onboarding will avoid servers, as most clients will not require a full load of third party software on their servers. The update scripts will run around lunch and early morning. You should be able to update every enabled workstation at least weekly running at those times. If you have a client that you are having trouble getting Java or Reader updated because these programs are opened every time Ninite runs, a good idea would be to add an IF NOT USER RESPONSE YES to their update script. Ask the user if you can close browsers/reader and if they respond yes kill those processes (firefox, iexplore, acrord32). That was default configuration of Luy Teitelroit s original script. I would like to thank Patrick and Sascha for developing a wonderful product in Ninite Pro, and for responding promptly to my requests for more detailed information on how Ninite works to help me develop this package. LabTech s scripting documentation is also excellent, and their Advanced Scripting Support Page is an invaluable resource when developing complex scripts. If you would like an editable copy of this document to develop internal documentation for your company, send a request to bcarl@pointsolve.com. Any questions about this package can be sent to bcarl@pointsolve.com. My company, PointSolve Technology, Inc., is also able to remotely install or provide consolation on this package. Please contact us at support@pointsolve.com or 1-866-336-3106 for pricing. 40
This document and all LabTech assets created by Brandon Carl for: PointSolve Technology, Inc. P.O. Box 318 Jonestown, PA 17038 http://www.pointsolve.com All Rights Reserved. 2013 PointSolve Technology, Inc. 41