2025-08-07 18:07:13 +00:00
<#
Author: Gabe Kerntke
Date: 02-20-2024
. Synopsis
Script installs Webex silently on machines that do not already have it . Script copies the installer from the probe and deletes the installer once the install is finsihed .
. Modified
2024-02-20 (GabeK) - Original script created
2025-06-30 (GabeK) - Updated to use functions script
#>
[ CmdletBinding ( ) ]
Param (
[ Parameter ( Mandatory = $false ) ]
$App_Name = " Webex " ,
[ Parameter ( Mandatory = $false ) ]
$File_Name_Prefix = " Webex-x64 " ,
[ Parameter ( Mandatory = $false ) ]
$File_Name_Extension = " msi " ,
[ Parameter ( Mandatory = $false ) ]
$Install_Parameters = " ACCEPT_EULA=TRUE ALLUSERS=1 /qn " ,
[ Parameter ( Mandatory = $false ) ]
$EPCache_Folder = " 3rd Party Patches\ $App_Name " ,
[ Parameter ( Mandatory = $false ) ]
$Version_URL = " https://help.webex.com/en-us/article/mqkve8/Webex-App-%7C-Release-notes "
)
#Download the HTML content
$html = ( New-Object System . Net . WebClient ) . DownloadString ( $Version_URL )
# Split the content on ">" and "<" characters to extract the text content
$html_split = $html . Split ( [ char[] ] @ ( " > " , " < " ) , [ StringSplitOptions ] :: RemoveEmptyEntries ) | Select-Object -First 900
$Sort = $html_split -like " Windows* "
# Filter out only the rows containing version numbers
$Versions = $Sort | Where-Object { $_ -match " \d+\.\d+\.\d+ " } | ForEach-Object { $_ -replace "   " , " " }
$Online_Version = $Versions -replace " [^\d*\.?/\d*] " , '' -replace " / " , ''
$DownloadURL = " https://binaries.webex.com/WebexTeamsDesktop-Windows-Gold/Webex_en.msi "
$File_Name = " $File_Name_Prefix - $Online_Version . $File_Name_Extension "
#Region Script Start
If ( ( Test-Path " C:\Temp\Script Cache " ) -eq $False ) { New-Item -ItemType directory -Path " C:\Temp\Script Cache " }
Invoke-WebRequest -UseBasicParsing " https://scripts.gabesville.com/Gabesville/Powershell-Scripts/raw/branch/main/Functions%20Scripts/Functions.ps1 " -outfile " C:\Temp\Script Cache\Functions.ps1 "
. " C:\Temp\Script Cache\Functions.ps1 "
#Check to see if program is installed
$Applist = Get-Software | Sort-Object -Descending
If ( $Applist . DisplayName -like " * $App_Name * " ) {
#Get currently installed version
$Local_Version = Get-Software | Where-Object { $_ . DisplayName -like " * $App_Name * " } | Select-Object -ExpandProperty DisplayVersion
#Comparing version already installed to what is online
If ( [ version ] $Local_Version -lt [ version ] $Online_Version ) {
Test-Probe_Online
Close-App
Install-App
}
Else { Write-Host " $App_Name already on latest version (Installed version: $Local_Version ) " }
}
Else {
Test-Probe_Online
Install-App
}
2025-08-05 17:33:27 +00:00
#Region Script End