Tiny Deathstars of Foulness

Apple Configurator 2 is a great tool to manage iOS devices. It’s also a pretty decent tool when you need to create profiles for use on Macs. Apple Configurator is easily installed using the Mac App Store. This involves a number of tasks:

  1. Restore: Restore an operating system to an iOS device
  2. Duplicate: Similar to imaging (but not), restore various options on a device so it is similar to a previous device. There are limitations to this feature as any data stored in the secure enclave will not be duplicated
  3. Application Assignment: Install apps on devices with or without an MDM solution to manage the devices
  4. Supervise: Enable supervised mode on the devices so that you can prove ownership and therefore unlock additional restrictions on devices
  5. Manage: Deploy profiles on devices to control the features used on devices and automate configuration

However you plan on using Apple Configurator, the first step to use the product is to download it for free and install it on an OS X computer. To install Apple Configurator, first open the App Store and search for Apple Configurator.

Screen Shot 2015-10-26 at 2.55.34 PM

When listed, click on Apple Configurator.

Screen Shot 2015-10-26 at 2.57.09 PM

Then click on Get, then click on Install App. If prompted for your Apple ID, provide it.

Screen Shot 2015-07-27 at 2.52.00 PM

This downloads Apple Configurator to the /Applications directory on your computer. Once installed, you can still use Apple Configurator, if you were using it before. The two apps will appear in the Finder, with Apple Configurator 1 showing as Apple Configurator and Apple Configurator 2 appearing as Apple Configurator 2. When you initially open Apple Configurator 2, if you had been running Apple Configurator 1, you’ll be prompted to migrate your data into Apple Configurator 2. I’ve done a series of articles at to help guide you through the process of getting comfortable with Apple Configurator and Apple Configurator 2. Good luck!

November 2nd, 2015

Posted In: Apple Configurator

Tags: , , , , , , ,

Did you know that bash supports emojis? So do SSIDs. Let’s run a quick and easy command so that bash can enjoy the same holiday that you’re enjoying. Let’s say the name of an emoji. To do so, open the and paste this command in:

say 💩

You can also easily edit your .bash_profile. To do so, run the `vi .bash_profile` command and paste this line in:

PS1="💩   $"

Note that I put a few spaces here, after the smiling pile of poo (which I really just like to type and verbalize while sitting next to people on airplanes). The reason for the spaces is that otherwise your text might overlap with the emoji. The $ allows me to know I’m at a prompt rather than just looking at an otherwise smiling pile of poo. Anyway, save and open a new Terminal prompt. Boom. Poo. In the Edit menu of the Terminal app, there’s an “Emoji & Symbols” option, which lets you pick many, many more emojis. So you’re not just stuck with the poo I left for you here. Although I could have set it on fire and left it on your doorstep; then you’d be stuck with it…😘

October 31st, 2015

Posted In: Mac OS X

Tags: , , , , ,

There are a couple of parts to this article. The first is to describe the server command, stored in /Applications/ The description of the command by Brad Chapman was so eloquently put on this JAMF Nation post that I’m just gonna’ paste it in here:

So … I just installed Server 5.0.x tonight on my Mac Mini running Yosemite (10.10.5). There was a question that came up during JNUC about upgrading Server and having a way to accept the license agreement without going through the GUI.

So for shits and giggles I tried:

server setup

It’s not documented. And lo and behold, I got the prompt to accept the license agreement just like you do with Xcode.

Post your trip reports here! Can this be automated?

tardis:~ chapman$ sudo server setup
To use server, you must agree to the terms of the software license agreement.

Press Return to view the software license agreement.

---insert license agreement here---

Do you agree to the terms of the software license agreement? (y/N) y

Administrator access is required to set up OS X Server on this Mac. Type an administrator's user name and password to allow this.
User name: chapman

Initializing setup...
Getting server state...
Getting host names...
Writing server settings...
Configuring Service Authentication...
Creating certificates...
Getting certificates...
Renewing certificate...
Enabling server password hashes for local users...
Creating service principals...
Initializing certificates...
Preparing services...
Preparing Caching service...
Preparing Calendar service...
Preparing Profile Manager service...
Preparing File Sharing service...
Preparing Software Update service...
Preparing Messages service...
Preparing Mail service...
Preparing Web service...
Preparing Calendar service...
Preparing Wiki service...
Preparing Calendar service...
Preparing Profile Manager service...
Initializing Wiki...
Initializing Mail...
Initializing VPN...
Initializing Xcode...
Enabling autobuddy for local accounts...
Updating admin password policy...
Checking DNS Configuration...
Reading DNS configuration...
Completing setup...

server encountered errors during setup:

Unknown error
tardis:~ chapman$

I don’t know what the ‘unknown error’ was.

The error is pretty much typical. I rarely see a server that doesn’t spawn some kind of error, and most errors will throw this. Oh well. The only option that he didn’t mention that isn’t meant for internal use is help, which doesn’t even indicate setup as a verb. Now, here’s where it gets fun. This is cute, but if you’re scripting  a full server setup, you’ll want to bust out a little expect script here. I’m gonna’ put the username and password in cleartext here, to keep the script readable:

set timeout 300
spawn server setup
expect "Press Return to view the software license agreement." { send \r }
expect "Do you agree to the terms of the software license agreement? (y/N)" { send "y\r" }
expect "User name:" { send "MYADMINUSERNAME\r" }
expect "Password:" { send "MYPASSWORD\r" }

Obviously, you would replace MYADMINUSERNAME with your admin username and MYPASSWORD with your password. But basically, drop the on a machine, run this, and you’re good to go. Now, hypothetically, if you’re spinning up a Caching server (e.g. if you’re building out 100 caching servers, this might come in handy), then you could use the commands described in this article I wrote earlier.

