Up 1 Down 0

Download and Update Bluebeam Revu

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Internet Explorer\Main" -Name "DisableFirstRunCustomize" -Value 2
$ProgressPreference = "SilentlyContinue"
$url = "https://support.bluebeam.com/release-notes-all.html"
$html = Invoke-WebRequest -Uri $url -UseBasicParsing
$pattern = 'Revu\s+(\d+\.\d+(?:\.\d+)?)'
$html.Content -match $pattern
$LatestVersion = $matches[1]
$RevuFound = Get-ChildItem "C:\Program Files\Bluebeam Software\Bluebeam Revu\*\Revu\Revu.exe" -ErrorAction SilentlyContinue | Sort-Object FullName -Descending | Select-Object -First 1
if (-not $RevuFound) {
    $RevuFound = Get-ChildItem "C:\Program Files (x86)\Bluebeam Software\Bluebeam Revu\*\Revu\Revu.exe" -ErrorAction SilentlyContinue | Sort-Object FullName -Descending | Select-Object -First 1
}
if ($RevuFound) {
    $Revu = $RevuFound.FullName
    $InstalledVersion = (Get-ItemProperty $Revu).VersionInfo.FileVersion
} else {
    $InstalledVersion = "Not Found"
}
if ($InstalledVersion -eq "Not Found") {
    Write-Host "Revu not installed - no update needed"
    exit 0
}
Write-Host "Latest: $LatestVersion - Installed: $InstalledVersion"
$UpdateAvailable = $false
if ($InstalledVersion -notlike "*$LatestVersion*") {
    $UpdateAvailable = $true
    Write-Host "Update available"
}
if ($UpdateAvailable) {
    if (Get-Process -Name "Revu" -ErrorAction SilentlyContinue) {
        Write-Host "Bluebeam running, upgrade aborted"
        exit 1
    }
    $Link = "https://bluebeam.com/MSIdeployx64"
    $File = "MSIBluebeamRevux64.zip"
    $Path = "C:\Users\Public\Downloads"
    Invoke-WebRequest -Uri $Link -OutFile $Path\$File -UseBasicParsing
    Expand-Archive $Path\$File $Path -Force
    cmd /c "reg delete 'HKLM\SYSTEM\CurrentControlSet\Control\Session Manager' /v PendingFileRenameOperations /f 2>nul"
    $ocrMsiFile = Get-ChildItem -Path $Path -Filter "BluebeamOCR*.msi" -Recurse | Sort-Object LastWriteTime -Descending | Select-Object -First 1 -ExpandProperty FullName
    Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$ocrMsiFile`" /qn /L*v `"$Path\BluebeamOCR_install.log`"" -Wait
    $revuMsiFile = Get-ChildItem -Path $Path -Filter "Bluebeam Revu*.msi" -Recurse | Sort-Object LastWriteTime -Descending | Select-Object -First 1 -ExpandProperty FullName
    Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$revuMsiFile`" TRANSFORMS=:1043 /qn /L*v `"$Path\BluebeamRevu_install.log`"" -Wait
    Write-Host "Revu updated to v$LatestVersion"
    exit 0
}