-
-
Save talkingmoose/a16ca849416ce5ce89316bacd75fc91a to your computer and use it in GitHub Desktop.
#!/bin/zsh | |
:<<'ABOUT_THIS_SCRIPT' | |
----------------------------------------------------------------------- | |
Written by:William Smith | |
Partner Program Manager | |
Jamf | |
bill@talkingmoose.net | |
https://gist.github.com/b6637160b65b751824943ede022daa17 | |
Originally posted: November 19, 2017 | |
Updated: February 13, 2023 | |
Updated: March 8, 2024 | |
Purpose: Downloads and installs the latest available Microsoft | |
product specified directly on the client. This avoids having to | |
manually download and store an up-to-date installer on a | |
distribution server every month. | |
Instructions: Update the linkID value to one of the corresponding | |
Microsoft products in the list and optionally update the sha256Checksum | |
value with a known SHA 256 string. Run the script with elevated | |
privileges. If using Jamf Pro, consider replacing the linkID and | |
sha256Checksum values with "$4" and "$5", entering the ID as script | |
parameters in a policy. | |
Except where otherwise noted, this work is licensed under | |
http://creativecommons.org/licenses/by/4.0/ | |
"You say goodbye and I say exit 0." | |
----------------------------------------------------------------------- | |
ABOUT_THIS_SCRIPT | |
# enter the Microsoft fwlink (permalink) product ID | |
# or leave blank if using a $4 script parameter with Jamf Pro | |
linkID="" # e.g. "525133" for Office 2019 | |
# 525133 - Office 2019 for Mac SKUless download (aka Office 365) | |
# 2009112 - Office 2019 for Mac BusinessPro SKUless download (aka Office 365 with Teams) | |
# 871743 - Office 2016 for Mac SKUless download | |
# 830196 - AutoUpdate download | |
# 2069439 - Edge (Intel Consumer Beta) | |
# 2069340 - Edge (Intel Consumer Dev) | |
# 2069147 - Edge (Intel Consumer Canary) | |
# These no longer work; unable to determine link IDs | |
# XXXXXXX - Edge (Enterprise Stable) | |
# XXXXXXX - Edge (Enterprise Beta) | |
# XXXXXXX - Edge (Enterprise Dev) | |
# Releases sourced from https://www.microsoft.com/en-us/edge/download?form=MA13FJ | |
# 2069148 - Edge (Intel Consumer Stable) | |
# 2093504 - Edge (Apple Silicon Stable) | |
# 2069340 - Edge (Intel Dev) | |
# 2099619 - Edge (Apple Silicon Dev) | |
# 525135 - Excel 2019 SKUless download | |
# 871750 - Excel 2016 SKUless download | |
# 869655 - InTune Company Portal download | |
# 823060 - OneDrive download | |
# 820886 - OneNote download | |
# 525137 - Outlook 2019 SKUless download | |
# 871753 - Outlook 2016 SKUless download | |
# 525136 - PowerPoint 2019 SKUless download | |
# 871751 - PowerPoint 2016 SKUless download | |
# 868963 - Remote Desktop | |
# 800050 - SharePoint Plugin download | |
# 832978 - Skype for Business download | |
# 869428 - Teams Classic | |
# 2249065 - New Teams | |
# 525134 - Word 2019 SKUless download | |
# 871748 - Word 2016 SKUless download | |
# enter the SHA 256 checksum for the download file | |
# download the package and run '/usr/bin/shasum -a 256 /path/to/file.pkg' | |
# this will change with each version | |
# leave blank to to skip the checksum verification (less secure) or if using a $5 script parameter with Jamf Pro | |
sha256Checksum="" # e.g. "67b1e8e036c575782b1c9188dd48fa94d9eabcb81947c8632fd4acac7b01644b" | |
if [ "$4" != "" ] && [ "$linkID" = "" ] | |
then | |
linkID=$4 | |
fi | |
if [ "$5" != "" ] && [ "$sha256Checksum" = "" ] | |
then | |
sha256Checksum=$5 | |
fi | |
# this is the full fwlink URL | |
url="https://go.microsoft.com/fwlink/?linkid=$linkID" | |
# create temporary working directory | |
echo "Creating working directory '$tempDirectory'" | |
workDirectory=$( /usr/bin/basename $0 ) | |
tempDirectory=$( /usr/bin/mktemp -d "/private/tmp/$workDirectory.XXXXXX" ) | |
# change directory to temporary working directory | |
echo "Changing directory to working directory '$tempDirectory'" | |
cd "$tempDirectory" | |
# download the installer package and name it for the linkID | |
echo "Downloading package $linkID.pkg" | |
/usr/bin/curl --location --silent "$url" -o "$linkID.pkg" | |
# checksum the download | |
downloadChecksum=$( /usr/bin/shasum -a 256 "$tempDirectory/$linkID.pkg" | /usr/bin/awk '{ print $1 }' ) | |
echo "Checksum for downloaded package: $downloadChecksum" | |
# install the package if checksum validates | |
if [ "$sha256Checksum" = "$downloadChecksum" ] || [ "$sha256Checksum" = "" ]; then | |
echo "Checksum verified. Installing package $linkID.pkg" | |
/usr/sbin/installer -pkg "$linkID.pkg" -target / | |
exitCode=0 | |
else | |
echo "Checksum failed. Recalculate the SHA 256 checksum and try again. Or download may not be valid." | |
exitCode=1 | |
fi | |
# remove the temporary working directory when done | |
/bin/rm -Rf "$tempDirectory" | |
echo "Deleting working directory '$tempDirectory' and its contents" | |
exit $exitCode |
Is there any option to use that swiftDialog to do this with that transparent download and install.
@mani2care Anything beyond this script would be for you to develop. You're free to repurpose it for your own needs.
Hey, here is a new Link for Stable Edeg: https://go.microsoft.com/fwlink/?linkid=2093504&platform=Mac&Consent=0&channel=Stable&brand=M101
Hello - this may be out of your hands, just utilized your script to download Teams and installed was Teams Classic, not the 'new' version of Teams - Work or School. Any ideas? This may be a Microsoft thing too.
@cbruce2, I just updated this a few days ago and now I'm discovering I have two similar gists out there. I updated this one to match the other.
@cbruce2, I just updated this a few days ago and now I'm discovering I have two similar gists out there. I updated this one to match the other.
Thank you so much for your prompt reply ! I shouldn't have to do anything then? Correct?
@cbruce2, I just updated this a few days ago and now I'm discovering I have two similar gists out there. I updated this one to match the other.
Thank you so much for your prompt reply ! I shouldn't have to do anything then? Correct?
It should be ready to go.
Ok i see! Thank you so much, works now :)