#!/usr/bin/python #ref: https://macmule.com/2016/12/11/profiles-an-it-admins-best-friend/#more-2645 from CoreFoundation import ( CFPreferencesCopyAppValue, CFPreferencesAppValueIsForced ) domain = 'com.apple.appstore' key = 'restrict-store-require-admin-to-install' key_value = CFPreferencesCopyAppValue(key, domain) print 'Key Value: %s' % key_value key_forced = CFPreferencesAppValueIsForced(key, domain) print 'Key Forced: %s' % key_forced
def catalogurl_is_managed(): """Returns True if Software Update's CatalogURL is managed via MCX or Profiles""" return CFPreferencesAppValueIsForced('CatalogURL', APPLE_SOFTWARE_UPDATE_PREFS_DOMAIN)
def get_config_level(bundle_id, pref_name, value): """Returns a string indicating where the given preference is defined""" if value is None: return "not set" if CFPreferencesAppValueIsForced(pref_name, bundle_id): return "MANAGED" home_dir = os.path.expanduser("~") # define all the places we need to search, in priority order levels = [ { "file": os.path.join(home_dir, "Library/Preferences/ByHost", bundle_id + ".xxxx.plist"), "domain": bundle_id, "user": kCFPreferencesCurrentUser, "host": kCFPreferencesCurrentHost, }, { "file": os.path.join(home_dir, "Library/Preferences/", bundle_id + ".plist"), "domain": bundle_id, "user": kCFPreferencesCurrentUser, "host": kCFPreferencesAnyHost, }, { "file": os.path.join(home_dir, "Library/Preferences/ByHost", ".GlobalPreferences.xxxx.plist"), "domain": ".GlobalPreferences", "user": kCFPreferencesCurrentUser, "host": kCFPreferencesCurrentHost, }, { "file": os.path.join(home_dir, "Library/Preferences", ".GlobalPreferences.plist"), "domain": ".GlobalPreferences", "user": kCFPreferencesCurrentUser, "host": kCFPreferencesAnyHost, }, { "file": os.path.join("/Library/Preferences", bundle_id + ".plist"), "domain": bundle_id, "user": kCFPreferencesAnyUser, "host": kCFPreferencesCurrentHost, }, { "file": "/Library/Preferences/.GlobalPreferences.plist", "domain": ".GlobalPreferences", "user": kCFPreferencesAnyUser, "host": kCFPreferencesCurrentHost, }, ] for level in levels: if value == CFPreferencesCopyValue(pref_name, level["domain"], level["user"], level["host"]): return level["file"] if value == DEFAULT_PREFS.get(pref_name): return "default" return "unknown"