« Why is this still getting Ink? | Main

Apple Remote Desktop 3 released

Apple just released version 3 of Apple Remote Desktop, and it's a release that has earned a new version number. While there are a few folks are going to jump up and down happily because it's a Universal binary, I have a few other reasons to be happy and one huge one, but we'll save that one for last.

Technorati Tags: , , , , ,

Apple Remote Desktop 3 answers one of my biggest gripes about version 2, and that was the insanely silly workarounds you had to deal with to get a file to a single client. Under version 2, to copy a single file to a client, you had to set up a copy task, and run the task. This has changed. In version 3, here's how you copy items to a single client:

  1. Drag

  2. Drop

Drag and drop doesn't suck. Now, you can't use drag & drop the other way, from client to administrator, which is a bummer, but it's a step in the right direction. My disappointment at this lack of drag & drop from the client to the administrator workstation is somewhat mitigated by the fact that finding files to copy to the administrator workstation finally works reliably. Version 2 used to drive me insane because of that. Sure, running a find was easy, but since it only worked every other St. Swithen's Day, it was kind of useless. But now that it works, both via remote Spotlight searching, or the more conventional file search, having to do the find to copy the file to me, while still overly tedious, is at least functional. I can put up with functional tedium far better than the dysfunctional kind.

Another peeve of mine was reports. With Version 2, reports were always kind of a "Meatcake" scenario:

"Will Apple Remote Desktop reports work today?"
"They worked yesterday"
"But will they work today?"
"We just don't know"

Well, in my testing, reports finally work. Not only do they work reliably, but there's a couple new ones added which, for those of us in a SOX state of mind, should help us get through our audit-ory hells a little easier, namely Application Usage and User History. With User History reports, you get the login/logout dates and times, the the login type, (console or a ttyp number) and the host they were logging in from, localhost or remote DNS name/IP number. It's not like this information was particularly hard to get other ways, but having it built into Apple Remote Desktop is a nice touch for enterprise users, who have far more need for this information beyond reasons of security. In truth, it's a heck of a feature for anyone running a network, enterprise, K-12, Higher Ed, or SMB. It's amazing the problems that can be stopped dead when people realize you can track them, with ease, across a network. (I know as the parent of a 12 year old boy, having the powers of $DEITY$, and him knowing I have them saves me a lot of time by not actually having to actually use them...much)

The Application Usage report is useful for similar reasons. It shows the application, how long it was the frontmost application versus how long it was simply running, which user launched it, the state of the application, etc. While it would be nice to have a feature to collapse multiple launching of the same application by the same user, when you need to track what someone was doing, this is a neat trick. In addition to such draconian needs, it's also a great way to plan upgrades and set priorities. If I see that my users are spending 90% of their time in a given application, then I know that any kind of issues, or reports of issues involving that application need to be taken more seriously. Accurate usage data can be used to help as well as implicate people.

The Task Server, introduced in Version 2 has gained new abilities in Version 3, another benefit to those of us who like to do things after people go home, including the sysadmins. (Yes, sysadmins do in fact like to go home. Shocking, but true) Version 3's Task Server now adds the abilities to perform installations via Apple Installer Packages, collect Application Usage and User Data via the Task Server. While the last two are just an extension of the Task Server's reporting abilities from Version 2, being able to do installs via the Task Server is sweet indeed. Not having to sit there and watch progress bars from the Admin workstation when you have to install large packages to many machines is something that makes any administrator smile.

Encryption of the connections between the administrator workstation and clients has been added for control/observe tasks, text chats, sending text messages, Send Unix, Open Application/Items, Empty Trash, Set Startup Disk, Rename Computers, Sleep/Wake, Restart/Shutdown, Logout, and both file and package copying tasks. So, for those working in environments where unencrypted data connections are a bad thing, (which should be, well, everyone), Apple Remote Desktop allows you to handle these tasks more securely than before.

For those who don't like applications that try to take up all of the bandwidth, Apple Remote Desktop 3 allows you to specify an upper bandwidth limit for copying files and packages. if you're on a large network with lots of Macs, this can be an issue, especially if others on the network have the silly idea that they should be able to get work done even when you're using Apple Remote Desktop.

