Easily Change Your Server’s Default NetBoot Image from the Command Line

I have five different NetInstall/NetRestore images living on an Xserve that I use for deployment purposes. I find myself using Server Admin pretty often to change the default NetBoot image so I can boot computers to that image while holding down option-N. I was starting to find it pretty tedious to do this via the GUI. After launching the application, it takes seven clicks to change a default image in Server Admin (Tiger and Leopard). The times that I wasn’t at my computer and wanted to change the default image were starting to pile up, too.

So, what does any intrepid admin do at a time like this? That’s right. We take it to the command line and find a way to script it. My goal now was to create a script that I could run (from any computer) after ssh’ing into the server.

Read the rest of this entry »

shotshadows – Quick Script to Enable or Disable Screenshot Shadows

If you’ve taken screenshots of windows in Tiger and Leopard using the command-shift-4+space trick, you’ll have noticed that Leopard will include the window’s (rather large) drop shadows in the resulting image. Depending on your point of view this can be good, bad, or a mixed blessing. I’m in the latter camp. They can be nice for blog posts, but if you’re creating documentation, for example, they can take up precious space on the page.

Using this hint as a starting point, I wrote the following bash script to make the process of disabling and enabling those shadows quick and painless:

#!/bin/bash

usage ()
{
    /bin/echo "Usage: shotshadows [off|on]"
    exit 1
}

if [ $# == 1 ]; then
    if [ $1 == "off" ]; then
	    /bin/echo "Disabling drop shadows in screenshots and restarting SystemUIServer"
	    /usr/bin/defaults write com.apple.screencapture disable-shadow -bool true
	    /usr/bin/killall SystemUIServer
    elif [ $1 == "on" ]; then
        /bin/echo "Enabling drop shadows in screenshots and restarting SystemUIServer"
        /usr/bin/defaults delete com.apple.screencapture disable-shadow
        /usr/bin/killall SystemUIServer
    else
        usage
    fi
else
	usage
fi

Save this script as shotshadows — or download it here — make it executable, and drop it somewhere in your path. (I use /usr/local/bin.) Now you can turn screenshot shadows on and off with the simple terminal commands shotshadows on and shotshadows off. The change takes effect instantly.

Create a Tiger to Leopard Upgrade NetInstall Image

(UPDATE: If you’re interested in a Snow Leopard upgrade process, please see this post for updated instructions.)

adminertia : an admin at rest tends to stay at rest and an admin in motion tends to want to return to rest as soon as possible.

When Leopard was first released, I was almost grateful that it didn’t work reliably with Active Directory since that flaw provided me with a valid excuse for not having an upgrade procedure ready to roll when upgrade requests started trickling in from my users. I knew that by the time Apple got around to releasing an update that made Leopard work well with AD, the number of requests would have increased significantly. I needed to have a method of handling them in a timely manner.

Walking around the building with an installer DVD or a FireWire drive in hand doesn’t exactly rank as timely, nor does it rank as anything close to what I want to be doing with my time. NetBooting from a copy of the installer DVD is a slightly better option, but that would require applying a handful of OS and security updates after the initial install in order to bring each computer up-to-date. NetBooting with a NetRestore set created with Mike Bombich’s (otherwise) excellent software is not an option because it can’t upgrade a computer, only overwrite it.

Because I have chosen not to use Radmind in my environment, it seemed my options for creating a more or less automated upgrade to take Macs running 10.4.x directly to the latest version of Leopard were severely limited. After much despair, head scratching, and a little behind-the-scenes investigation, I discovered that Leopard’s System Image Utility could be wrangled to accomplish my goal.

Read the rest of this entry »