Switch branches/tags
Nothing to show
Find file Copy path
5d1f226 Jul 13, 2018
1 contributor

Users who have contributed to this file

241 lines (240 sloc) 21.5 KB

The MUT MUT Logo

The unofficial, all-in-one mass update tool designed to be the perfect companion to Jamf Admins


Please note that The MUT is designed, built, and maintained outside of Jamf. It is not affiliated with Jamf, it is not officially maintained by Jamf.

This app is a learning project for me to learn how to use Xcode and program in Swift, and while I will do my best to maintain it, I cannot guarantee its functionality.

If you are having trouble with your CSV not parsing properly, and you are exporting your CSV from Excel, try using "Windows Comma Separated (.csv)". Windows Comma Separated uses a slightly different linebreak character, which can sometimes play nicer with the CSV parsing functions in The MUT.

What it is:

The MUT is a native macOS application written in Swift 3 which allows Jamf admins to make mass updates to attributes (such as username, asset tag, or extension attribute) of their devices and users in Jamf.

Admins can enter the URL for their Jamf server (whether cloud hosted or on-premise), a username and password for The MUT to use, select the device type, attribute type, and unique identifier type from dropdowns, and browse to their CSV file. A pre-flight check will give a preview of the actions to be taken, and then the admin can submit their updates.

Steps for use:

Format your CSV

  1. Fill out Column A with the unique identifiers to be used (serial numbers or Jamf ID numbers)
  2. Fill out Column B with the values for the attributes to be updated
  3. Headers are optional. If you include them, The MUT will throw a 404 on line 1, but it will ignore this error and continue updating the rest of the rows
  4. If you are looking to strip values off of devices (such as removing the username from all of your iPads) you can include a header row so that The MUT knows the column exists, and then leave the rest of Column B blank. This will strip set the value for that attribute to null

Examples of GOOD CSV

Good CSV With Headers

Serial Username
C111111 mike.levenick
C222222 john.smith
C333333 jane.smith

Good CSV Without Headers

C111111 mike.levenick
C222222 john.smith
C333333 jane.smith

Good CSV for Removing Usernames

Serial Username

Examples of BAD CSV

No Header && No Column B (MUT will not "see" Column B at all)


Commas in Attribute Values (MUT will believe Column B ends prematurely)

Serial Building
C111111 Eau Claire, WI
C222222 Minneapolis, MN
C333333 New York, NY

It is now possible to change the delimiter MUT uses to a semi-colon under the Settings menu at the top of the page. Use this feature if you must include commas in attribute values.

Verify your credentials

  1. Select the radio button for Jamf Cloud hosted or on-premise Jamf server
  2. Fill out your instance name if Jamf Cloud hosted, or your full URL if on-premise
  3. Enter a username and password to use for the updates you wish to run

The MUT does a read of your Activation Code via the API to verify the credentials. If you wish to give The MUT's user minimal permissions, it must include at least Update privileges for the attribute you wish to update, as well as Read privileges on the Activation Code.

  1. Select whether or not you'd like to save the username for your next run (it is saved by default). The MUT will never store your password.
  2. Hit the "Verify Credentials" button (or simply press Enter) to verify the credentials you've entered
  3. A message will be displayed to let you know whether or not your credentials are correct

Prepare for your updates

  1. Select the Device Type, Unique Identifier, and Attribute from the dropdowns
  2. If you're updating an Extension Attribute, enter the Extension Attribute ID number in the box (you can find the EA ID in the URL while viewing the EA in Jamf)
  3. Browse for your CSV File
  4. Hit the "Pre-Flight Check" button
  5. Review the information in the display paying particularly close attention to whether or not The MUT sees the correct number of lines in your CSV, and that your device type/attribute are correct. Once you make a run and the attributes get updated, there is no "undo" button

Send your updates

  1. Hit the "Submit" button to send the updates to Jamf
  2. Messages will be displayed in either green or red, depending on the success of the run
  3. In case of a failure, the HTTP code of the failure will display. The MUT may also try to provide some advice on why you received that error

Top Tips

  • There is an option in the top Menu Bar under "Settings" to change the character which separates items on your CSV file to either a comma (,) or a semi-colon (;). This is especially useful for international folks who delimit their CSV files by semi-colon by default, or for folks who wish to include commas in their attribute values.
  • There is an option in the top Menu Bar under "Settings" to enable advanced debugging. This will display the full HTML code of the API response, and is especially useful in situations where you are getting a 409 - Conflict error and want to see what the issue may be.
  • There is an option in the top Menu Bar under "Settings" to clear any stored values that you may have by default, including Delimiter, Username, and your server URL.
  • There is an option in the top Menu Bar under "File" to save the contents of the logging box. This is especially useful in combination with advanced debugging when trying to figure out why some devices are not updating properly.

Advanced Workflows

Create multiple users en masse

Your Jamf server will create users on demand. This means that if you attempt to assign a device to a user that does not exist, the username will be created. It is important to note that the usernames will be created and populated with whatever user/location information currently exists for that device, such as Full Name, Phone Number, etc.

  1. If you already know which devices will go to which users, simply fill out your CSV as normal, and the usernames will be created as they are assigned
  2. If you simply wish to create all the usernames without having them assigned to the same user, fill out Column A of your CSV with the same device serial over and over. This can be any device, but it is recommended that you use some sort of "test device" or Jamf Admin's device to limit unintended behavior for end-users
  3. Fill out Column B with all of the usernames that you wish to create. Your CSV Should look something like:
Serial username
C1111111 mike.levenick
C1111111 bill.smith
C1111111 jane.smith
C1111111 ronnie.smith

The update run will create the usernames mike.levenick, bill.smith, jane.smith, and ronnie.smith, and then at the end of the run the device will be unassigned from any user. Alternatively, the last line can be the correct username to associate that device (such as the admin's username if you're using an admin's device).

Remove users from devices en masse

If you leave Column B blank, The MUT can wipe out the values for whatever attribute you're updating. This is especially useful when unassigning users from devices. However, The MUT needs to "see" Column B before it will let you do a run. Headers are sufficient to help MUT see the column, so a CSV formatted similar to the following will remove the usernames from devices C111111, C222222, and C333333.

Serial Username