If you're into Dashboard, there's an Apple Remote Desktop observation widget that you can use to look at one client at a time. This can be good if you have one client you need to keep tabs on for long periods of time, but don't want to keep hitting the "Observe" button, or leaving that screen up constantly. (It's really handy for the 12 year old too. Hearing the voice of doom suddenly say, "Gee, I don't recall your teacher saying you were starting a unit on the history of Neopets" not only reminds the dear child of what he should be doing, but the mad scrambling you see in the widget is really funny.)

Now, don't get me wrong, all of the things I've talked about are important new features, and I've not hit all of them by a long shot. For a more complete list, you can look at the chart on the Apple Remote Desktop 3 Upgrade page. But there's one feature that is, for me, of great importance, because it makes doing mundane Apple Remote Desktop tasks manually a thing of the past, and extends the featureset of Apple Remote Desktop to one that approaches infinite:

AppleScript

You can now, finally, automate the Apple Remote Desktop application itself. This is a major one, because quite honestly, even if I can copy a file or install something to multiple computers via Apple Remote Desktop, prior to AppleScript, I had to do this manually. Select the computers, select the file, create the task, run the task. If I had to do multiple client management tasks a day, i had to sit there and make with the clickey-clickey for each thing.

A manual administration tool kind of blows.

Well, the suck level of Apple Remote Desktop has dropped like a rock. Now, the way Apple is pushing this is, of course, Automator. Automator rocks, it's way sweet, but, there are things that I can do with AppleScript that Automator's not going to be real good at, such as custom solutions that don't need any kind of user action beyond initiation.

First let's look at the dictionary though, to get an idea of what we can and can't do. Apple Remote Desktop 3 has a "Remote Desktop Suite" that contains the Apple Remote Desktop-specific items. It's a solid first dictionary, (tons better than some of the first attempts I've seen in other Apple applications, like Keynote), although it has a few holes, most notably application preferences and reports. Not being able to script applications preferences is an annoyance, as being able to script the preferences settings can be handy, especially if you're setting up a new administrator workstation. Not being able to automate Apple Remote Desktop reports via AppleScript is one of those "But reports beg to be automated" kinds of things, especially when you consider that scriptable reports would allow you to run the report, then dump it into another application for post-processing. Yes, there are ways around this, but then your report workflow starts to get more complex. Even if I could only automate the saving of scheduled reports, that would be something. Hopefully, this will show up in the next major release.

Another limitation is that scripting the adding of new machines to the "All Computers" list is not something you can just do, because you can't set up the authentication parameters through AppleScript. This can be good or bad depending on your POV. I find it to be more of an annoyance than anything, but there are ways to work around this limitation, just not via Applescript.

A bigger annoyance for me is that most of the properties of a computer or a computer list are read-only. This forces things like changing IP addresses, DNS names, etc., to be manual You can't get the contents of the Apple Remote Desktop information fields either. Not crippling, but annoying.

While you can get the selected computer, you can't get the selected computer list, which is just silly to me. So to target the list you're currently looking at, you can't just say "set theList to the selected list" or some variant. I found this to be really annoying, because it makes me have to either hardcode list names into my script or present selection dialogs, neither of which are good for flexibility or automation.

There's also a curious bug that shows up when you're trying to get a list of all the copy file destinations. If you run the following code, you'll see what I mean:

tell application "Remote Desktop"
     set theDestinationChoiceList to {applications folder, current users desktop folder, current users home directory, same relative location, specific folder, system folder, system fonts folder, system preferences folder, top folder of the boot disk}
     
set theDestinationList to choose from list theDestinationChoiceList with title "Select the destination for the file" with prompt "Pick the destination for the file(s)" without multiple selections allowed
end tell

Instead of getting a list of names, like "applications folder" you get the four letter codes for the folders, like "apps". It's a formatting issue more than anything, but it's something to be aware of. (yes, I've filed this as a bug with the Apple Remote Desktop team)

But even with the limitations of the dictionary, and sometimes odd list formatting, Apple Remote Desktop 3's scripting is more than adequate. For one, you can automate almost every management task that Apple Remote Desktop can perform. The syntax for doing so is a little obtuse, and I think the folks on the Apple Remote Desktop team who set up the dictionary should have talked to the core AppleScript team a little more about class names. (Come on guys, set network startup disk task as a class name? It's a little much.) Running the tasks is a two-part process. First you build the task, so for example, to create a Send unix command task, you have:

