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.


Fig 1. Arduino and Rodin Applications



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:


Fig 2. Content


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, 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


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.



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:


Fig 5. Content.


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.


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”


exit /b 0

::Installation Complete



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”



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


Next step is Detection Method:


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.


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.