Arduino and Rodin Deployment in SCCM 2012

I’ve been mostly focusing on MDT and other stuff so I haven’t posted that much about SCCM. Now it’s time to change that! 🙂 I’ll describe how I installed (and updated) Rodin and Arduino in our computer classroom. These aren’t perhaps the applications everyone use, but as we are an IT Department many “special cases” will arrive in our/my direction. Anyways, on to the installation. (This is btw not very well documented anywhere on Google 🙂 ) I may also add that the screenshots are from a virtual environment, NOT from our production server. Always test your stuff before breaking the production environment, OK?

I started by creating three applications (Fig 1), two for Rodin and one for Arduino. With Rodin I did a test-upgrade using supersedence (therefore two applications). With Arduino I just did an installation (the silent uninstallation does not work properly). There are probably many ways of doing this, and I’m not saying I’m doing it the “right” way. That said, it’s working.

sccm_applications

Fig 1. Arduino and Rodin Applications

 

Arduino

Deployment Type is the interesting part.

  • Create an application and manually specify the application information.
    • Name and manufacturer etc. etc. according to your needs.
    • Deployment Type: Script installer. Here are some parameters from the script installer:

arduino_content

Fig 2. Content

arduino_programs

Fig 3. Programs.

I googled and couldn’t find a silent installation switch for Arduino. I then googled some more and found a very useful little program called Universal Silent Switch Finder, http://www.portablefreeware.com/?id=2520. This helped me find the silent installation switch for Arduino (which was simply /S). I also did some research about the uninstallation switch, but came to the conclusion that it can’t be properly silently uninstalled even though I found the switch for it (also /S). This has to do with the installer itself, which in this case is Nullsoft Scriptable Install System (NSIS). Not going into any details here, just trust me. Anyways, not a big problem as this software isn’t going to be updated in our computer classroom anyway…

arduino_detection rule

Fig 4. Detection Method/Rule

arduino_user_experience

Fig 5. User experience

With these settings in place, you can successfully start deploying your application. I will not go through the application deployment process as it’s covered everywhere on the Internet. Only thing I can mention is that I use Action: Install and Purpose: Required. I won’t display the application in Software Center either.

 

Rodin

Deployment Type and Supersedence are the interesting parts. Rodin 1.2 and Rodin 1.3 are created basically in the same way, except 1.3 uses Supersedence.

  • Create an application and manually specify the application information.
    • Name and manufacturer etc. etc. according to your needs.
    • Deployment Type: Script installer. Here are some parameters from the script installer:

rodin_content

Fig 5. Content.

rodin_programs

Fig 6. Programs.

I have two subdirectories inside the main “rodin” directory; rodin_1.2 and rodin_1.3 (Fig 7). The directory also contain custom bat-files which “installs” and “uninstalls” Rodin. There are no installers or uninstallers available for Rodin (or Eclipse for that matter), Rodin is just an extracted zip file. The install bat-file copies the whole directory to a desired location and the uninstall bat-file on the other hand removes the directory. The bat-file also creates a shortcut on the Desktop for all users.

rodin_dir_screenshot

Fig 7. Custom bat files.

Contents of the install_rodin12.bat (same for 1.3 except dir name changes):

::Rodin Install Script

PUSHD %~dp0

xcopy “%~dp0rodin_1.2\*.*” “%PROGRAMFILES%\rodin_1.2\*.*” /I /Y /S & copy “%~dp0rodin_1.2\Rodin.lnk” “C:\Users\Public\Desktop”

POPD

exit /b 0

::Installation Complete

Source: http://www.experts-exchange.com/Programming/Languages/Scripting/Shell/Batch/Q_28187518.html

 

Contents of the uninstall_rodin12.bat (same for 1.3 except dir name changes):

rmdir /s /q “%PROGRAMFILES%\rodin_1.2” & del “C:\Users\Public\Desktop\Rodin.lnk”

Source: http://www.techsupportforum.com/forums/f10/batch-file-to-delete-folder-227649.html

 

The uninstallation information provided in Rodin 1.2 is then used before installing a newer version (1.3).

 

Next step is Detection Method:

rodin_detection_rule

Fig 8. Detection Method

For User Experience I will again choose to install for system, whether or not a user is logged on and visibility: hidden. That’s it for Rodin 1.2. The more interesting part is Rodin 1.3. The same steps are used as for 1.2, except Supersedence is defined. See Fig 9. The bat files defined for installation and uninstallation also has to match this current version.

rodin_supersedence

Fig 9. Supersedence.

 

Supersedence basically replaces the old application with the new one, using the uninstall information provided from the old application and the install information from the new application. And yes, it actually works. Old rodin_1.2 directory is removed and replaced by a new rodin_1.3 one.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s