Worklet: Install Notepad++ for Windows

  • 26 October 2020
  • 0 replies
  • 179 views

Userlevel 5

Download the version of Notepad++ you want to install, upload it to the worklet, and set $saveFile in the remediation to match the name of the file you upload.


Evaluation:


<#
.SYNOPSIS
This Test script checks to see if an application is installed
.DESCRIPTION
This script queries the installed files for 64bit software
and returns a 0 if product is installed or 1 if not
.Notes
File Name :App_Install_Test.ps1
Author :Automox
Prerequisite :PowerShell V2 over Win7 and later
#>
#Handle Exit Codes:
trap { $host.ui.WriteErrorLine($_.Exception); exit 90 }

function App_Install_Test {

<#
.SYNOPSIS
This function Checks to see if app is installed on system or not .
.DESCRIPTION
After checking the app availability, based on the exit code tool will decide to call remediation code or not.
#>

## Name of the desired application ##
$appName = 'Notepad'
## You must also hard-code the app name in the $scriptblock below

# Finding the Systen Directory (system32 Directory).
$sysDir = [Environment]::SystemDirectory

# Making the 64 bit path name blank.
$64BIT = ""

# Script block to execute with powershell
# Match name in the block should be hard coded.
$scriptBlock = {$key = Get-ItemProperty 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*' |
Where-Object { $_.DisplayName -match 'Notepad'}
return $key
}

# Get the Registry value for the 64 bit software installed on the 64 bit machine. as the automox process is 32 bit
if ((Get-WmiObject Win32_OperatingSystem).OSArchitecture -eq "64-bit")
{
# Call for accessing the 64 bit registry in case the 32 bit process cannot access the registry.
Try
{
$installed64 = @(& "$env:SystemRoot\sysnative\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Bypass -WindowStyle Hidden -NoProfile -NonInteractive -Command $scriptBlock)
$64BIT = $installed64.DisplayName
}
Catch
{
$Exception = $error[0].Exception.Message + "`nAt Line " + $error[0].InvocationInfo.ScriptLineNumber;
Write-Output $Exception
exit 90
}

}
# Check for the Availability of the software and exit with relevent exit code.
if ($64BIT -ne $null -and $64BIT.Trim() -match $appName) {
#Application Found, Automox can handle the updates!
exit 0
} else {
# Application is not installed! Run Remediation Script to install it.
exit 1
}
}

App_Install_Test

Remediation:


# This needs to be set as the name of the 64-bit Notepad++ .exe file you upload
$saveFile = "npp.7.8.8.Installer.x64.exe"

#Handle Exit Codes:
trap { $host.ui.WriteErrorLine($_.Exception); exit 90 }

###### Installing application on system ######
Try {
$process = Start-Process -FilePath "$saveFile" -ArgumentList "/S" -Wait -PassThru -ErrorAction Stop
Write-Output "Notepad++ Installion Finished..."
}
Catch { $Exception = $error[0].Exception.Message + "`nAt Line " + $error[0].InvocationInfo.ScriptLineNumber
Write-Output $Exception
exit 90
}

0 replies

Be the first to reply!

Reply