Crew Two

OpenShot 2.4.4 | Scripted

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

About: nick