PowerShell script for checking HippoEDIT version

If you for some reason do not want to use built in HippoEDIT version checking, and you want to have your own schedule for checks, you can use the PowerShell script below to do so. Just create new Task in Windows Task Scheduler and call the script from there.

hippo_version_checker.ps1
<#
The script compares installed HippoEDIT version with the latest published on HippoEDIT web site.
If installed version is older, the information is written into Windows Log and a small information popup appears.  
 
TODO:
- add a checkbox, do not remind about this version
 
#>
 
Clear-Host
 
# Installed version
 
$version_installed = "0.0.0"
 
$xmlsettingsfilename = "$env:AppData\HippoEDIT\hippoedit.config"
$xmlsettings = Get-Content -LiteralPath $xmlsettingsfilename
$pattern_wholeline = "\<GENERAL\s{1,}ver\=`"(\d{1,}\.\d{1,}\.\d{1,})`""
$pattern_version = "`"(\d{1,}\.\d{1,}\.\d{1,})`""
$textmatches = $xmlsettings -match $pattern_wholeline
if ($textmatches.count -ge 1) {
	if ($textmatches[0] -match $pattern_version){
		$version_installed = $matches[1]
	}
}
 
#$xmlsettings = New-Object -TypeName XML
#$xmlsettings.Load("$env:AppData\HippoEDIT\hippoedit.config")
#$version_installed = $xmlsettings.XMLConfigSettings.GENERAL.ver
 
 
# Internet version
$url = "http://direct.hippoedit.com/api/get_repository.php"
$web_client = New-Object System.Net.WebClient
$web_contents = $web_client.DownloadString($url)
$xml_web_contents = [xml]$web_contents
$version_published = $xml_web_contents.repository.core.release.version
 
# Comparison and dumping in windows log
 
# Creating of the log is only necessary once on the same PC, so the command "New-EventLog" can be commented after initial run 
# For proper operation of the script following command shall be once executed
New-EventLog -LogName Application -Source "HippoEDIT admin scripts" -ErrorAction SilentlyContinue
 
if($version_installed -ne $version_published){
 
	Write-EventLog `
		-LogName Application `
		-Source 'HippoEDIT admin scripts' `
		-EntryType Warning `
		-EventId 27002 `
		-Message "HippoEDIT installed version [$version_installed] older then published [$version_published]. You need to install new version."
 
	Add-Type -AssemblyName System.Windows.Forms
 
	$Form = New-Object system.Windows.Forms.Form
	$Form.Text = "HippoEDIT need to be updated"
	$Form.TopMost = $true
	$Form.Width = 280
	$Form.Height = 100
 
	$lblName = New-Object system.windows.Forms.Label
	$lblName.Text = "Installed version: $version_installed"
	$lblName.AutoSize = $true
	$lblName.Width = 260
	$lblName.Height = 10
	$lblName.location = new-object system.drawing.point(20,20)
	$lblName.Font = "Courier New,9"
	$Form.controls.Add($lblName)
 
	$lblName = New-Object system.windows.Forms.Label
	$lblName.Text = "Published version: $version_published"
	$lblName.AutoSize = $true
	$lblName.Width = 260
	$lblName.Height = 10
	$lblName.location = new-object system.drawing.point(20,40)
	$lblName.Font = "Courier New,9"
	$Form.controls.Add($lblName)
 
	[void]$Form.ShowDialog()
 
} else {
 
	Write-EventLog `
		-LogName Application `
		-Source 'HippoEDIT admin scripts' `
		-EntryType Information `
		-EventId 27001 `
		-Message "HippoEDIT installed version [$version_installed] is up to date."
 
}