set theTask to make new send unix command task with properties {name:"Get boot drive root listing", script:"/bin/ls -ale", showing output:true, user:"root"}

(Since Apple Remote Desktop as to be able to do things regardless of any console login, you do a lot of stuff as root.)

To run the task, you use the execute command:

execute theTask on computer list "Admin Macs"

That's the basic procedure for pretty much any task. Define the task, execute the task on a computer list or computers. The Remote Desktop Suite has only seven actual commands:


It's a pretty simple list, but those are just the Apple Remote Desktop - specific commands. The list of classes is much longer, mostly due to the rather odd naming, like having separate classes for copying files to a client and from a client, instead of just a single copy class that lets you specify the parameters. I can also quibble with some things being classes instead of commands, but that's a style issue.

By adding AppleScript support, Apple Remote Desktop has given me an insanely cool feature, namely the ability to use folder actions with Apple Remote Desktop. For example, when updates become available from third parties, instead of having to manually initiate the install, I just implement a folder action. Drop the installer in the folder, and the folder action script deals with it for me. The task server makes this even cooler, since I can drop the installer on a local folder, and have a script that runs the install from the task server. I don't have to do anything else. I have a set of messages that I send out on a fairly regular basis, "Please log out when you go home, updating the server", "Please reboot your machine when you get a chance", etc. Write up a folder action and use some text files with the right message in it. Drag, Drop, done.

If someone has an application crash, I can set up a folder on their desktop where they can save the crash report. They drop the report in, and kick off a script. The script runs system_profiler, and then creates a tarball with the profiler report and the crash report, then copies it off to me with the computer name and date as the name. The folder it ends up in has another folder action attached to it that reads the file name, and puts both into a (non-ARD) report for me, with the name of the computer as the report name. I can then run an Apple Remote Desktop report to get more information off of the system if I want. If I could script reports, then I could do this automatically too, so what I would get would be a more complete picture of the machine, including Application usage for say, the last month. Being able to tell when an application started crashing is A Good Thing.

That's why I'm excited about AppleScript. In a lab situation, if someone's having problems with a project, rather than having to get the instructor's attention via the menubar widget, wait for the screen sharing to start, and then get helped, they could use a folder action that would take the problem file(s), send them off to the instructor, open them on the instructor's system and start a screen sharing or observation session, so the instructor gets the problem notification, the connection to the student, and the problem files at pretty much the same time.

It's the ability to tie all kinds of processes into Apple Remote Desktop via AppleScript that make Apple Remote Desktop 3's dictionary so valuable, so cool, and for me, one of the top two or three, if not the top reason to upgrade. Quite honestly, automation alone is a compelling reason to upgrade. When combined with the rest of Apple Remote Desktop 3's new features, it's a no-brainer.

With version 3, Apple answered a lot of requests, fixed some long-standing issues, and added not just a lot of new features, but new features that are useful. Sounds like a worthwhile upgrade to me.

Posted by John C. Welch at 14:58 | Permalink


Trackback Pings

TrackBack URL for this entry:

Comments

Post a comment




Remember Me?

(you may use HTML tags for style)

Search bynkii.com
FOB Links
MusicalGeeks.com
Diane Duane, Master Writer
Datamation
TackyShirt!
Your Mac Life
MacTech Magazine
MacJournals
IT Instruction
iGeek
Adrian Welch
Something*Positive
The Artwork of Melissa Findley
rachel F
The Donnas!
Robert Scoble, MS Tech Evangelist

Xserve

Mac Web Writers
Backup Brain
Dennis Cheung, MS
Rick Schaut, MS MacBU
Dan Crevier, MS Max Team
Omar Shahine, MS Hotmail Team
John Gruber, excellent writer
Michael J. Tsai
Mike Zornek
Erik J. Barzeski

MacBookPro

Get Moveable Type!
Use ecto, it RULES

Techie Links
AFP548
MacEnterprise.org
ProVAR Worldwide
Griffin Technology
digital.forest

Review Victims
The Microsoft Mac BU
Sprint
Goodlink
Microsoft Windows Mobile

MacMini_125x125