About
OpenShot Video Editor is a free and open source video editor for FreeBSD, Linux, HaikuOS, macOS, and Windows.
The vendor installer is an EXE installer with silent switches.
Download the installer from openshot.org.
Package and Deployment info
Useful for SCCM detection.
deployInfo.txt
OpenShot Video Editor version 2.4.4
OpenShot Studios, LLC
C:\Program Files\OpenShot Video Editor\launch.exe
C:\Program Files\OpenShot Video Editor\unins000.exe
Hive: HKEY_LOCAL_MACHINE
Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{4BB0DCDC-BC24-49EC-8937-72956C33A470}_is1
Value: DisplayVersion
DataType: Version
Data: 2.4.4
Operator: Greater than or equal to
32-bit: No
SCCM Requirement: None
Vendor Configuration for Silent Install
The vendor installer is based on the Inno Setup installer. Configuration options for installation including silent install can be found at jrsoftware.org.

Install
The vendor installer is called via PowerShell script. The script has been edited with the contents below. The silent install command can be called from an Administrator command prompt as follows:
powershell.exe -ExecutionPolicy Bypass -File "%~dp0Install.ps1"
Install.ps1
# This script performs the installation or uninstallation of an application(s).
# Created 29/11/2019 | cru2.io
# Remove previous versions if exist
[string]$CurrentPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
. "$CurrentPath\Uninstall.ps1" | Out-Null
# Variables
[string]$OSVersion = (Get-CimInstance Win32_OperatingSystem).version
[string]$ProcessNTAccount = (whoami)
[string]$scriptTime = (Get-Date -f "dd/MM/yyyy HH:mm:ss")
[string]$pkgName = "OpenShot Video Editor 2.4.4"
[string]$appLogFile = $env:ProgramData + '\Logs\' + $pkgName + '_Install.log'
[string]$pkgInstaller = "$CurrentPath\OpenShot-v2.4.4-x86_64.exe"
[string]$Parms = "/VERYSILENT /NORESTART"
# Functions
Function WriteLog
{
Param ([string]$logstring)
Add-content $appLogFile -value $logstring
Write-Host $logstring
}
# Install
WriteLog " "
WriteLog "Installing $pkgName"
WriteLog "$pkgInstaller $Parms"
Start-Process $pkgInstaller -ArgumentList $Parms -Wait -PassThru -NoNewWindow -ErrorAction SilentlyContinue -WarningAction SilentlyContinue | Out-Null
WriteLog "MachineName: $env:ComputerName"
WriteLog "WindowsVersion: $OSVersion"
WriteLog "Installed by: $ProcessNTAccount"
WriteLog "Time: $scriptTime"
WriteLog " "
Uninstall
The uninstaller is a PowerShell script. The script has been edited with the contents below. The logic here is that the registry key holds the Uninstall command which may vary depending on a number of factors (install path, how many times the software has been removed and reinstalled previously etc). This ensures the correct command is called and has additional value in that it will log which version(s) it removes.
The silent install command can be called from an Administrator command prompt as follows:
powershell.exe -ExecutionPolicy Bypass -File "%~dp0Uninstall.ps1"
Uninstall.ps1
# This script performs the installation or uninstallation of an application(s).
# Created 29/11/2019 | cru2.io
# Variables
[string]$CurrentPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
[string]$OSVersion = (Get-CimInstance Win32_OperatingSystem).version
[string]$ProcessNTAccount = (whoami)
[string]$scriptTime = (Get-Date -f "dd/MM/yyyy HH:mm:ss")
[string]$pkgName = "OpenShot Video Editor"
[string]$appLogFile = $env:ProgramData + '\Logs\' + $pkgName + '_Uninstall.log'
[string]$Parms = "/VERYSILENT /NORESTART"
# Functions
Function WriteLog
{
Param ([string]$logstring)
Add-content $appLogFile -value $logstring
Write-Host $logstring
}
# Remove previous versions if exist
[array]$regFolders = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall","HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
ForEach ($regFolder in $regFolders)
{
$appVer = Get-ChildItem -Path $regFolder |
Get-ItemProperty |
Where-Object {$_.DisplayName -like "*OpenShot Video Editor version*" } |
Select-Object -Property DisplayName, DisplayVersion, UninstallString
ForEach ($ver in $appVer)
{
If ($ver.UninstallString)
{
$OldVersion = $ver.DisplayVersion
$Uninst = $ver.UninstallString
# Uninstall
WriteLog " "
WriteLog "Uninstalling $pkgName $OldVersion"
WriteLog "$Uninst $Parms"
Start-Process $Uninst -ArgumentList $Parms -Wait -PassThru -NoNewWindow -ErrorAction SilentlyContinue -WarningAction SilentlyContinue | Out-Null
WriteLog "MachineName: $env:ComputerName"
WriteLog "WindowsVersion: $OSVersion"
WriteLog "Installed by: $ProcessNTAccount"
WriteLog "Time: $scriptTime"
WriteLog " "
}
}
}
Logging
Can be found at C:\ProgramData\Logs