Install the latest version of Sysinternals Suite tools without any source files using Configuration Manager and Powershell

Introduction

It’s an unusual and kind of off topic subject to me, but it might be useful to someone anyway. At least I think it’s different and creative 🙂

The Sysinternals Suite can be downloaded like any other bunch of tools and distributed with whatever method you prefer (download the latest version here: https://docs.microsoft.com/en-us/sysinternals/downloads/sysinternals-suite), but what if you always want the latest and greatest version, but don’t have the interest or resources to keep track of dates and versions? Read on. This is how you always install the latest version using System Center Configuration Manager and a Powershell script.

Requirement

For this to work, there’s a single requirement in having an active Internet connection at the time of installing. It almost goes without saying, but we don’t use any local source files in this scenario and we therefore download them directly from the Sysinternals file share.

Powershell

I’ve tried my best (almost) to explain along the lines what the script does.

The script comes with 2 options: Install and Uninstall (Install-SysInternalsSuite.ps1 -Install and Install-SysInternalsSuite.ps1 -Uninstall)

-Install

  • Check for an active Internet connection
  • Checks for access to \\live.sysinternals.com\Tools
    • If access, checks for version of the tools available online
  • Checks if the tools are installed locally
    • If they are installed, checks for version installed
  • Compare the versions. If the versions match, nothing will be installed
  • If the tools aren’t installed locally, or if there’s a mismatch in versions, new files will be copied/installed

-Uninstall

  • Removes the Sysinternals folder including content

Configuration Manager

You have two options in leveraging Configuration Manager here. Applications or packages. For this particular installation, I’m preferring a package. Primary reason being the need to rerun on demand, when I want to check for a new version of the tools. So here goes the exact steps of creating the package in the Configuration Manager console.

  • In the Configuration Manager console in the Software Library workspace, expand Application Management and create a new Package
    • Fill out a name as a minimum
    • The Powershell script from above. Save it in your content library and use it as source folder (I know, not completely without source files, but the PS script has to come from somewhere)

  • Select a Standard program

  • Fill out a name
  • Command line: powershell.exe -ExecutionPolicy Bypass -File .\Install-SysInternalsSuite.ps1 -Install
  • Program can run: Whether or nor a user is logged on (My script requires local admin rights and as such this runs as SYSTEM)
  • Allow users to view and interact with the program installation: I’m having this selected to see the progress

  • Fill out requirements as needed and click Next

  • Finish the wizard on Next and Close. Distribute the package to your distribution points and be ready for deployment

Deployment

  • I’m deploying the program of the package as available to a collection of computers

End-user experience

  • Installing / Reinstalling the program

  • If the folder doesn’t exist, or if this is the first time running the installation ever, the running Powershell windows will look similar to this:

  • If the version locally match the one available on the online file share, the Powershell windows will provide a message similar to this:

Final note

This idea originally came from the possibility to actually map a drive in Windows to the Sysinternals file share:

NET USE z: \\live.sysinternals.com\Tools\

Hope this was useful and please like and share where possible. 🙂

Leave a Comment