Upload files to "App Update Scripts"
This commit is contained in:
@@ -0,0 +1,157 @@
|
|||||||
|
<#
|
||||||
|
Author: Gabe Kerntke
|
||||||
|
Date: 07-19-2024
|
||||||
|
|
||||||
|
.Synopsis
|
||||||
|
Script to update Adobe on machines
|
||||||
|
Checks online for the newest version and will either grab it from the probe if it has it or download it from online and updates to that newest version.
|
||||||
|
Will update either 64 or 32 bit version(whichever is detected)
|
||||||
|
Does both Reader and Acrobat Pro versions
|
||||||
|
|
||||||
|
.Modified
|
||||||
|
2024-07-19 (GabeK) - Original script created
|
||||||
|
2025-07-01 (GabeK) - Updated script to use functions script
|
||||||
|
2025-07-30 (GabeK) - Updated script to find pro vs standard reader versions
|
||||||
|
#>
|
||||||
|
|
||||||
|
[CmdletBinding()]
|
||||||
|
Param(
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
$App_Name = "Adobe Acrobat",
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
$File_Name_Extension = "msp",
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
$Install_Parameters = "/quiet /norestart",
|
||||||
|
[Parameter(Mandatory = $false)]
|
||||||
|
$EPCache_Folder = "3rd Party Patches\$App_Name"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Define a script block that contains the Invoke-WebRequest command
|
||||||
|
$scriptBlock = {
|
||||||
|
(Invoke-WebRequest -UseBasicParsing -Headers @{
|
||||||
|
"accept" = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"
|
||||||
|
"accept-encoding" = "gzip, deflate, br"
|
||||||
|
"accept-language" = "en-GB,en;q=0.9,en-US;q=0.8"
|
||||||
|
} -Uri "https://www.adobe.com/devnet-docs/acrobatetk/tools/ReleaseNotesDC/index.html#").Links.outerHTML -like "*continuous/*" | Select-Object -First 2 | Select-Object -Last 1
|
||||||
|
}
|
||||||
|
#Start a new PowerShell background job and pass the script block to it
|
||||||
|
$job = Start-Job -ScriptBlock $scriptBlock
|
||||||
|
|
||||||
|
#Wait for the job to complete
|
||||||
|
$timeout = 30
|
||||||
|
Wait-Job $job -timeout $timeout | Out-Null
|
||||||
|
|
||||||
|
#Get the output from the job and display it
|
||||||
|
$output = Receive-Job $job
|
||||||
|
$A = $output.Substring(125)
|
||||||
|
$B = $A.Substring(0, $A.Length - 38)
|
||||||
|
$Online_Version = $B -replace "[^\d*\.?\d*$/]" , ''
|
||||||
|
|
||||||
|
#Gets second half of URL of newest version
|
||||||
|
$psi = New-Object System.Diagnostics.ProcessStartInfo
|
||||||
|
$psi.FileName = 'powershell.exe'
|
||||||
|
$psi.Arguments = "(Invoke-WebRequest -UseBasicParsing -Headers @{
|
||||||
|
'accept'='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
|
||||||
|
'accept-encoding'='gzip, deflate, br'
|
||||||
|
'accept-language'='en-GB,en;q=0.9,en-US;q=0.8'
|
||||||
|
} -Uri 'https://www.adobe.com/devnet-docs/acrobatetk/tools/ReleaseNotesDC/index.html#').Links.href -like 'continuous/*' | Select-Object -First 1"
|
||||||
|
$psi.RedirectStandardOutput = $true
|
||||||
|
$psi.UseShellExecute = $false
|
||||||
|
|
||||||
|
$process = [System.Diagnostics.Process]::Start($psi)
|
||||||
|
$output = $process.StandardOutput.ReadToEnd()
|
||||||
|
$process.WaitForExit()
|
||||||
|
|
||||||
|
#combines the first and second half URLs for latest version's URL
|
||||||
|
$CombinedURL = "https://www.adobe.com/devnet-docs/acrobatetk/tools/ReleaseNotesDC/$output"
|
||||||
|
|
||||||
|
# Functions #
|
||||||
|
Function Get-Download_URL {
|
||||||
|
#gets link
|
||||||
|
$psi = New-Object System.Diagnostics.ProcessStartInfo
|
||||||
|
$psi.FileName = 'powershell.exe'
|
||||||
|
$psi.Arguments = "(Invoke-WebRequest -UseBasicParsing -Headers @{
|
||||||
|
'accept'='text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9'
|
||||||
|
'accept-encoding'='gzip, deflate, br'
|
||||||
|
'accept-language'='en-GB,en;q=0.9,en-US;q=0.8'
|
||||||
|
} -Uri $CombinedURL).Links.href -like '$MSP_File'"
|
||||||
|
$psi.RedirectStandardOutput = $true
|
||||||
|
$psi.UseShellExecute = $false
|
||||||
|
|
||||||
|
$process = [System.Diagnostics.Process]::Start($psi)
|
||||||
|
$output = $process.StandardOutput.ReadToEnd()
|
||||||
|
$process.WaitForExit()
|
||||||
|
Return $output
|
||||||
|
}
|
||||||
|
|
||||||
|
Function Install-Adobe {
|
||||||
|
#Get currently installed version
|
||||||
|
$Local_Version = Get-Software | Where-Object { $_.DisplayName -like "*$App_Name*" } | Select-Object -ExpandProperty DisplayVersion
|
||||||
|
. "C:\Temp\Script Cache\Functions.ps1"
|
||||||
|
|
||||||
|
#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)" }
|
||||||
|
}
|
||||||
|
|
||||||
|
#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*64-bit*") {
|
||||||
|
$SCAPackageLevel = Get-ItemProperty -Path "HKLM:\SOFTWARE\Adobe\Adobe Acrobat\DC\Installer\" -Name "SCAPackageLevel" | Select-Object -ExpandProperty SCAPackageLevel
|
||||||
|
$InstallPathx64 = "C:\Program Files\Adobe\Acrobat DC\Acrobat"
|
||||||
|
If ($SCAPackageLevel -eq 1) {
|
||||||
|
Write-Host "Adobe Reader is installed, SCAPackageLevel=$SCAPackageLevel"
|
||||||
|
If (Test-Path "$InstallPathx64\ReaderMenuCoreApp.msix") {
|
||||||
|
Write-Host "Adobe Reader verified via path."
|
||||||
|
$File_Name_Prefix = "Adobe-Reader-x64"
|
||||||
|
$File_Name = "$File_Name_Prefix-$Online_Version.$File_Name_Extension"
|
||||||
|
$MSP_File = "*AcroRdrDCx64*_MUI.msp"
|
||||||
|
$DownloadURL = Get-Download_URL
|
||||||
|
Install-Adobe
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ElseIf ($SCAPackageLevel -ne 1) {
|
||||||
|
Write-Host "Adobe Acrobat Pro is installed, SCAPackageLevel=$SCAPackageLevel"
|
||||||
|
If (Test-Path "$InstallPathx64\AcrobatMenuCoreApp.msix") {
|
||||||
|
Write-Host "Adobe Acrobat Pro verified via path."
|
||||||
|
$File_Name_Prefix = "Adobe-Acrobat-x64"
|
||||||
|
$File_Name = "$File_Name_Prefix-$Online_Version.$File_Name_Extension"
|
||||||
|
$MSP_File = '*AcrobatDCx64*'
|
||||||
|
$DownloadURL = Get-Download_URL
|
||||||
|
Install-Adobe
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Elseif ($Applist.DisplayName -like "$App_Name*") {
|
||||||
|
$InstallPathx32 = "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader"
|
||||||
|
#Test-Path "C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"
|
||||||
|
If (Test-Path "$InstallPathx32\ReaderMenuCoreApp.msix") {
|
||||||
|
Write-Host "Adobe Reader installed, verified via path."
|
||||||
|
$File_Name_Prefix = "Adobe-Reader-x32"
|
||||||
|
$File_Name = "$File_Name_Prefix-$Online_Version.$File_Name_Extension"
|
||||||
|
$MSP_File = "*AcroRdrDCUpd*_MUI.msp"
|
||||||
|
$DownloadURL = Get-Download_URL
|
||||||
|
Install-Adobe
|
||||||
|
}
|
||||||
|
ElseIf (Test-Path "$InstallPathx32\AcrobatMenuCoreApp.msix") {
|
||||||
|
Write-Host "Adobe Acrobat Pro installed, verified via path."
|
||||||
|
$File_Name_Prefix = "Adobe-Acrobat-x32"
|
||||||
|
$File_Name = "$File_Name_Prefix-$Online_Version.$File_Name_Extension"
|
||||||
|
$MSP_File = '*AcrobatDCUpd*'
|
||||||
|
$DownloadURL = Get-Download_URL
|
||||||
|
Install-Adobe
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Else { Write-Host "$App_Name not installed, exiting script" }
|
||||||
|
#Region Script End
|
||||||
Reference in New Issue
Block a user