@@ -1,29 +1,78 @@
|
||||
# Learn more about .exe install scripts:
|
||||
# http://fleetdm.com/learn-more-about/exe-install-scripts
|
||||
|
||||
$exeFilePath = "${env:INSTALLER_PATH}"
|
||||
|
||||
$exitCode = 0
|
||||
|
||||
try {
|
||||
|
||||
# Add argument to install silently
|
||||
# Argument to make install silent depends on installer,
|
||||
# each installer might use different argument (usually it's "/S" or "/s")
|
||||
$processOptions = @{
|
||||
FilePath = "$exeFilePath"
|
||||
ArgumentList = "--do-not-launch-chrome --system-level"
|
||||
PassThru = $true
|
||||
Wait = $true
|
||||
}
|
||||
|
||||
# Start process and track exit code
|
||||
$process = Start-Process @processOptions
|
||||
$exitCode = $process.ExitCode
|
||||
# Copy the installer to a public folder so that all can access it
|
||||
# users
|
||||
$exeFilename = Split-Path $exeFilePath -leaf
|
||||
Copy-Item -Path $exeFilePath -Destination "${env:PUBLIC}" -Force
|
||||
$exeFilePath = "${env:PUBLIC}\$exeFilename"
|
||||
|
||||
# Prints the exit code
|
||||
Write-Host "Install exit code: $exitCode"
|
||||
Exit $exitCode
|
||||
# Task properties. The task will be started by the logged in user
|
||||
$action = New-ScheduledTaskAction -Execute "$exeFilePath"
|
||||
$trigger = New-ScheduledTaskTrigger -AtLogOn
|
||||
$userName = Get-CimInstance -ClassName Win32_ComputerSystem |
|
||||
Select-Object -expand UserName
|
||||
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries
|
||||
|
||||
# Create a task object with the properties defined above
|
||||
$task = New-ScheduledTask -Action $action -Trigger $trigger `
|
||||
-Settings $settings
|
||||
|
||||
# Register the task
|
||||
$taskName = "fleet-install-$exeFilename"
|
||||
Register-ScheduledTask "$taskName" -InputObject $task -User "$userName"
|
||||
|
||||
# keep track of the start time to cancel if taking too long to start
|
||||
$startDate = Get-Date
|
||||
|
||||
# Start the task now that it is ready
|
||||
Start-ScheduledTask -TaskName "$taskName" -TaskPath "\"
|
||||
|
||||
# Wait for the task to be running
|
||||
$state = (Get-ScheduledTask -TaskName "$taskName").State
|
||||
Write-Host "ScheduledTask is '$state'"
|
||||
|
||||
while ($state -ne "Running") {
|
||||
Write-Host "ScheduledTask is '$state'. Waiting to run .exe..."
|
||||
|
||||
$endDate = Get-Date
|
||||
$elapsedTime = New-Timespan -Start $startDate -End $endDate
|
||||
if ($elapsedTime.TotalSeconds -gt 120) {
|
||||
Throw "Timed-out waiting for scheduled task state."
|
||||
}
|
||||
|
||||
Start-Sleep -Seconds 1
|
||||
$state = (Get-ScheduledTask -TaskName "$taskName").State
|
||||
}
|
||||
|
||||
# Wait for the task to be done
|
||||
$state = (Get-ScheduledTask -TaskName "$taskName").State
|
||||
while ($state -eq "Running") {
|
||||
Write-Host "ScheduledTask is '$state'. Waiting for .exe to complete..."
|
||||
|
||||
$endDate = Get-Date
|
||||
$elapsedTime = New-Timespan -Start $startDate -End $endDate
|
||||
if ($elapsedTime.TotalSeconds -gt 120) {
|
||||
Throw "Timed-out waiting for scheduled task state."
|
||||
}
|
||||
|
||||
Start-Sleep -Seconds 10
|
||||
$state = (Get-ScheduledTask -TaskName "$taskName").State
|
||||
}
|
||||
|
||||
# Remove task
|
||||
Write-Host "Removing ScheduledTask: $taskName."
|
||||
Unregister-ScheduledTask -TaskName "$taskName" -Confirm:$false
|
||||
|
||||
} catch {
|
||||
Write-Host "Error: $_"
|
||||
Exit 1
|
||||
Write-Host "Error: $_"
|
||||
$exitCode = 1
|
||||
} finally {
|
||||
# Remove installer
|
||||
Remove-Item -Path $exeFilePath -Force
|
||||
}
|
||||
|
||||
Exit $exitCode
|
||||
@@ -1,54 +1,89 @@
|
||||
$softwareName = "Brave"
|
||||
|
||||
# Script to uninstall software as the current logged-in user.
|
||||
$userScript = @'
|
||||
|
||||
# Define acceptable/expected exit codes
|
||||
$ExpectedExitCodes = @(0, 19)
|
||||
|
||||
# Uninstall Registry Key
|
||||
$machineKey = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\BraveSoftware Brave-Browser'
|
||||
$softwareName = "Brave"
|
||||
|
||||
# Additional uninstall args
|
||||
# Using the exact software name here is recommended to avoid
|
||||
# uninstalling unintended software.
|
||||
$softwareNameLike = "*$softwareName*"
|
||||
|
||||
# Some uninstallers require additional flags to run silently.
|
||||
# Each uninstaller might use a different argument (usually it's "/S" or "/s")
|
||||
$uninstallArgs = "--force-uninstall"
|
||||
|
||||
# Initialize exit code
|
||||
$uninstallCommand = ""
|
||||
$exitCode = 0
|
||||
|
||||
try {
|
||||
$key = Get-ItemProperty -Path $machineKey -ErrorAction Stop
|
||||
|
||||
# Get the uninstall command. Some uninstallers do not include 'QuietUninstallString'
|
||||
$uninstallCommand = if ($key.QuietUninstallString) {
|
||||
$key.QuietUninstallString
|
||||
} else {
|
||||
$key.UninstallString
|
||||
}
|
||||
$userKey = `
|
||||
'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*'
|
||||
[array]$uninstallKeys = Get-ChildItem `
|
||||
-Path @($userKey) `
|
||||
-ErrorAction SilentlyContinue |
|
||||
ForEach-Object { Get-ItemProperty $_.PSPath }
|
||||
|
||||
# The uninstall command may contain command and args, like:
|
||||
# "C:\Program Files\Software\uninstall.exe" --uninstall --silent
|
||||
# Split the command and args
|
||||
$splitArgs = $uninstallCommand.Split('"')
|
||||
if ($splitArgs.Length -gt 1) {
|
||||
if ($splitArgs.Length -eq 3) {
|
||||
$uninstallArgs = "$( $splitArgs[2] ) $uninstallArgs".Trim()
|
||||
} elseif ($splitArgs.Length -gt 3) {
|
||||
Throw "Uninstall command contains multiple quoted strings. Please update the uninstall script.`nUninstall command: $uninstallCommand"
|
||||
$foundUninstaller = $false
|
||||
foreach ($key in $uninstallKeys) {
|
||||
# If needed, add -notlike to the comparison to exclude certain similar
|
||||
# software
|
||||
if ($key.DisplayName -like $softwareNameLike) {
|
||||
$foundUninstaller = $true
|
||||
# Get the uninstall command. Some uninstallers do not include
|
||||
# 'QuietUninstallString' and require a flag to run silently.
|
||||
$uninstallCommand = if ($key.QuietUninstallString) {
|
||||
$key.QuietUninstallString
|
||||
} else {
|
||||
$key.UninstallString
|
||||
}
|
||||
$uninstallCommand = $splitArgs[1]
|
||||
}
|
||||
|
||||
Write-Host "Uninstall command: $uninstallCommand"
|
||||
Write-Host "Uninstall args: $uninstallArgs"
|
||||
# The uninstall command may contain command and args, like:
|
||||
# "C:\Program Files\Software\uninstall.exe" --uninstall --silent
|
||||
# Split the command and args
|
||||
$splitArgs = $uninstallCommand.Split('"')
|
||||
if ($splitArgs.Length -gt 1) {
|
||||
if ($splitArgs.Length -eq 3) {
|
||||
$uninstallArgs = "$( $splitArgs[2] ) $uninstallArgs".Trim()
|
||||
} elseif ($splitArgs.Length -gt 3) {
|
||||
Throw `
|
||||
"Uninstall command contains multiple quoted strings. " +
|
||||
"Please update the uninstall script.`n" +
|
||||
"Uninstall command: $uninstallCommand"
|
||||
}
|
||||
$uninstallCommand = $splitArgs[1]
|
||||
}
|
||||
Write-Host "Uninstall command: $uninstallCommand"
|
||||
Write-Host "Uninstall args: $uninstallArgs"
|
||||
|
||||
$processOptions = @{
|
||||
FilePath = $uninstallCommand
|
||||
PassThru = $true
|
||||
Wait = $true
|
||||
}
|
||||
if ($uninstallArgs -ne '') {
|
||||
$processOptions.ArgumentList = "$uninstallArgs"
|
||||
}
|
||||
$processOptions = @{
|
||||
FilePath = $uninstallCommand
|
||||
PassThru = $true
|
||||
Wait = $true
|
||||
}
|
||||
if ($uninstallArgs -ne '') {
|
||||
$processOptions.ArgumentList = "$uninstallArgs"
|
||||
}
|
||||
|
||||
# Start uninstall process
|
||||
$process = Start-Process @processOptions
|
||||
$exitCode = $process.ExitCode
|
||||
Write-Host "Uninstall exit code: $exitCode"
|
||||
# Start the process and track the exit code
|
||||
$process = Start-Process @processOptions
|
||||
$exitCode = $process.ExitCode
|
||||
|
||||
# Prints the exit code
|
||||
Write-Host "Uninstall exit code: $exitCode"
|
||||
# Exit the loop once the software is found and uninstalled.
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if (-not $foundUninstaller) {
|
||||
Write-Host "Uninstaller for '$softwareName' not found."
|
||||
$exitCode = 1
|
||||
}
|
||||
|
||||
} catch {
|
||||
Write-Host "Error: $_"
|
||||
@@ -61,3 +96,79 @@ if ($ExpectedExitCodes -contains $exitCode) {
|
||||
} else {
|
||||
Exit $exitCode
|
||||
}
|
||||
'@
|
||||
|
||||
$exitCode = 0
|
||||
|
||||
# Create a script in a public folder so that it can be accessed by all users.
|
||||
$uninstallScriptPath = "${env:PUBLIC}/uninstall-$softwareName.ps1"
|
||||
$taskName = "fleet-uninstall-$softwareName"
|
||||
try {
|
||||
Set-Content -Path $uninstallScriptPath -Value $userScript -Force
|
||||
|
||||
# Task properties. The task will be started by the logged in user
|
||||
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" `
|
||||
-Argument "$uninstallScriptPath"
|
||||
$trigger = New-ScheduledTaskTrigger -AtLogOn
|
||||
$userName = Get-CimInstance -ClassName Win32_ComputerSystem |
|
||||
Select-Object -expand UserName
|
||||
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries
|
||||
|
||||
# Create a task object with the properties defined above
|
||||
$task = New-ScheduledTask -Action $action -Trigger $trigger `
|
||||
-Settings $settings
|
||||
|
||||
# Register the task
|
||||
Register-ScheduledTask "$taskName" -InputObject $task -User "$userName"
|
||||
|
||||
# keep track of the start time to cancel if taking too long to start
|
||||
$startDate = Get-Date
|
||||
|
||||
# Start the task now that it is ready
|
||||
Start-ScheduledTask -TaskName "$taskName" -TaskPath "\"
|
||||
|
||||
# Wait for the task to be running
|
||||
$state = (Get-ScheduledTask -TaskName "$taskName").State
|
||||
Write-Host "ScheduledTask is '$state'"
|
||||
|
||||
while ($state -ne "Running") {
|
||||
Write-Host "ScheduledTask is '$state'. Waiting to uninstall..."
|
||||
|
||||
$endDate = Get-Date
|
||||
$elapsedTime = New-Timespan -Start $startDate -End $endDate
|
||||
if ($elapsedTime.TotalSeconds -gt 120) {
|
||||
Throw "Timed-out waiting for scheduled task state."
|
||||
}
|
||||
|
||||
Start-Sleep -Seconds 1
|
||||
$state = (Get-ScheduledTask -TaskName "$taskName").State
|
||||
}
|
||||
|
||||
# Wait for the task to be done
|
||||
$state = (Get-ScheduledTask -TaskName "$taskName").State
|
||||
while ($state -eq "Running") {
|
||||
Write-Host "ScheduledTask is '$state'. Waiting for .exe to complete..."
|
||||
|
||||
$endDate = Get-Date
|
||||
$elapsedTime = New-Timespan -Start $startDate -End $endDate
|
||||
if ($elapsedTime.TotalSeconds -gt 120) {
|
||||
Throw "Timed-out waiting for scheduled task state."
|
||||
}
|
||||
|
||||
Start-Sleep -Seconds 10
|
||||
$state = (Get-ScheduledTask -TaskName "$taskName").State
|
||||
}
|
||||
|
||||
} catch {
|
||||
Write-Host "Error: $_"
|
||||
$exitCode = 1
|
||||
} finally {
|
||||
# Remove task
|
||||
Write-Host "Removing ScheduledTask: $taskName."
|
||||
Unregister-ScheduledTask -TaskName "$taskName" -Confirm:$false
|
||||
|
||||
# Remove user script
|
||||
Remove-Item -Path $uninstallScriptPath -Force
|
||||
}
|
||||
|
||||
Exit $exitCode
|
||||
@@ -1,18 +1,18 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "25.001.20432",
|
||||
"version": "25.001.20467",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.adobe.Reader';"
|
||||
},
|
||||
"installer_url": "https://ardownload2.adobe.com/pub/adobe/reader/mac/AcrobatDC/2500120432/AcroRdrDC_2500120432_MUI.dmg",
|
||||
"install_script_ref": "79f66713",
|
||||
"installer_url": "https://ardownload2.adobe.com/pub/adobe/reader/mac/AcrobatDC/2500120467/AcroRdrDC_2500120467_MUI.dmg",
|
||||
"install_script_ref": "9a641d0a",
|
||||
"uninstall_script_ref": "6949c08e",
|
||||
"sha256": "7a668c506c4694bb4f481eb3f6f98f17ee28975366e9547bddbb407238d37718"
|
||||
"sha256": "780491cb985d853e150402530e36ccfb3d85e42919e78aee97792638998d12af"
|
||||
}
|
||||
],
|
||||
"refs": {
|
||||
"6949c08e": "#!/bin/sh\n\n# variables\nLOGGED_IN_USER=$(scutil \u003c\u003c\u003c \"show State:/Users/ConsoleUser\" | awk '/Name :/ { print $3 }')\n# functions\n\nquit_application() {\n local bundle_id=\"$1\"\n local timeout_duration=10\n\n # check if the application is running\n if ! osascript -e \"application id \\\"$bundle_id\\\" is running\" 2\u003e/dev/null; then\n return\n fi\n\n local console_user\n console_user=$(stat -f \"%Su\" /dev/console)\n if [[ $EUID -eq 0 \u0026\u0026 \"$console_user\" == \"root\" ]]; then\n echo \"Not logged into a non-root GUI; skipping quitting application ID '$bundle_id'.\"\n return\n fi\n\n echo \"Quitting application '$bundle_id'...\"\n\n # try to quit the application within the timeout period\n local quit_success=false\n SECONDS=0\n while (( SECONDS \u003c timeout_duration )); do\n if osascript -e \"tell application id \\\"$bundle_id\\\" to quit\" \u003e/dev/null 2\u003e\u00261; then\n if ! pgrep -f \"$bundle_id\" \u003e/dev/null 2\u003e\u00261; then\n echo \"Application '$bundle_id' quit successfully.\"\n quit_success=true\n break\n fi\n fi\n sleep 1\n done\n\n if [[ \"$quit_success\" = false ]]; then\n echo \"Application '$bundle_id' did not quit.\"\n fi\n}\n\n\nremove_launchctl_service() {\n local service=\"$1\"\n local booleans=(\"true\" \"false\")\n local plist_status\n local paths\n local should_sudo\n\n echo \"Removing launchctl service ${service}\"\n\n for should_sudo in \"${booleans[@]}\"; do\n plist_status=$(launchctl list \"${service}\" 2\u003e/dev/null)\n\n if [[ $plist_status == \\{* ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo launchctl remove \"${service}\"\n else\n launchctl remove \"${service}\"\n fi\n sleep 1\n fi\n\n paths=(\n \"/Library/LaunchAgents/${service}.plist\"\n \"/Library/LaunchDaemons/${service}.plist\"\n )\n\n # if not using sudo, prepend the home directory to the paths\n if [[ $should_sudo == \"false\" ]]; then\n for i in \"${!paths[@]}\"; do\n paths[i]=\"${HOME}${paths[i]}\"\n done\n fi\n\n for path in \"${paths[@]}\"; do\n if [[ -e \"$path\" ]]; then\n if [[ $should_sudo == \"true\" ]]; then\n sudo rm -f -- \"$path\"\n else\n rm -f -- \"$path\"\n fi\n fi\n done\n done\n}\n\ntrash() {\n local logged_in_user=\"$1\"\n local target_file=\"$2\"\n local timestamp=\"$(date +%Y-%m-%d-%s)\"\n local rand=\"$(jot -r 1 0 99999)\"\n\n # replace ~ with /Users/$logged_in_user\n if [[ \"$target_file\" == ~* ]]; then\n target_file=\"/Users/$logged_in_user${target_file:1}\"\n fi\n\n local trash=\"/Users/$logged_in_user/.Trash\"\n local file_name=\"$(basename \"${target_file}\")\"\n\n if [[ -e \"$target_file\" ]]; then\n echo \"removing $target_file.\"\n mv -f \"$target_file\" \"$trash/${file_name}_${timestamp}_${rand}\"\n else\n echo \"$target_file doesn't exist.\"\n fi\n}\n\nremove_launchctl_service 'com.adobe.ARMDC.Communicator'\nremove_launchctl_service 'com.adobe.ARMDC.SMJobBlessHelper'\nremove_launchctl_service 'com.adobe.ARMDCHelper.cc24aef4a1b90ed56a725c38014c95072f92651fb65e1bf9c8e43c37a23d420d'\nquit_application 'com.adobe.AdobeRdrCEF'\nquit_application 'com.adobe.AdobeRdrCEFHelper'\nquit_application 'com.adobe.Reader'\nsudo pkgutil --forget 'com.adobe.acrobat.DC.reader.*'\nsudo pkgutil --forget 'com.adobe.armdc.app.pkg'\nsudo pkgutil --forget 'com.adobe.RdrServicesUpdater'\nsudo rm -rf '/Applications/Adobe Acrobat Reader.app'\nsudo rm -rf '/Library/Preferences/com.adobe.reader.DC.WebResource.plist'\ntrash $LOGGED_IN_USER '~/Library/Caches/com.adobe.Reader'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.adobe.Reader'\ntrash $LOGGED_IN_USER '~/Library/HTTPStorages/com.adobe.Reader.binarycookies'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.adobe.AdobeRdrCEFHelper.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.adobe.crashreporter.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.adobe.Install.Reader.plist'\ntrash $LOGGED_IN_USER '~/Library/Preferences/com.adobe.Reader.plist'\ntrash $LOGGED_IN_USER '~/Library/Saved Application State/com.adobe.Reader.savedState'\n",
|
||||
"79f66713": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# install pkg files\nsudo installer -pkg \"$TMPDIR/AcroRdrDC_2500120432_MUI.pkg\" -target /\n"
|
||||
"9a641d0a": "#!/bin/sh\n\n# variables\nAPPDIR=\"/Applications/\"\nTMPDIR=$(dirname \"$(realpath $INSTALLER_PATH)\")\n\n# extract contents\nMOUNT_POINT=$(mktemp -d /tmp/dmg_mount_XXXXXX)\nhdiutil attach -plist -nobrowse -readonly -mountpoint \"$MOUNT_POINT\" \"$INSTALLER_PATH\"\nsudo cp -R \"$MOUNT_POINT\"/* \"$TMPDIR\"\nhdiutil detach \"$MOUNT_POINT\"\n# install pkg files\nsudo installer -pkg \"$TMPDIR/AcroRdrDC_2500120467_MUI.pkg\" -target /\n"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "1.77.100.0",
|
||||
"version": "1.77.101.0",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.brave.Browser';"
|
||||
},
|
||||
"installer_url": "https://updates-cdn.bravesoftware.com/sparkle/Brave-Browser/stable-arm64/177.100/Brave-Browser-arm64.dmg",
|
||||
"installer_url": "https://updates-cdn.bravesoftware.com/sparkle/Brave-Browser/stable-arm64/177.101/Brave-Browser-arm64.dmg",
|
||||
"install_script_ref": "8236d102",
|
||||
"uninstall_script_ref": "e860eed9",
|
||||
"sha256": "f999ee83d7847a58ef533d7147596cd345ec337b2e4ea7d31619ac5acb90762f"
|
||||
"sha256": "6ee662df9a133910a68c71c36b56ec4c932575200318c615f7c3de1d561f8703"
|
||||
}
|
||||
],
|
||||
"refs": {
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "125.2.3",
|
||||
"version": "125.3.6",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.figma.Desktop';"
|
||||
},
|
||||
"installer_url": "https://desktop.figma.com/mac-arm/Figma-125.2.3.zip",
|
||||
"installer_url": "https://desktop.figma.com/mac-arm/Figma-125.3.6.zip",
|
||||
"install_script_ref": "51e6e0ba",
|
||||
"uninstall_script_ref": "d5a2e180",
|
||||
"sha256": "930bcd4782f2dbda7b6e5e3edfd0b884b3ebbbe1448e70422a3296713bb0ca25"
|
||||
"sha256": "2609701885880c8b94261cd35a40d37baa726207baa05edf89737e4d8bb5bc69"
|
||||
}
|
||||
],
|
||||
"refs": {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "135.0.7049.96",
|
||||
"version": "135.0.7049.115",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.google.Chrome';"
|
||||
},
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "135.0.7049.96",
|
||||
"version": "135.0.7049.115",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM programs WHERE name = 'Google Chrome' AND publisher = 'Google LLC';"
|
||||
},
|
||||
"installer_url": "https://dl.google.com/dl/chrome/install/googlechromestandaloneenterprise64.msi",
|
||||
"install_script_ref": "8959087b",
|
||||
"uninstall_script_ref": "d820be68",
|
||||
"uninstall_script_ref": "04facd6e",
|
||||
"sha256": "no_check"
|
||||
}
|
||||
],
|
||||
"refs": {
|
||||
"8959087b": "$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv ${logFile} /i `\"${env:INSTALLER_PATH}`\"\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n",
|
||||
"d820be68": "$product_code = \"{7537FCCC-472F-38B2-93E7-05DD4F526C6D}\"\n\n# Fleet uninstalls app using product code that's extracted on upload\nmsiexec /quiet /x $product_code\nExit $LASTEXITCODE\n"
|
||||
"04facd6e": "$product_code = \"{3AC1073B-083C-3A6C-94BE-7339E0B00CD4}\"\n\n# Fleet uninstalls app using product code that's extracted on upload\nmsiexec /quiet /x $product_code\nExit $LASTEXITCODE\n",
|
||||
"8959087b": "$logFile = \"${env:TEMP}/fleet-install-software.log\"\n\ntry {\n\n$installProcess = Start-Process msiexec.exe `\n -ArgumentList \"/quiet /norestart /lv ${logFile} /i `\"${env:INSTALLER_PATH}`\"\" `\n -PassThru -Verb RunAs -Wait\n\nGet-Content $logFile -Tail 500\n\nExit $installProcess.ExitCode\n\n} catch {\n Write-Host \"Error: $_\"\n Exit 1\n}\n"
|
||||
}
|
||||
}
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "135.0.3179.73",
|
||||
"version": "135.0.3179.98",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.edgemac';"
|
||||
},
|
||||
"installer_url": "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/62b79ad0-71e3-4583-be18-e85c2546f611/MicrosoftEdge-135.0.3179.73.dmg",
|
||||
"installer_url": "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/394fa611-6cff-485f-8c99-b43fcece1f7a/MicrosoftEdge-135.0.3179.98.dmg",
|
||||
"install_script_ref": "bdc4bed3",
|
||||
"uninstall_script_ref": "2ec79299",
|
||||
"sha256": "c82e8845b49c0bf44ad88a4134b9baf0fc078583096d60e6d8992024088c0054"
|
||||
"sha256": "51a6442e7e6defee3b1118a6c1a9e4f28f516c7f66f7c1e86372863fa121a5dc"
|
||||
}
|
||||
],
|
||||
"refs": {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "25060.203.3471.5023",
|
||||
"version": "25079.2107.3576.1611",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.microsoft.teams2';"
|
||||
},
|
||||
"installer_url": "https://statics.teams.cdn.office.net/production-osx/25060.203.3471.5023/MicrosoftTeams.pkg",
|
||||
"installer_url": "https://statics.teams.cdn.office.net/production-osx/25079.2107.3576.1611/MicrosoftTeams.pkg",
|
||||
"install_script_ref": "68cd6c20",
|
||||
"uninstall_script_ref": "f8bcea83",
|
||||
"sha256": "554cc8f8534e54eff2e7c950c6c6fbbd90f7161d5bef0d99c33e7238a869cf07"
|
||||
"sha256": "e580d4691c89ba178edd7b494f2fac981e121fac912c4cb592bf9454c15904ae"
|
||||
}
|
||||
],
|
||||
"refs": {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "4.8.7",
|
||||
"version": "4.9.1",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'notion.id';"
|
||||
},
|
||||
"installer_url": "https://desktop-release.notion-static.com/Notion-4.8.7-arm64.dmg",
|
||||
"installer_url": "https://desktop-release.notion-static.com/Notion-4.9.1-arm64.dmg",
|
||||
"install_script_ref": "11cbfa59",
|
||||
"uninstall_script_ref": "21cd1000",
|
||||
"sha256": "a0fe8d7d3bb200f40e07cfafa1f7409e73838c1bb7d530d5f2564b9061a643df"
|
||||
"sha256": "7e61fe7f644a12be7e355676e8f78a5c525dcb1e70dadd4bb0f952ef6bcff3a7"
|
||||
}
|
||||
],
|
||||
"refs": {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "11.41.4",
|
||||
"version": "11.42.4",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'com.postmanlabs.mac';"
|
||||
},
|
||||
"installer_url": "https://dl.pstmn.io/download/version/11.41.4/osx_arm64",
|
||||
"installer_url": "https://dl.pstmn.io/download/version/11.42.4/osx_arm64",
|
||||
"install_script_ref": "1809f0b2",
|
||||
"uninstall_script_ref": "15e9f11c",
|
||||
"sha256": "4f764d2e75e47fbe9cd43cb32a9df2d1bf482881f757775b78ceb197eccf383a"
|
||||
"sha256": "e0fc86ff2dc42e4c41143b0c648086c03d24e8d64e9e5ad7876cd2cde949397a"
|
||||
}
|
||||
],
|
||||
"refs": {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "2.25.10.72",
|
||||
"version": "2.25.11.76",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'net.whatsapp.WhatsApp';"
|
||||
},
|
||||
"installer_url": "https://web.whatsapp.com/desktop/mac_native/release/?version=2.25.10.72\u0026extension=zip\u0026configuration=Release\u0026branch=relbranch",
|
||||
"installer_url": "https://web.whatsapp.com/desktop/mac_native/release/?version=2.25.11.76\u0026extension=zip\u0026configuration=Release\u0026branch=relbranch",
|
||||
"install_script_ref": "855416a1",
|
||||
"uninstall_script_ref": "1601899d",
|
||||
"sha256": "396cd3ab43dec85b105dbc83ca623c7a26490af261acf7183664330b2f25b428"
|
||||
"sha256": "ac4d757971b351ac780210340723f95eb5a0a74dc599a29968c003c042569ad1"
|
||||
}
|
||||
],
|
||||
"refs": {
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"version": "6.4.5.53616",
|
||||
"version": "6.4.6.53970",
|
||||
"queries": {
|
||||
"exists": "SELECT 1 FROM apps WHERE bundle_identifier = 'us.zoom.xos';"
|
||||
},
|
||||
"installer_url": "https://cdn.zoom.us/prod/6.4.5.53616/ZoomInstallerIT.pkg",
|
||||
"installer_url": "https://cdn.zoom.us/prod/6.4.6.53970/ZoomInstallerIT.pkg",
|
||||
"install_script_ref": "2d889c52",
|
||||
"uninstall_script_ref": "b91fca4d",
|
||||
"sha256": "f1241dbf9bada2f076d32677849d0aecf8a92dcf0002cc3e93e78d7037f815b4"
|
||||
"sha256": "24ec22c90754e7dcf6e4af7c574b51e95df37de72397a27cd085fc526c14008a"
|
||||
}
|
||||
],
|
||||
"refs": {
|
||||
|
||||
Reference in New Issue
Block a user