Пример #1
0
def set_lockmessage(lockmessage):
    CFPreferencesSetValue('LoginwindowText', lockmessage,
                          "/Library/Preferences/com.apple.loginwindow",
                          kCFPreferencesAnyUser, kCFPreferencesAnyHost)
    CFPreferencesSynchronize("/Library/Preferences/com.apple.loginwindow",
                             kCFPreferencesAnyUser, kCFPreferencesAnyHost)
    logging.info("Set LoginwindowText")
    return
Пример #2
0
def set_ARD_Field(field, fieldnumber=1):
    '''
    Set's Apple Remote Desktop Fields
    '''
    CFPreferencesSetValue("Text" + fieldnumber, field,
                          "/Library/Preferences/com.apple.RemoteDesktop",
                          kCFPreferencesAnyUser, kCFPreferencesAnyHost)
    CFPreferencesSynchronize("/Library/Preferences/com.apple.RemoteDesktop",
                             kCFPreferencesAnyUser, kCFPreferencesAnyHost)
    logging.info("Set ComputerInfo1 Field")
    return
def fixSafariSpotlight():
    # Safari "Spotlight" respects the system-wide Spotlight privacy settings
    # EXCEPT when it comes to submitting search metrics to Apple.
    #
    # To disable these metrics, we have to disable Safari's *seperate*
    # "Spotlight Suggestions" setting, in addition to Spotlight's
    # "Spotlight Suggestions".
    #
    # You'll be forgiven if you find this confusing.
    BUNDLE_ID = "com.apple.Safari"
    PREF_NAME = "UniversalSearchEnabled"
    CFPreferencesSetValue(PREF_NAME, False, BUNDLE_ID,
                          kCFPreferencesCurrentUser, kCFPreferencesAnyHost)
    CFPreferencesSynchronize(BUNDLE_ID, kCFPreferencesCurrentUser,
                             kCFPreferencesAnyHost)
Пример #4
0
def createmanifest():
    '''
    Create the manifest using munki enroll php script in repo.
    '''
    progress("")
    params = {}
    params["serial"] = get_hardware_serial()
    params["school"] = manifests[getmanifests()]
    if n.views['machinename'].stringValue() == "":
        progress("Machine Name is blank!\nPlease fill it in and try again!")
        return
    else:
        params["displayname"] = n.views['machinename'].stringValue()
    if n.views['usernamefield'].stringValue() == "":
        progress("Username field is blank!\nPlease fill it in and try again!")
        return
    else:
        params["user"] = n.views['usernamefield'].stringValue()
    params["notes"] = getmarketingmodel()
    overridebutton = n.views['manifestoverridecheckbox'].stringValue()
    if overridebutton == "0":
        params["override"] = "false"
    else:
        params["override"] = "true"
    encodedparams = urlencode(params)
    conn = httplib.HTTPConnection("munki.example.com")
    conn.request("GET", "/munki-enroll/enroll.php?{}".format(encodedparams))
    response = conn.getresponse()
    data = response.read()
    if "Override not set" in data:
        progress("Manfiest not created! If this is a re-imaged machine, "\
                 "please check override and try again!")
        return
    else:
        CFPreferencesSetValue("ClientIdentifier", None,
                              "/Library/Preferences/ManagedInstalls",
                              kCFPreferencesAnyUser, kCFPreferencesAnyHost)
        CFPreferencesSynchronize("/Library/Preferences/ManagedInstalls",
                                 kCFPreferencesAnyUser, kCFPreferencesAnyHost)
        progress("Manifest Created!\nRemoved ClientIdentifier from Machine")
def fixSpotlight():
    DISABLED_ITEMS = set(["MENU_WEBSEARCH", "MENU_SPOTLIGHT_SUGGESTIONS"])
    REQUIRED_ITEM_KEYS = set(["enabled", "name"])
    BUNDLE_ID = "com.apple.Spotlight"
    PREF_NAME = "orderedItems"
    DEFAULT_VALUE = [{
        'enabled': True,
        'name': 'APPLICATIONS'
    }, {
        'enabled': False,
        'name': 'MENU_SPOTLIGHT_SUGGESTIONS'
    }, {
        'enabled': True,
        'name': 'MENU_CONVERSION'
    }, {
        'enabled': True,
        'name': 'MENU_EXPRESSION'
    }, {
        'enabled': True,
        'name': 'MENU_DEFINITION'
    }, {
        'enabled': True,
        'name': 'SYSTEM_PREFS'
    }, {
        'enabled': True,
        'name': 'DOCUMENTS'
    }, {
        'enabled': True,
        'name': 'DIRECTORIES'
    }, {
        'enabled': True,
        'name': 'PRESENTATIONS'
    }, {
        'enabled': True,
        'name': 'SPREADSHEETS'
    }, {
        'enabled': True,
        'name': 'PDF'
    }, {
        'enabled': True,
        'name': 'MESSAGES'
    }, {
        'enabled': True,
        'name': 'CONTACT'
    }, {
        'enabled': True,
        'name': 'EVENT_TODO'
    }, {
        'enabled': True,
        'name': 'IMAGES'
    }, {
        'enabled': True,
        'name': 'BOOKMARKS'
    }, {
        'enabled': True,
        'name': 'MUSIC'
    }, {
        'enabled': True,
        'name': 'MOVIES'
    }, {
        'enabled': True,
        'name': 'FONTS'
    }, {
        'enabled': True,
        'name': 'MENU_OTHER'
    }, {
        'enabled': False,
        'name': 'MENU_WEBSEARCH'
    }]

    items = CFPreferencesCopyValue(PREF_NAME, BUNDLE_ID,
                                   kCFPreferencesCurrentUser,
                                   kCFPreferencesAnyHost)
    newItems = None
    if items is None or len(items) is 0:
        # Actual preference values are populated on demand; if the user
        # hasn't previously configured Spotlight, the preference value
        # will be unavailable
        newItems = DEFAULT_VALUE
    else:
        newItems = NSMutableArray.new()
        for item in items:
            missing_keys = []
            for key in REQUIRED_ITEM_KEYS:
                if not item.has_key(key):
                    missing_keys.append(key)

            if len(missing_keys) != 0:
                print "Preference item %s is missing expected keys (%s), skipping" % (
                    item, missing_keys)
                newItems.append(item)
                continue

            if item["name"] not in DISABLED_ITEMS:
                newItems.append(item)
                continue

            newItem = NSMutableDictionary.dictionaryWithDictionary_(item)
            newItem.setObject_forKey_(0, "enabled")
            newItems.append(newItem)

    CFPreferencesSetValue(PREF_NAME, newItems, BUNDLE_ID,
                          kCFPreferencesCurrentUser, kCFPreferencesAnyHost)
    CFPreferencesSynchronize(BUNDLE_ID, kCFPreferencesCurrentUser,
                             kCFPreferencesAnyHost)