Posted on 11-07-2016 10:05 AM
Hi folks.
My CatalogURL doesn't appear to be applying on devices.
Profiles on local device show: Software Update Settings, CatalogURL:
http://myserver.fqdn/content/catalogs/indesx_Root.sucatalog
So the policy is applied (even says in JSS)
However a quick Terminal command:
defaults read /Library/Preferences/com.apple.SoftwareUpdate.plist CatalogURL
Shows:
http://myserver.fqdn:8088/index.sucatalog
Am I doing something wrong here?
http://myserver.fqdn/content/catalogs/indesx_Root.sucatalog is accessible from a webpage from the device. No updates are found when running the update.
Any advice?
Thanks!
Posted on 11-07-2016 01:04 PM
@CCNapier have you tried running softwareupdate -l
from terminal on the device to see if any updates are found or if the server can be reached?
I also applied a Configuration Profile to my device to set the software update server. That doesn't appear to change the CatalogURL in the com.apple.SoftwareUpdate.plist file, but running the above command in Terminal gave me:
TestComputer:~ admin$ softwareupdate -l
Software Update Tool
Copyright 2002-2015 Apple Inc.
Finding available software
Can't connect to the Software Update server (myserver.fdqn).
So it appears, at least in my case, that the device is trying to reach out to the server url that is specified in the configuration profile (it just doesn't find any updates because the url isn't reachable).
Hope that helps!
Janis
Posted on 11-07-2016 01:58 PM
We run an Apple Software Update server but the commands should be the same!
I run
defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL http://server-url:8088/
and then
defaults read /Library/Preferences/com.apple.SoftwareUpdate CatalogURL
I get
http://server-url:8088/
If I then run
softwareupdate -l
I get
Software Update Tool
Copyright 2002-2015 Apple Inc.
Finding available software
Software Update found the following new or updated software:
* iTunesX-12.5.3
iTunes (12.5.3), 262996K [recommended]
I used to have /index.sucatalog in the url but for some reason that stopped working, so I removed it. Run the defaults write command locally and see if you can contact the server.
Also, with the Apple Software Update server, the server needs to be running on the same OS as the updates it's pushing out. If you are running 10.11 on the server, it won't be able to provide 10.12 related updates.
Posted on 11-08-2016 05:01 AM
Just to clarify (and a bit of a plug for Ben & James' JNUC 2016 talk) but the defaults command reads from the .plist file. The configuration profile goes to the memory cached prefs, so the file doesn't reflect what's been set by the profile.
The configuration profile could be active, but defaults will not give a true reading. This is why most of my CIS work uses the macOS API via PythObjC. To read the actual setting out, you'd need some code like this:
#!/usr/bin/python
import CoreFoundation
domain = 'com.apple.SoftwareUpdate'
key = 'CatalogURL'
key_value = CoreFoundation.CFPreferencesCopyAppValue(key, domain)
print "CatalogURL set to: %s" % key_value
Posted on 11-08-2016 06:35 AM
@franton Thanks, that is good information. That's why I'm seeing a difference then and that technically answers the question in this post.
Posted on 12-14-2017 06:52 PM
@franton Excellent! This is EXACTLY what I was looking for.