October 28th, 2015

Posted In: Mac OS X Server, Mass Deployment

Tags: , , , , , , , , , ,

The planning for ACES Conference 2016 seems to be in full gear. I’ve been slated to speak not on JAMF or Bushel stuff, but on my time in the Apple Consultants Network (ACN) community. One of the biggest challenges we had as we grew, was to responsibly pick vendors that matched with our customer requirements while also allowing us to scale efficiently. If you’re an ACN, this is a great conference for you. Check it out at!

Screen Shot 2015-10-22 at 11.10.36 PM

October 26th, 2015

Posted In: Consulting, Mac OS X, Mac OS X Server, Mac Security, Mass Deployment

Tags: , , , , , ,

Installing OS X has never been easier than in Yosemite. In this article, we’ll look at upgrading a Mac from OS X 10.10 (Yosemite) to OS X 10.11 (El Capitan) to . The first thing you should do is clone your system. The second thing you should do is make sure you have a good backup. The third thing you should do is make sure you can swap back to the clone should you need to do so and that your data will remain functional on the backup. Once you’re sure that you have a fallback plan, let’s get started by downloading OS X El Capitan from the App Store. Once downloaded, you’ll see Install OS X El Capitan sitting in LaunchPad, as well as in the /Applications folder.

Screen Shot 2015-09-23 at 11.27.08 PM

Open the app and click Continue (provided of course that you are ready to restart the computer and install OS X El Capitan).

Screen Shot 2015-09-23 at 11.27.51 PM

At the licensing agreement, click Agree (or don’t and there will be no El Capitan for you).

Screen Shot 2015-09-23 at 11.28.16 PM

At the pop-up click Agree again, unless you’ve changed your mind about the license agreement in the past couple of seconds.

Screen Shot 2015-09-23 at 11.28.35 PM

At the Install screen, click Install and the computer will reboot.

Screen Shot 2015-09-23 at 11.28.56 PM

And you’re done. Now for the fun stuff!

Screen Shot 2015-09-23 at 11.29.43 PM

October 11th, 2015

Posted In: Mac OS X, Mac OS X Server

Tags: , , , , , ,

We tend to use a lot of commands in the Terminal app. That is, after all, what it’s there fore. And there’s a nice history of what we do. There are also a number of ways to view and manage the bash history. The simplest of which is the history command, which will show the previous commands run. Here, we’ll simply run it:


Keep in mind that this shows the history based on context, so if you sudo bash, you’ll potentially see a different history. You can also use the bash built-in fc command, which has the additional awesomeness of being able to edit and re-run commands from the history. To start, we’ll simply look at showing the last 16 commands using the -l option:

fc -l

You can also constraint entries in the output by specific line numbers. For example, to see lines 12 through 18, simply use them as the first two positions of the command after fc:

fc 12 18

You can load the history into an editor and remove or add entries using fc without any options:


To exit the editor, hit control-z. I’ve written in the past about using substitution. For example, sudo !! to run the last command. fc can do some basic substitution as well. For example, use the -s to start substation and then enter a string, which will append whatever you like before a command. So the following would put sudo in front and re-run the previous command:

fc -s sudo

And let’s say that you were doing a find for a string of krypted. To then swap that string with charles:

fc -s krypted=charles

Overall, the bash history can be incredibly useful. I frequently pipe the output of a series of lines into a new file with a .sh at the end as a starting point for scripts and use these substitution options to save myself a bunch of time not retyping longer commands. Enjoy.

August 14th, 2015

Posted In: Mac OS X, Mac OS X Server, Mac Security, Mass Deployment, Ubuntu, Unix

Tags: , , , , , , , ,

Earlier, we looked at creating thousands of empty directories. Today, we’re going to get rid of them. But we need to get rid of only empty directories. To do so, we’ll use the find command:

find . -depth -type d -empty -exec rmdir {} \;

Now, we can put both into a script:

mkdir $(printf '%05d\n' {1..10000})
find . -depth -type d -empty -exec rmdir {} \;

July 29th, 2015

Posted In: Mac OS X, Ubuntu, Unix

Tags: , , , ,

By default in OS X, when you change an extension for a file, you get a warning. This is somewhat annoying to me, as I do this pretty frequently and have never almost accidentally done so. So to disable, send a FXEnable ExtensionChangeWarning key into as false:

defaults write FXEnableExtensionChangeWarning -bool false

To then undo, simply run with a true key:

defaults write FXEnableExtensionChangeWarning -bool true

July 22nd, 2015

Posted In: Mac OS X, Mac OS X Server, Mac Security

Tags: , , , ,

You can shut (and restart) Macs down immediately using the shutdown command. To do so, run the following command:

shutdown -r now

July 1st, 2015

Posted In: Mac OS X, Mac OS X Server, Mac Security, Mass Deployment

Tags: , , , ,

You can destroy an LDAP server using the Server app (and still using slapconfig -destroyldapserver). To do so, open the Server app and click on Open Directory. Then click on the Open Directory server in the list of servers.

Screen Shot 2015-01-16 at 11.22.15 PM

When prompted to destroy the LDAP Master, click on Next.

Screen Shot 2014-12-15 at 10.09.56 PM

When asked if you’re sure, click Continue.

Screen Shot 2014-12-15 at 10.10.00 PM

When asked if you’re really, really sure, click Destroy.

Screen Shot 2014-12-15 at 10.10.03 PM


January 19th, 2015

Posted In: Active Directory, Mac OS X, Mac OS X Server, Mac Security, Mass Deployment

Tags: , , , ,

Next Page »