Posted on 09-09-2015 05:51 AM
See my reply to my own post below...I was interested in seeing the difference between the volume license build and the Office 365 build of MS Office 2016. Was referred to Rich's post. Had read it it and was insightful, but wanted to understand Microsoft's logic in creating this weird installer. I think I get it now and posted my findings below. Basically, I figured out how the com.microsoft.office.licensingV2.plist file is generated during installation in the GUI.
Posted on 11-13-2015 08:44 AM
How to implement Choices.xml in to my JSS Policy?
This has been a very enlightening thread and I have been able to install the Full Office 2016 Volume License with "my" Choices.xml file locally via CLI and it works perfectly. What I do not know and am looking forward to learning, is how to implement the Choices.xml file into my current JSS policy. The policy is configured with the "MS Office 2016 v15.14 Volume License.pkg" installer set to priority 10 and the " MS Office 2016 v15.14 License File.pkg" (packaged with composer) set to priority 11. They run in the correct order and I get a fully installed, licensed Office suite. However, I do want to suppress One note, AutoUpdate and the License volume with my Choices file. Can anyone expand on this and help me learn the proper way to do this? Many Thanks in advance for your help!
Posted on 11-13-2015 08:54 AM
That was the fun part...I got mine working, but I had to get uh..."creative"...lets go with that.
What I did was build a new .pkg containing Microsoft_Office_2016_Volume_Installer.pkg, the choices.xml and the com.microsoft.office.licensingV2.plist. I had the PKG file I created drop those three files to /private/var/tmp. As part of my pkg, I wrote a postinstall script contained below:
#!/bin/sh
# This command installs the actual Microsoft Office Installer package with my choices.xml file applied from /private/var/tmp.
installer -pkg /private/var/tmp/Microsoft_Office_2016_Volume_Installer.pkg -target / -applyChoiceChangesXML /private/var/tmp/choices.xml
# This command removes the Microsoft-supplied installer from /private/var/tmp
rm -R -f /private/var/tmp/Microsoft_Office_2016_Volume_Installer.pkg
# This command removes the choices.xml file from /private/var/tmp
rm -R -f /private/var/tmp/choices.xml
# This command moves (not copies) the licensing file from /private/var/tmp to it's correct location
mv -f /private/var/tmp/com.microsoft.office.licensingV2.plist /Library/Preferences/com.microsoft.office.licensingV2.plist
#This command properly sets ownership on that file
chown root:wheel /Library/Preferences/com.microsoft.office.licensingV2.plist
exit 0
It's kinda kludgy but it works and has been used here on whole labs already.
Posted on 11-20-2015 08:01 AM
When you first open an office 2016 app and click save the default save location is "Online Locations" and there is a button for "On my Mac" which then stays as the default once its chosen. Has anyone found out where this setting is saved or how to make it the default for users when they first open the applications. From my testing with Composer snapshots and other experiments it is not saved in any user level location and they changing of the setting does not appear to update or add any file on the file system.
EDIT: Answer https://jamfnation.jamfsoftware.com/discussion.html?id=17045
Posted on 11-21-2015 03:21 PM
I'm not sure what we're trying to fix here. I think I missed the beginning of this conversation which apparently is in another thread.
I just downloaded the Volume Installer from my company's VLSC, and ran it on a test imaging configuration. After reboot, I logged into a local test account I created during imaging. I launched Word, and I got the following window. Is this what we're trying to get rid of?
Posted on 11-21-2015 03:25 PM
You'll have to manually install Office 2016, then capture the licence file (Composer or Packages). Once you have it, you'll have to deploy it separately. It's an issue with the VL installer.
Licence file located at:
/Library/Preferences/com.microsoft.office.licensingV2.plist
Posted on 11-21-2015 03:31 PM
@Abdiaziz That doesn't really answer my question. Is keeping that window from popping up what this thread is about?
Posted on 11-21-2015 03:36 PM
Out client has Office 2016 Volume License (not 365) and we have been following @timsutton and @rtrouton guidelines quite successfully, in our case deploying this file separately, along with suppression:
/Library/Preferences/com.microsoft.office.licensingV2.plist
Posted on 11-21-2015 03:36 PM
Kinda, there's multiple things being talked about in this post.This post is mostly about the issues with the 2016 installer.
To get rid of the window you're seeing, you'll have to do what my last post talked about.
Posted on 11-21-2015 03:59 PM
OK, from what I can gather reading all the disparate posts, I have to create that file by running one of the apps and "licensing" it? Then create a DMG in Composer to go along with the installation when I have to deploy to many computers. Is this correct?
I also don't want to deploy the AutoUpdater because we handle updates for our users, and I don't want them to get any prompts saying there's an update available. So, is this what the "choices.xml" discussion is about?
Posted on 11-21-2015 05:02 PM
Yes I remember reading about that license file being distributed to 365 users being unsupported but we have a proper Volume License so it works for us.
Posted on 11-21-2015 05:26 PM
@donmontalvo Huh? I'm talking about the same thing you said previously. Deploying that
/Library/Preferences/com.microsoft.office.licensingV2.plist
This is extremely confusing. I just want to know how to actually get it in the first place. I have a Volume License. So, from what I understand, I have to:
Is this the sequence?
Posted on 11-21-2015 05:48 PM
Number 2 is not required with a volume license, and not supported if required. We never had to sign into anything on our volume license. Maybe you are on 365?
Posted on 11-21-2015 07:10 PM
@donmontalvo No, I ran this loaded into JSS, and part of an imaging config. I was just testing it out.
I think that what you guys are saying is to just install it right off the desktop once manually to capture that license plist.
Posted on 11-21-2015 07:39 PM
I think that what you guys are saying is to just install it right off the desktop once manually to capture that license plist.
Yup! Capture as a .pkg
Posted on 11-21-2015 08:21 PM
Keep in mind that capturing the licensing file from one machine and redistributing it to other computers is what Microsoft would refer to as "non-supportable," and may at some point no longer work. The next update to the VL version of Office, version 15.17, is due in December, and is said to include a package that administrators can distribute to the machines they administer to correctly generate the license file in such a way that is supportable.
If you aren't already there, you definitely want to join #microsoft-office on the MacAdmins Slack. Paul Bowden, an engineer with Microsoft, has been an active participant recently, and he has provided a ton of very useful information regarding Office 2016, not to mention been receptive to suggestions that the Mac administrator community have had about ways to make Office easier on administrators.
Posted on 11-21-2015 08:22 PM
Sorry for being slow. I found this thread when I searched for a comparison between volume installer and 365 installer.
I just didn't know there were all these issues with this installer that people were getting worked up about (and Office 2011 for that matter). I've been deploying 2011 for a number of years, and the most annoying thing is that Office Assistant coming up post-install when a user launches it. Now, I know I could've made it skip that with a hack.
So this thread is basically about the same thing.
Posted on 11-22-2015 05:15 AM
@itupshot Sort of. With the volume licensing version of Office 2016, the installer attempts to launch the "Microsoft Office Setup Assistant.app" as the current user. If that fails (say, if you have an administrator trying to run the installer silently in the background, for example), the licensing file never gets created, and the software defaults to Office 365 licensing mode (versus site licensing). So, if you are in an organization that doesn't use Office 365, that's a major problem, as users wouldn't even be able to use Office in that state.
As I mentioned upthread, though, Microsoft is making some changes to the VL installer with the December release. They're spinning out the Volume Licensing into it's own installer, allowing administrators to more easily deploy Office 2016 silently. Stay tuned for more on that.
Posted on 11-22-2015 07:03 AM
@blackholemac So, in the end, the bigger package that you created contains your choices.xml and the com.microsoft.office.licensingV2.plist just loose in there?
I thought of putting the latter in a DMG created with Composer along with plists that disable the "first-run" windows according to the blog that @calumhunter referenced. I tested those plists last night, and it worked to skip those screens. So, I thought of a Composer DMG that places the plists right after the Office installer. However, from your example, I suppose I can just include them within this bigger package, and use a postinstall script to move them to the right location.
The difference in my company's environment is that we are, in fact, upgrading to Office 365 with all the bells and whistles. So, I can't fiddle too much with the installer.
I just want our VL to be set, and then when the users first launch Outlook (because it's the first thing they always launch), they (or IT) can enter their account creds so they can use our company's new Office 365 service. What I'm wondering is if one logs into Office 365 on one app (like Outlook), it'll pass the info to all the apps so they don't have to enter that again.
I also don't want the AutoUpdate to install since IT will handle updates via JSS. So I want to get rid of this from popping up when they first run one of the apps:
Someone else referenced an article that discusses how to get rid of it, so I'll follow those instructions.
Posted on 11-22-2015 07:26 AM
Sorry I missed your post there. I took so long typing mine that I didn't see yours until mine posted and refreshed the page.
I used our VL installer, and ran it once to generate the licensing plist. Great!
When I added the "skip first-run windows" plists according to the article referenced upthread, I still got the following window in Outlook, which is OK because we will be moving to Office 365 anyway:
However, this is the only window I want users (or IT) to see initially so they can just log into Office 365, and get to work. I'm hoping this one dialog will set it for all Office apps.
Posted on 11-22-2015 07:21 PM
You should not capture and redistribute the com.microsoft.office.licensingV2.plist
plist
Although a number of us have been doing this for a long time.
It is unsupported by MS, and has the potential to break.
Instead, you should generate the licence on each machine by running the all volume licence package included in the VLSC Office 2016 package.
This all volume licence package will be available with the 15.17 version of Office 2016 released in December.
Until then, you can easily extract the all volume licence package from your office 2016 installer you obtained from the VLSC site. Combine this "serializer" with the latest full suite package from MS's site and you have an up to date VL install. ie. install the 15.16 Office 2016 package, then run the serialised package to create the licensing plist file.
I have the details on my blog here:
https://themacwrangler.wordpress.com/2015/11/17/fun-with-microsoft-office-2016/
Posted on 11-22-2015 07:32 PM
How exactly are you generating the "choices.xml" file? Did you just make a plain text file in TextEdit or TextWrangler with the extension .xml?
I think the problem that @lkrasno and myself are running into is that maybe it's not properly formatted.
I followed the instructions in the post referenced by @bpavlov, where the author generated a whole new "choices" plist, and checked that it was a valid plist using the command:
$ plutil -lint /path/to/file.plist
It seemed like it checked out for me. In my file, I only want to exclude:
com.microsoft.autoupdate
com.microsoft.licensing.volume
Then, I created a composite PKG in Composer like the one you created with the Volume Installer, the choices.xml, the licensingV2.plist, and your postinstall script. I also added plists that make the applications skip the "first-run" windows. I then deployed this package as part of an imaging configuration with Casper Imaging to my test computer.
Once the machine rebooted after imaging, I checked that the plists were in the right location, and they were. However, AutoUpdate still installed. So, when I launched Excel, it skipped the "first-run," but I got that annoying warning:
So, now I'm wondering what happened there. Why did AutoUpdate still install?
Now, I'm going to try making a simple "choices.xml" file with TextWrangler, based on your example of only the array:
<array>
<string>com.microsoft.autoupdate</string>
<string>com.microsoft.licensing.volume</string>
</array>
Since you said that even by only doing this, it'll keep those two packages from being installed. So, I'm just saving my TextWrangler file as "choices.xml" and not adding any headers as you suggested. We'll see what happens.
@georgecm12 I understand that there may be a new VL installer in the horizon that may solve these issues, but I may need to have an installer ready before that one is released. That's why I'm trying to figure this stuff out. I really don't have the time to join some chat app.
Posted on 11-22-2015 07:46 PM
all the information you want for what you are trying to do is in the #microsoft-office channel on the macadmins slack site.
Posted on 11-22-2015 08:08 PM
I just read your blog. So, basically, you're saying to use the installer from the 365 Portal (which I also have), but extract the volume license package from the VL installer, and run them in sequence.
Will the AutoUpdate install as part of this method? If so, how do we stop the AutoUpdate from installing this way? Will I still have to bundle a "choices.xml" file with the suite installer?
I don't want my users to get that "Microsoft AU Daemon" warning, and any prompts that there's an update available. They don't have admin privileges, and will only get annoyed. We handle that for them in the background.
Which now begs the question, can the new updaters run silently in the background even if the app is running?
Posted on 11-22-2015 08:19 PM
To avoid my users seeing the "Microsoft AU Daemon", I've just been installing the update .pkg's for each app (latest downloads are here then I install the volume licensing .plist afterwards. The update .pkg's are full installers for each app. Saves having to mess around with a choices.xml file.
Posted on 11-22-2015 08:41 PM
Correct. That will give you the latest version suite 15.16 and it will be Volume licenced. All in one hit.
The 15.16 suite package is about 1.3Gb. Where as if you deployed each app update which is a full installer minus licensing you'd be looking at deploying about 4.5-4.8gb.
No, it will still install the auto update app. You need to craft a choices XML plist that will omit that installer package.
First create your choices xml that deselects the MAU, which should look like this
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>attributeSetting</key>
<integer>0</integer>
<key>choiceAttribute</key>
<string>selected</string>
<key>choiceIdentifier</key>
<string>com.microsoft.autoupdate</string>
</dict>
</array>
</plist>
Then you can install with the following command:
sudo installer -pkg ~/Desktop/Microsoft_Office_2016_Installer.pkg -applyChoiceChangesXML ~/Desktop/no_mau.xml -target /
That will install the office package but it will apply the choice changes xml and deselect the MAU package.
I would not update the app if it is running. Potential data loss for my users would be far too much of a concern. I would probably stage that update so that it only gets installed when the machine is at the login window, or the app is not running. Probably throw a dialog message up to users while updating those apps to let them know its happening if you must do it while they are logged in.
Posted on 11-23-2015 04:36 AM
To all:
Sorry I haven't been active this weekend. Anyway, this post has gotten lots of hits since I last looked at it.
So, a couple of thoughts to bring up. This is one of those I wish I could just post my package. Right now it works really well for me. One change I have made since the original post...sorry. Right now my CTO is the only one with access to the MS VLSC. I have a deal where I only bother him once every couple of months to get a download. In the meantime, I studied the Office 365 package and found that they are exactly identical in all but name and one single package, the Office15_all_volume_licensing.pkg. What I have taken to doing is to use the Office 365 package that is freely downloadable and plugging in com.microsoft.office.licensingV2.plist where it is supposed to go. That suppresses the activation prompts...not all setup assistants, but the licensing prompts.
Anyway, I created a new package like the one shown below:
I created a postinstall script like the one shown below:
#!/bin/sh
installer -pkg /private/var/tmp/Microsoft_Office_2016_Installer.pkg -target / -applyChoiceChangesXML /private/var/tmp/choices.xml
rm -R -f /private/var/tmp/Microsoft_Office_2016_Installer.pkg
rm -R -f /private/var/tmp/choices.xml
mv -f /private/var/tmp/com.microsoft.office.licensingV2.plist /Library/Preferences/com.microsoft.office.licensingV2.plist
chown root:wheel /Library/Preferences/com.microsoft.office.licensingV2.plist
exit 0
Finally my choices.xml is the one shown below exactly. My only goal was to suppress the AutoUpdater on mine. I don't need to suppress the licensing as I am using the Office 365 version as my base but using the com.microsoft.office.licensingV2.plist as my license. This does work for our environment and gets a complete copy of Office 2016 installed.
<array>
<string>com.microsoft.autoupdate</string>
</array>
The following command is what I use to view the available choices for any package.
sudo installer -pkg /path/to/Microsoft_Office_2016_Installer.pkg -showChoicesXML -target /
I then use the technique that MS themselves used for older installers to generate the choices.xml file: http://www.officeformachelp.com/office/administration/deployment/command-line/
My resulting file was the one contained above.
Hopefully this helps someone else because it has been verified to work here daily...I feel like the guy out in left-field at the moment. Rarely am I the one that things work for. Anyway, that being said, I totally welcome anything from the Microsoft team resembling a better, more admin-friendly installer. These type of tricks are typically reserved for hopeless packages.
I actually gave up on trying to understand the volume licensing package after @calumhunter 's post much earlier in this thread. I worried that copying a volume licensing .plist from machine to machine may not be the most supported. I very much welcome the command-line based serializer package that is planned for December that I learned about on other posts. Luckily, the com.microsoft.office.licensingV2.plist file could very easily be deleted from deployed machines and command line serialization could easily replace it...but only after strong testing internally.
Please let me know how I can help. I will note that OneNote does still require an Office 365 account...the app itself is designed that way. It cannot run strictly locally because all OneNote files are saved to an Office 365 account.
blackholemac
Posted on 11-23-2015 05:08 AM
@plawrence I was thinking that route, too. But as @calumhunter said, it'd be a much bigger deployment.
@calumhunter I will experiment with that method today.
Regarding future updates: With my current Office 2011 environment, I'm able to package suite updates in Composer with a "NoQuit.xml" that allows the update to run silently even if the target computer is running the apps. If/When they quit and relaunch the apps, it's now the updated one. It has worked great for us. We haven't seen issues. I was just wondering if I could do the same with these new individual update installers.
Posted on 11-23-2015 08:10 AM
@blackholemac Thanks for sharing your method. On my tests today, I think I will use a hybrid approach of your and @calumhunter's method since they overlap. I think I'm finally getting a grip on this.
As far as OneNote, my company is upgrading to Office 365 soon, which is why there's an urgency now to get the installer for these apps squared away. Once we transition, my users can use their new company-supplied Office 365 accounts to use OneNote if they choose to use it.
The only package I want to exclude from my installation is the AutoUpdater.
I'd rather not use just the plain Office 365 suite installer because it'll pop up too many things when we launch an app. So, this hybrid method of using it in conjunction with the Volume License pkg separately, a choices.xml, and suppress "first-run" plists seems like it'll work for what I want to accomplish: Only one login window when IT/users launch Outlook to get started. This way, the end user (or IT) can enter the user's account once, and boom! We're off to the races.
Posted on 11-23-2015 10:10 AM
Great! Now I can't check against the "choices.xml" doc I made. I get the following error when I do the command -showChoicesAfterApplyingChangesXML:
installer -pkg /private/var/tmp/Microsoft_Office_2016_Installer.pkg -showChoicesAfterApplyingChangesXML /private/var/tmp/uchoices.xml
installer: Error -target parameter required
Usage: installer [-help] [-dominfo] [-volinfo] [-pkginfo] [-allowUntrusted] [-dumplog]
[-verbose | -verboseR] [-vers] [-config] [-plist]
[-file <pathToFile>] [-lang <ISOLanguageCode>] [-listiso]
[-showChoicesXML] [-applyChoiceChangesXML <pathToFile>]
[-showChoicesAfterApplyingChangesXML <pathtoFile>]
-pkg <pathToPackage>
-target <[DomainKey|MountPoint]>
What am I missing now?
EDIT: Sorry, I figured it out. Ugh.
Posted on 11-23-2015 12:50 PM
@itupshot are you creating an office 2016 installation that installs Office 2016 based on this? Creating a zipped up package of the Office2016.pkg and choices.xml then using a script to kick off the install ?
installer -pkg /private/var/tmp/Microsoft_Office_2016_Installer.pkg -applyChoiceChangesXML /private/var/tmp/uchoices.xml
i've done this in the past with Office2011 but changed to using composer because I wanted the users not to see all those prompts when opening Word/Excel/Powerpoint.
are you seeing those same prompts with Office 2016 when opening Word, excel, ppoint?
there is 3 of them, here is 2 that i remember --- Colorful or Classic look --- get started etc...
Posted on 11-23-2015 02:16 PM
@tcandela, you can disable the prompts with config profiles
http://macops.ca/disabling-first-run-dialogs-in-office-2016-for-mac/
Posted on 11-24-2015 07:48 AM
@calumhunter - i read the article. How would i exactly do this in the JSS when creating a 'configuration profile'? what payload is used ? do i add this line; for each application (word, excel, power point)
sudo defaults write /Library/Preferences/com.microsoft.Word kSubUIAppCompletedFirstRunSetup1507 -bool true
Posted on 11-24-2015 01:23 PM
@calumhunter for testing, from a command prompt, i simple did
sudo defaults write /Library/Preferences/com.microsoft.Word kSubUIAppCompletedFirstRunSetup1507 -bool true
sudo defaults write /Library/Preferences/com.microsoft.Excel kSubUIAppCompletedFirstRunSetup1507 -bool true
sudo defaults write /Library/Preferences/com.microsoft.PowerPoint kSubUIAppCompletedFirstRunSetup1507 -bool true
how would i do this using Configuration Profile policy ?
Posted on 11-24-2015 04:57 PM
I like to use MCX To Profile
Heres an example config profile
It does the following things:
- Removes the first run dialog boxes.
- Sets MAU to fetch updates manually.
- Disables Sending of Telemetry data to MS
- Disable What's New Outlook (15.15)
- Disable What's New OneNote (15.15)
- Disable What's New PowerPoint (15.15)
- Disable What's New Word (15.15)
- Disable What's New Excel (15.15)
Posted on 11-25-2015 10:36 AM
Hi folks, something didn't work in my last test.
I followed the steps from @calumhunter and @blackholemac as follows:
Created my "uchoices.xml" with only the lines:
<array>
<string>com.microsoft.autoupdate</string>
</array>
I created an "office_with_choices.plist" file by issuing the command:
installer -pkg /private/var/tmp/Microsoft_Office_2016_Installer.pkg -showChoicesAfterApplyingChangesXML /private/var/tmp/uchoices.xml -target / > ~/Desktop/office_with_choices.plist
sudo installer -showChoiceChangesXML -pkg /private/var/tmp/Microsoft_Office_2016_Installer.pkg -target / > ~/Desktop/office_choices.plist
I then compared the differences,
diff -C5 ~/Desktop/office_choices.plist ~/Desktop/office_with_choices.plist
and got the output:
*** /Users/admin/Desktop/office_choices.plist 2015-11-25 11:49:04.000000000 -0600
--- /Users/admin/Desktop/office_with_choices.plist 2015-11-23 12:16:10.000000000 -0600
*** 138,148 ****
<key>choiceIdentifier</key>
<string>com.microsoft.autoupdate</string>
</dict>
<dict>
<key>attributeSetting</key>
! <integer>1</integer>
<key>choiceAttribute</key>
<string>selected</string>
<key>choiceIdentifier</key>
<string>com.microsoft.autoupdate</string>
</dict>
--- 138,148 ----
<key>choiceIdentifier</key>
<string>com.microsoft.autoupdate</string>
</dict>
<dict>
<key>attributeSetting</key>
! <integer>0</integer>
<key>choiceAttribute</key>
<string>selected</string>
<key>choiceIdentifier</key>
<string>com.microsoft.autoupdate</string>
</dict>
It seems like it's done correctly.
I fired up Composer and placed the Office 365 installer ("Microsoft_Office_2016_Installer.pkg") into a new package with my "uchoices.xml" file and my "skip first-run" plists.
OK, so after the machine finished doing the installations, the main apps installed, and my "skip first-run" plists were placed. BUT, I found the following:
Any ideas of where I went wrong?
Posted on 12-01-2015 10:49 AM
@calumhunter Sighs...I think we all hate this installer! Being that I don't personally have access to the VLSC, could you please post when the new December installer drops. Our CTO is the only one here with access, and I don't wish to keep bugging him more than I have to.
I wish I personally had time to troubleshoot @itupshot as I do sincerely wish to help, but I'm thinking we all need to regroup and reinvestigate after the new installer package drops. Maybe some reduced head banging will come of the new installer.
blackholemac
Posted on 12-01-2015 02:17 PM
@itupshot Re-read my post again. Pay attention to the commands i am running and the commands i am NOT running.
You seem to be doing a lot more than is required. Also not using the correct commands.
Also your choices.xml is not complete. Look at mine.
@blackholemac I just wrote out a whole thing then saw your on Slack and Paul has got you sorted.
FWIW i download the latest sku-less full suite installer (Currently 15.16) from MS its 1.2Gb. Then i apply the VL serialiser package and i have a fully installed and up to date Office 2016 VL. Can't get much easier than that.
Until Casper supports choice changes xml natively (Like Munki) You would have to script the install.
Posted on 12-01-2015 02:49 PM
I'm not sure why y'all just don't run the installer Microsoft supplies then patch it. Freakin' cake.
Posted on 12-01-2015 04:56 PM
I was just going to post and refer future posters there. The MacAdmins Slack is the place to go to solve this. I still stand by my choices.xml method, BUT there are other ways given what can be learned there. Go specifically to the #MS-Office channel.
Posted on 12-01-2015 05:24 PM
@tnielsen
I think the issue is scale.
When you have thousands or tens of thousands of clients, with tens, hundreds, thousands of remote sites.
Pushing a 1.3Gb installer package, and then ~4Gb of patches to bring it up to date is a lot of data that needs to be pushed around or pulled down the WAN from each client.