pbowden-msft / maucacheadmin Goto Github PK
View Code? Open in Web Editor NEWMicrosoft AutoUpdate Cache Admin
Microsoft AutoUpdate Cache Admin
MAU v4.23.20051002 seems to be missing in the repository. Latest manifests and pkgs seem to be for v4.22.20042003 when pulling down new manifests/pkgs with MAUCacheAdmin.
Thanks,
Scott
Every of defined values of CHANNEL_COLLATERAL_* ends with '/' symbol
URL for downloading builds.txt
by curl, looks like:
http://officecdn-microsoft-com.akamaized.net/pr/C1297A47-86C4-4C1F-97FA-950631F94777/OfficeMac//builds.txt
- double symbol '/' before builds.txt
Here - duplicated '/' character appears
Line 117 in 0bff64d
should be (if I'm not mistaken):
(cd "$SCRATCH_AREA" && curl --progress-bar --remote-name --location "$CHANNELURL""builds.txt")
When running MAUCacheAdmin under Ubuntu 16.04.1, I got the error /usr/local/MAUCacheAdmin: 33: /usr/local/MAUCacheAdmin: function: not found
. This is because the function
keyword is specific to bash—under the sh shell, parenthesis are expected.
Changing the shebang to #!/bin/bash fixed the problem. You could also make the syntax more portable by changing the functions to the proper parenthetical form, i.e.:
foo () {
echo "hello world"
}
Hi, Excellent work on the script, its saving me loads in bandwidth, and loads of time in downloading massive updates.
I'm having an issue where I get the following line each time I run:
Package https://officecdn.microsoft.com/pr/C1297A47-86C4-4C1F-97FA-950631F94777/OfficeMac/SkypeForBusinessUpdater-16.15.166.pkg exists in the cache but is corrupt ...removing
But it must not actually remove the file, because the same line shows up in the next run of the script. If I manually delete the file and rerun the script I get the following:
stat: cannot stat 'SkypeForBusinessUpdater-16.15.166.pkg': No such file or directory
expr: syntax error
Thanks for any help you can provide
Hello,
I was looking to add support for Remote Help and when looking here I noticed that Quick Assist was also missing from MAUCacheAdmin.
It appears that Remote Help and Quick Assist are missing the -chk.xml file (https://officecdnmac.microsoft.com/pr/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/0409MSRH01-chk.xml and https://officecdnmac.microsoft.com/pr/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/0409MSQA01-chk.xml returns a 404).
Is this expected?
The PowerShell module relies on the -chk.xml for pulling version and more importantly datetime information (so it can write the date to the downloaded files date modified and perform a kind of "robocopy" style file modified check).
I can probably work around this for apps that don't have a -chk.xml, but just wanted to check to see if this is intended before spending any time on it. 😊
Thanks,
Nick
I found https://officecdn.microsoft.com/pr/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/0409ONDR18.xml is not updated/synced with released version at https://support.office.com/en-us/article/onedrive-release-notes-845dcf18-f921-435e-bf28-4e24b95e5fc0?ui=en-US&rs=en-US&ad=US#mac anymore, OneDrive stays at version 19.086.0502.
Hey,
Love using MAUcacheAdmin in our environment, makes updating labs much more efficient. I have updated the tool to version 2.9 with Teams and Edge added (Thank you), is there any plan to add vscode to the mix?
Thanks in advance,
Kamal
I've got 404 for all office 19 products.
VERBOSE: GET https://officecdn-microsoft-com.akamaized.net/pr/C1297A47-86C4-4C1F-97FA-950631F94777/OfficeMac/0409MSWD19.cat with 0-byte payload
Invoke-WebRequest : Server Error
404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
VERBOSE: GET https://officecdn-microsoft-com.akamaized.net/pr/C1297A47-86C4-4C1F-97FA-950631F94777/OfficeMac/0409XCEL19.cat with 0-byte payload
Invoke-WebRequest : Server Error
404 - File or directory not found.
VERBOSE: GET https://officecdn-microsoft-com.akamaized.net/pr/C1297A47-86C4-4C1F-97FA-950631F94777/OfficeMac/0409PPT319.xml with 0-byte payload
Invoke-WebRequest : Server Error
404 - File or directory not found.
The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.
MauCacheAdmin is not pulling down current version of OneDrive. Current version shown at macadmins.software is 19.174.0902. MCA only pulls down 19.086.0502 installer and manifest reflects the same.
Thanks,
Scott
We are seeing an issue when using local cache/manifest servers and MAU version 14.16.19101301, where if there are no available updates MAU shows a false error that "AutoUpdate cannot connect to the update server", instead of some kind of message saying that there are no updates available. The servers are 100% reachable, so this definitely seems to be a false error. Any suggestions on how to correct this or how to correctly show that there are no updates available?
Thanks,
Scott
Maybe, it is our proxy, maybe not...
If I execute e.g. curl --head -s https://officecdnmac.microsoft.com/pr/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_Word_16.30.19101301_Updater.pkg
, then I get all header fields in lowercase, e.g. content-length: 1062155591
. The problem is that MAUCacheAdmin
matches in a case-sensitive-way: awk '/Content-Length/
and fails to find the data.
It all ends up with expr: syntax error
, then MAUCacheAdmin
assuming that the download is corrupt and redownloading...
Hello,
While looking at the logs for some of our MAU Cache servers I'm seeing failed requests for newer versions of Edge that MAU shouldn't be aware of...
EG: MicrosoftEdgeUpdate-117.0.2045.55.pkg
Only possibility I can think of is that the new Edge Updater is trying to use the MAU Cache Server setting?
If this is the case, it would be good if there was a known way to cache these files.
I'll keep investigating on our end and update this as I find more details.
Pardon my ignorance,
while I am able to fetch the latest Packages (as shown by OfficeCDNCheck) with InstallerCache, e.g. Microsoft_Word_16.16.20021000_Installer.pkg and Microsoft_AutoUpdate_4.20.20021800_Updater.pkg, MAUCacheAdmin only lets me fetch older versions 16.16.18111001 and AutoUpdater 4.5.18110402.
Is this expected behaviour (and if so, why) or am I doing it wrong?
Thanks
Hey Paul,
Collateral for remote desktop is currently listing the <key>Update Version</key>
as "983" and as such the collateral is getting put into a folder with that name.
Earlier in March, with MRD 10.1.2 for example, that key and thus folder were "10.1.2" and matched the version being delivered by the package.
Not sure if this is intended or not but wanted to point it out since it doesn't match the behavior of other applications being downloaded by the MAUCacheAdmin tool.
Thanks!
Hi, wondering if it would be possible to add some automatic cleanup of older packages into the script? I keep running into issues where my cache is growing a bit too big, and I manually go through and clean out some older packages to free space. Thoughts?
Thanks again for an awesome script (:
Matt
Hello,
Sorry if this is not the right repo to log this.
Happy to log a Premier Support Case with MS if that's more appropriate.
We are seeing an issue where files headers are changing quite often ( every few seconds ).
For EG using Powershell to reproduce:
$uri = "https://officecdnmac.microsoft.com/pr/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_Excel_16.30.19101301_Updater.pkg"
$webRequest = Invoke-WebRequest -Uri $uri -Method Head -UseBasicParsing
$webRequest.Headers
#Key Value
#--- -----
#ApiVersion Distribute 1.1
#Content-Disposition attachment; filename=Microsoft_Excel_16.30.19101301_Updater.pkg; filename*=UTF-#8''Microsoft_Excel_16.30.19101301_Updater.pkg
#X-Azure-Ref 01NMWYwAAAACYwdL1QsBoSr6JkQGl467sQ0hHRURHRTE1MDgAY2VmYzI1ODMtYTliMi00NGE3LTk3NTUtYjc2ZDE3ZTA1Zjdm
#X-Cache TCP_HIT from a203-9-184-5.deploy.akamaitechnologies.com (AkamaiGHost/10.9.4-44125806) (-)
#Connection keep-alive
#Akamai-GRN 0.05b809cb.1663903361.efc4a3
#Akamai-Cache-Status Hit from child
#Strict-Transport-Security max-age=15768000 ; includeSubDomains
#Accept-Ranges bytes
#Content-Length 816040840
#Cache-Control public, max-age=259200
#Content-Type application/octet-stream
#Date Fri, 23 Sep 2022 03:22:41 GMT
#ETag "0x108CBCE87986A86D7E1FF5388091F8D93A750ECE1881D076087F7AA0032506CC"
#Last-Modified Tue, 15 Oct 2019 17:36:50 GMT
# A Few second later:
$uri = "https://officecdnmac.microsoft.com/pr/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_Excel_16.30.19101301_Updater.pkg"
$webRequest = Invoke-WebRequest -Uri $uri -Method Head -UseBasicParsing
$webRequest.Headers
#Key Value
#--- -----
#Content-Disposition attachment; filename=Microsoft_Excel_16.30.19101301_Updater.pkg
#Akamai-GRN ,,,0.0db809cb.1663903368.5d6e0ff
#X-Cache TCP_HIT from a203-9-184-13.deploy.akamaitechnologies.com (AkamaiGHost/10.9.4-44125806) (-)
#Connection keep-alive
#Akamai-Cache-Status Hit from child
#Strict-Transport-Security max-age=15768000 ; includeSubDomains
#Accept-Ranges bytes
#Content-Length 816040840
#Cache-Control public, max-age=259200
#Content-Type application/octet-stream
#Date Fri, 23 Sep 2022 03:22:48 GMT
#ETag "ad649b9fa882d51:0"
#Last-Modified Mon, 14 Oct 2019 16:01:22 GMT
#Server Microsoft-IIS/10.0
#X-Powered-By ASP.NET
When I saw MAUCacheAdmin redownloading files every time I had the idea that maybe storing the ETag between runs might be a better way but as you can see the ETag also changes.
Cheers,
Nick
I diffed the two config profiles but there's no differences between them. Is that supposed to be the case?
Hello,
I have updated to the newest version of MAUCacheAdmin but I am not seeing 4.13 collateral or .pkg being downloaded. I have received all updates for Office Version 16.27 (Build 19071500)
https://docs.microsoft.com/en-us/officeupdates/release-history-microsoft-autoupdate
July 2019 release
Release Date: July 16, 2019
Microsoft Auto Update 4.13
Thanks.
Hello,
With the new Teams app coming out, MS decided to rename Microsoft Teams.app
to Microsoft Teams classic.app
.
And the new Teams client is named Microsoft Teams (work or school).app
with BundleID of com.microsoft.teams2
.
Are there going to be new collaterals for the new Teams client or does MAU no longer manage the updates for the new Teams?
On a side note, in our MAU MDM Config Payload we specify the Applications array and now that the teams app has been renamed it appears that MAU is no longer managing it. Should we be adding a duplicate entry for /Applications/Microsoft Teams.app
with the path /Applications/Microsoft Teams classic.app
?
Thanks,
Nick
Our network security team recently blocked all downloads from the MS CDNs, yay. I am working on building in-house cache and manifest servers. I have it all working. My question is how do we (or can we even) specify a version that MAUCacheAdmin downloads? For instance, we stay one release behind, current version we are deploying being 16.28 but MAUCacheAdmin pulled down everything for 16.29. Is it possible to specify the version to cache? Can't see to find this info anywhere.
Thanks!!!
Scott
The "Teams_OSX.pkg" file is always reported as corrupt on our MAUCacheAdmin installations which causes it to redownload each run. I think I figured it out as due to how the GetDownloadSize
function returns the online file size.
The Teams CDN download link (https://statics.teams.cdn.office.net/production-osx/1.5.00.11157/Teams_osx.pkg
as of today) returns the following to the GetDownloadSize
function's CONTENTHTTPLENGTH=$(curl --head -s $URL | grep -i 'Content-Length' | cut -d ' ' -f2)
line:
110546899
x-ms-request-id,Server,x-ms-version,Content-Type,Last-Modified,ETag,Content-MD5,x-ms-lease-status,x-ms-lease-state,x-ms-blob-type,Accept-Ranges,Content-Length,Date,Transfer-Encoding
Note the second line which is coming from the access-control-expose-headers
line being returned by the Teams CDN and subsequently being included in the CONTENTHTTPLENGTH
result due to grep finding Content-Length
twice.
If you run the exact same CONTENTHTTPLENGTH
command against a standard Office CDN URL (let's say https://officecdnmac.microsoft.com/pr/C1297A47-86C4-4C1F-97FA-950631F94777/MacAutoupdate/Microsoft_Word_16.63.22071301_Updater.pkg
) it returns only a single line with the file size, as expected.
What really trips up the GetDownloadSize
function is the next part which strips out everything but numbers: CONTENTLENGTH=$(echo ${CONTENTHTTPLENGTH//[!0-9]/})
Normally this would work but because there's that extra line and it includes Content-MD5
within it, all of a sudden our Teams download size becomes 1105468995 and since that's obviously wrong when compared to the actual downloaded file size the pkg is flagged as corrupt.
The quickest fix (not sure about any potential knock-on effects though) appears to be changing the grep command within GetDownloadSize
to look for Content-Length:
—including the colon because it is present in the expected Content-Length:
line of the headers (from both CDNs) but not the access-control-expose-headers
line from the Teams CDN.
With the colon in there MAUCacheAdmin retrieves a single line of content-length from the Teams CDN and doesn't add the extra 5 to the reported download size, resulting in no more incorrectly-reported corruption.
Thank you for the script. Is it possible to add Microsoft Teams to the Cache?
@pbowden-msft Thanks for writing this script!
Any way to add notifications to a Teams channel?
Please add a -insider switch to allow pulling of the current insider cache locally.
Thanks,
I don't know why, but some macOS devices with office applications in our environment have another IDs in com.microsoft.autoupdate2
Applications = {
"/Applications/Microsoft Excel.app" = {
"Application ID" = XCEL16;
LCID = 1033;
};
"/Applications/Microsoft OneNote.app" = {
"Application ID" = ONMC16;
LCID = 1033;
};
"/Applications/Microsoft Outlook.app" = {
"Application ID" = OPIM16;
LCID = 1033;
};
"/Applications/Microsoft PowerPoint.app" = {
"Application ID" = PPT316;
LCID = 1033;
};
"/Applications/Microsoft Word.app" = {
"Application ID" = MSWD16;
LCID = 1033;
};
"/Library/Application Support/Microsoft/MAU2.0/Microsoft AutoUpdate.app" = {
"Application ID" = MSau03;
LCID = 1033;
};
Do you see? It's 16, not 15.
And psMacUpdatesOFFICE.ps1 doesn't download xml and cat files for this IDs.
If I change $MAUID_WORD2016="0409MSWD16", everything is ok.
I see in console:
VERBOSE: Performing the operation "Copy File" on target "Item: C:\Temp\maucache\0409MSWD16.xml Destination: C:\Temp\maucache\16.13.18052304\0409MSWD16.xml".
VERBOSE: Performing the operation "Copy File" on target "Item: C:\Temp\maucache\0409MSWD16.cat Destination: C:\Temp\maucache\16.13.18052304\0409MSWD16.cat".
and in autoupdate.log
[Microsoft AutoUpdate] Downloading http://srv-sccm-ps/officeupdates/0409MSWD16.xml
[Microsoft AutoUpdate] Successfully Downloaded http://srv-sccm-ps/officeupdates/0409MSWD16.xml
[Microsoft AutoUpdate] Found 1 updates.
[Microsoft AutoUpdate] Request update filtering
[Microsoft AutoUpdate] Bypass service for MSWD16 update due to old age
[Microsoft AutoUpdate] No applicable updates to filter
[Microsoft AutoUpdate] Set update - Main Thread? No, 1 pending update(s).
[Microsoft AutoUpdate] Check for update - Updates Found: Count 1
[Microsoft AutoUpdate] Found updates
[Microsoft AutoUpdate] TemplateAInstall
[Microsoft AutoUpdate] Begin Downloading Selected Apps Microsoft_Word_16.13.18052304_Updater.pkg [1074.51 MB]: Yes,
[Microsoft AutoUpdate] Server is Reachable
[Microsoft AutoUpdate] Downloading update: Word Update 16.13.1 (18052304)
[Microsoft AutoUpdate] Downloading http://srv-sccm-ps/officeupdates/Microsoft_Word_16.13.18052304_Updater.pkg
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.