Skip to content

Instantly share code, notes, and snippets.

#!/usr/bin/python
import datetime
import os
import subprocess
admin_items = [
"/Applications/Launchpad.app",
"/Applications/Mission Control.app",
"/Applications/Safari.app",
<?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">
<dict>
<key>PayloadContent</key>
<array>
<dict>
<key>AllowPreReleaseInstallation</key>
<false/>
<key>PayloadDisplayName</key>
@gregneagle
gregneagle / AdobeCS6DesignAndWebPremium.plist
Created March 2, 2015 16:10
AdobeCS6DesignAndWebPremium.plist (aamporter)
<?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">
<dict>
<key>channels</key>
<array>
<string>AcrobatXPro-10.0</string>
<string>AcrobatXPro-10.0</string>
<string>AcrobatXPro-10.0</string>
<string>AdobeAPE3.3_Mac_NoLocale</string>
@gregneagle
gregneagle / gist:0774108ef15f345bd36c
Created February 19, 2015 16:31
VPN menu payload
<dict>
<key>PayloadContent</key>
<dict>
<key>com.apple.mcxMenuExtras</key>
<dict>
<key>Forced</key>
<array>
<dict>
<key>mcx_preference_settings</key>
<dict>
#!/usr/bin/python
# This script removes LocalMCX from opendirectoryd's search path
# this version 08 Dec 2014 Greg Neagle
import plistlib
import subprocess
import sys
try:
output = subprocess.check_output(
<?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">
<dict>
<key>Description</key>
<string>Downloads Firefox disk image, builds a package, including autoconfig
resources (typically as generated via the CCK2 tool), then imports the pkg into
your Munki repo.
Place the autoconfig.zip in the same directory as the recipe. You may
@gregneagle
gregneagle / 031-17159.dist
Created January 27, 2015 19:12
Dist for 10.10.2 update
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<installer-gui-script minSpecVersion="1">
<options allow-install-later="true" should-authenticate-reboot="true" post-logout="true" should-launch-first-login-optimization="true"/>
<title>SU_TITLE</title>
<script/>
<volume-check script="VolumeCheck()"/>
<installation-check script="InstallationCheck()"/>
<script>
function compareBuildVersions(lhs, rhs) {
var lhsMatch = lhs.match(/([0-9]+)([A-Z])([0-9]+)([a-z])?/);
@gregneagle
gregneagle / update_complex_pref_v1.py
Created January 26, 2015 20:06
Python scripts for MacTech MacEnterprise column "Managing Complex Preferences"
import CoreFoundation
from Foundation import NSDate
# read Safari's current ManagedPlugInPolicies
policy = CoreFoundation.CFPreferencesCopyAppValue(
'ManagedPlugInPolicies', 'com.apple.Safari')
if not 'com.oracle.java.JavaAppletPlugin' in policy:
# create an empty dict
policy['com.oracle.java.JavaAppletPlugin'] = {}
@gregneagle
gregneagle / gist:01c99322cf985e771827
Created January 20, 2015 18:16
Using CFPreferences in Python to set a complex preference
import plistlib
import CoreFoundation
from Foundation import NSDate, NSMutableArray, NSMutableDictionary
# read the current ManagedPlugInPolicies
policy = CoreFoundation.CFPreferencesCopyAppValue("ManagedPlugInPolicies", "com.apple.Safari")
if policy:
# policy is an immutable dict, so we have to make a mutable copy
my_policy = NSMutableDictionary.alloc().initWithDictionary_copyItems_(policy, True)
@gregneagle
gregneagle / gist:a46a7d80504d3364525a
Created January 2, 2015 16:44
Xprotect and Gatekeeper
% softwareupdate -l
Software Update Tool
Copyright 2002-2012 Apple Inc.
Finding available software
Software Update found the following new or updated software:
* XProtectPlistConfigData-1.0
XProtectPlistConfigData (1.0), 10K [recommended]
* Gatekeeper Configuration Data-54
Gatekeeper Configuration Data (54), 3259K [recommended]