Register for the 2016 PSU MacAdmins Conference

Leave a comment

Registration for the 2016 MacAdmins Conference at Penn State is now open! The conference will be held June 27th – 30th in State College, PA. It looks to be another great year with many great speakers discussing all the latest in OS X and iOS management.

Register now to take advantage of the early-bird pricing!

Visitor Information

Penn State MacAdmins Conference 2015 Resources Available

Leave a comment

After another very successful conference, the slides and videos from the 2015 MacAdmins Conference at Penn State are now available.

You can find them here –

Python, Proxies and Mac OS X, Oh My…


Recently, I’ve been trying to wrap my head around using Python tools behind a proxy. I found that the documentation specific to Mac OS X was sparse so I decided to post my findings.

First, if you’ve configured proxy settings in System Preferences you’ll find that urllib2 retrieves your settings using the ‘OS X System Configuration Framework’:
>>> import urllib
>>> urllib.getproxies()

{'http': '', 'https': ''}

You can use an opener with urllib2 to handle your own proxy settings:
>>> import urllib2
>>> request = urllib2.Request('')

>>> proxy_handler = urllib2.ProxyHandler({'http': '', 'https': ''})

>>> opener = urllib2.build_opener(urllib2.HTTPHandler(debuglevel=1), proxy_handler)

Lastly, Python also honors your bash proxy exports, including ‘no_proxy’ settings:
export {http,https,ftp}_proxy=''
export no_proxy=''

>>> import urllib
>>> urllib.getproxies()
{'ftp': '', 'http': '', 'https': '', 'no': ''}

And of course, read the docs to learn more:

Creating Recovery Partitions in Deploy Studio


Since Deploy Studio requires that you have a pre-built Recovery HD to restore, it can be time consuming to build and capture these images. Some admins have taken a packaging approach to creating Recovery HD partitions, which is great for a wide number of deployment tools – or – use the thin-imaging or no-imaging technique where Apple’s own installer handles the magic behind the scenes. But for now let’s just say you use Deploy Studio to restore your base image and need a quick and flexible way to automatically restore the Recovery HD at the same time…

Step 1 – Gather

You’ll need to grab a couple of items, the first being the `dmtest` utility included in the RecoveryHDUpdate.pkg –

Download, mount and expand the package (see below) and grab a copy of dmtest from within the expanded package RecoveryHDUpdate.pkg/Scripts/Tools/dmtest.

pkgutil --expand /Volumes/Mac\ OS\ X\ Lion\ Recovery\ HD\ Update/RecoveryHDUpdate.pkg ~/Desktop/RecoveryHDUpdate

Second, you’ll need the latest InstallESD.dmg for each Recovery HD you want to build. (You already know about this, right? )

Mount your InstallESD and grab BaseSystem.dmg and BaseSystem.chunklist from the root of the disk. We will need these files in the next step.

Root of InstallESD Disk Showing Hidden Base System Files

Step 2 – Prepare

Screenshot of directory structure of Deploy Studio including "Tools"

Create another directory in Deploy Studio’s repository called Tools. Under the new Tools directory copy in the dmtest utility and create sub-directories for the BaseSystem files for each InstallESD. Name the sub-directories so you can easily reference the specific BaseSystem files such as “L” for the latest Lion or “ML” etc.

Now, create a new script in Deploy Studio as shown below called

(credit to Clay Caviness)


## EXAMPLE: /tmp/dmtest ensureRecoveryPartition / /Volumes/Recovery\ HD/ 0 0 /Volumes/Recovery\ HD/

${DS_REPOSITORY_PATH}/Tools/dmtest ensureRecoveryPartition ${DS_LAST_RESTORED_DEVICE} ${DS_REPOSITORY_PATH}/Tools/$1/BaseSystem.dmg 0 0 ${DS_REPOSITORY_PATH}/Tools/$1/BaseSystem.chunklist

exit 0

Step 3 – Test & Maintenance

Screenshot of Deploy Studio Script Action

Add the script task to your workflow after the imaging task and make sure it’s not set for postponed execution. In the script parameters box enter the subdirectory of your BaseSystem files. Now, run the workflow and watch the client log. When it’s finished you should find a freshly created Recovery HD. When Apple releases each minor OS revision replace the BaseSystem.dmg and BaseSystem.chunklist files as needed and for hardware specific OS builds  just drop the new BaseSystem files into a new sub-directory and reference via the workflow.

Backing up Profile Manager

Leave a comment

Awhile back I wrote a quick launchd script to backup the Profile Manager PostgreSQL database in Lion Server.

The project is available here –

Enabling Enterprise Kerberos SMB Printing


In an Active Directory environment the most intuitive way for users to add printers is by using the included default printer browser, and to make the process as smooth as possible single-sign on is the way to go. This also makes it easier to manage the printers on your network and use print monitoring software (it works great with PaperCut). The launch daemon watches the /etc/cups/printers.conf file for changes, and once a printer is added the script will enable all local SMB printers for Kerberos authentication. The installer package is available for download at the bottom of the post, and constructive feedback is greatly appreciated! More

Oracle database with PHP in 10.6 Server


The following may be very useful if you are using a Mac OS X Web Server to host a PHP based CMS/LMS such as Moodle, have an Oracle database containing student records such as PowerSchool and wanted to integrate them together for automatic course creation and student enrolment in Moodle. Tested with Mac OS 10.6.7 Server, Developer Tools 3.2.5, Oracle Instant Client 64-bit

Configure a Mac OS X Web Server to access a Oracle database using the default bundled PHP install, Oracle’s Instant Client and the Oci8 PHP extension in 5 simple steps: More