This post is part of an ongoing series about using SCUP to publish 3rd party updates in MEMCM. Previous posts on SCUP and 3rd party updates:
- Using System Center Update Publisher to Create 3rd Party Updates: Intro
- Using SCUP to Create 3rd Party Updates: Publish an Update
With your workforce likely working from home under COVID-19 lockdown, it’s more important than ever to ensure that your patching is up-to-date, to include 3rd party updates. It’s not enough anymore to just ensure that Windows is patched.
This post will focus on a method to deploy updates that require a script or wrap. You may need to script the update’s install to remove a previous version, remove desktop shortcuts, or perform a post-installation configuration. This is not possible by default, as SCUP only accepts and deploys single-file EXE or MSI files. We will use 7zip to create a self-extracting archive and the sign tool from the Windows SDK.
The blog was put together using MEMCM 2002 and SCUP 6.0.394.0, available here: https://www.microsoft.com/en-us/download/details.aspx?id=55543.
This can be complicated and will require a few things in addition to MEMCM and SCUP. To complete this process you will need to acquire the following items. We’re going to use
- Code-signing certificate. This can either be a code-signing certificate from a public CA (GoDaddy, etc.) or a code-signing certificate from a local CA. If you use a local CA, your clients will need to trust it (including the workstation/server running SCUP, ConfigMgr primary server, and SUP), either by importing it directly on clients, or ensuring that the proper root certificates are installed.
- SignTool.exe. You will need to download and install the Windows SDK, available here: https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk/. Signtool.exe is also installed with Visual Studio.
- 7zip, available here: https://www.7-zip.org/.
- 7zSD.sfx. This is 7zip’s self-extractor. It is available here: http://www.7-zip.org/a/7z920_extra.7z. This will download a 7zip archive file; extract this archive and save the 7zSD.sfx file.
Create Self-Extracting Archive
Now that we have all of the tools we need, it’s time to make our archive. I’m going to use Adobe Reader as my example. I need to completely uninstall Reader before installing the new version, so this action must be scripted. The wrapper script can be either a bat file or PowerShell script.
- Create and test your wrapper script. If you use a bat file as your wrapper, name it execute.bat and proceed to step 3.
- If your wrapper script is a PowerShell script, then create a bat file called execute.bat. Paste this into the bat file (I would test it again, just for good measure):
powershell.exe -noprofile -executionpolicy bypass -command "& '%~dp0<name of script>.ps1'"
- Copy all source files, including installation files and the wrapper script, to a folder. In my example, I’ve named the folder source-files.
- Right-click on the source-files folder, select 7-Zip, then Add to “source-files.7z”.
- Copy the 7zSD.sfx file to the same directory as source-files.7z.
- Create a text file in this directory called config.txt.
- In this file, paste the following text.
- Open a cmd prompt and cd to your working directory.
- Run this command to build the self-extracting archive: copy /b 7zSD.sfx + config.txt + source-files.7z < self-extracting exe name>.
- CD to the directory where signtool.exe installed. By default, this directory is C:\Program Files (x86)\Windows Kits\10\bin\<version>\x64.
- Run this command to sign the EXE: signtool.exe sign /a /v <path to exe>\<exe>. If you have the code-signing certificate imported properly, signtool.exe will automatically select it and use it to sign the EXE.
- Import the EXE into SCUP as described in Using SCUP to Create 3rd Party Updates: Publish an Update. There are no parameters for EXE.
All content provided on this blog is for information purposes only. Windows Management Experts, Inc makes no representation as to accuracy or completeness of any information on this site. Windows Management Experts, Inc will not be liable for any errors or omission in this information nor for the availability of this information. It is highly recommended that you consult one of our technical consultants, should you need any further assistance.