<# 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 ($Local_Version -lt $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 } #Region Script End