Skip to content

00 Setting up UEX Including Branding and Customising UEX

Ayla Abbott edited this page Feb 16, 2020 · 3 revisions

Branding

The main goal with UEX is to a have custom branded and therefore trusted interaction with your users. To achieve this, an admin is capable of customsing UEX in many different ways. Before uploading the scripts to your Jamf Pro Server you'll want to personlize the experience a little and in v4.2 this is easier. All changes need to happen in the main script 00-UEX-Jamf-Interaction-no-grep.sh. There is a plist created (/Library/Preferences/github.cubandave.uex.plist) so that other scripts will have the same settings.

Logo

UEX will automatically use your Self Service Branding if you use the native Jamf Self Service for macOS Branding Settings. Otherwise you can opt to customise this with packaged images.

  • Be sure to package this in the UEX resources so the branding shows up. Otherwise it will revert to jamf logo
    • The UEX Resources Policy is run to install images if they do not exist
  • If you do not use Self Service then you can:
    • Open 00-UEX-Jamf-Interaction-no-grep.sh
    • In the Jamf Interaction Configuration section
      • Change customLogo="/Library/Application Support/JAMF/Jamf.app/Contents/Resources/AppIcon.icns" to whatever you want.
  • If you do use Self Service then you can:
    • Change SelfServiceIcon="$loggedInUserHome/Library/Application Support/com.jamfsoftware.selfservice.mac/Documents/Images/brandingimage.png" to whatever you want. If that file doesn't exist then tries $customLogo then the Jamf icon.

Dark Mode! (as of v5.0)

Now you can set UEX to use the Utility version of jamfHelper, which supports Dark Mode! You can also set custom icons to use for Dark and Light Mode

  • Be sure to package this in the UEX resources so the branding shows up. Otherwise it will revert to jamf logo
    • The UEX Resources Policy is run to install images if they do not exist
    • Open 00-UEX-Jamf-Interaction-no-grep.sh
    • In the Jamf Interaction Configuration section
      • Add the path to your icons in UexLightIcon="" & UexDarkIcon=""
  • Note: this does not change the appearance of CocoaDialog but will change the icon
  • Note: PleaseWait.app supports Dark Mode already but not with a dynamic icon

Using Dark Mode/jamfHelper Utility window even without 2 icons

The default Jamf Helper appearance is "HUD" If you want to allow the jamfHelper window to support dark mode but only use your custom icon. Or, you just like the look of the "Utility" version better then you can also do this.

  • Open 00-UEX-Jamf-Interaction-no-grep.sh
    • In the Jamf Interaction Configuration section
    • set the supportDarkModeWithOnlyCustomIcon to true

Title Bar

  • Open 00-UEX-Jamf-Interaction-no-grep.sh
  • In the Jamf Interaction Configuration section
  • Change title="Your IT Department" to whatever you want
    • For example title="Moss and Roy | IT"

Jamf Ops Team Name

If you use the compliance check feature and the UEX policy is forced because it has been ignored by the end user there is a "friendly" note reminding the user to kindly not ignore UEX prompts in the future; it's signed with the Jamf Ops Team Name that you can specify here;

  • Open 00-UEX-Jamf-Interaction-no-grep.sh
  • In the Jamf Interaction Configuration section
    • Change jamfOpsTeamName="System Administrator" to whatever you want
    • For example jamfOpsTeamName="End User Computing"

Service Desk Name

If you use the Help Desk Ticket feature in combination with compliance, then the user is notified that the IT Support has been notified once they've run out time to clear space on the computer prior to the policy running. You can customise the name of your IT Support:

  • Open 00-UEX-Jamf-Interaction-no-grep.sh
  • In the Jamf Interaction Configuration section
    • Change ServiceDeskName="IT Support" to whatever you want
    • For example ServiceDeskName="IT Helpdesk"

Do Not Disturb (as of v5.0)

By default UEX is configured to treat a user setting Do Not Disturb in Notification Center as if the user is in a presentation. See Presentation Delay for more info. This can be disabled globally with the below steps.

  • Open 00-UEX-Jamf-Interaction-no-grep.sh
  • In the Jamf Interaction Configuration section
    • Change supportDoNotDisturb=true to false

Setting Custom Paths

The default location where logs, UEX plists and the image/app resources are stored is in /Library/Application Support/JAMF/UEX. If you need, to for whatever reason, move this then you can:

  • Open 00-UEX-Jamf-Interaction-no-grep.sh
  • In the Jamf Interaction Configuration section
  • Change UEXFolderPath="/Library/Application Support/JAMF/UEX" to whatever you want
    • For example UEXFolderPath="/Library/Application Support/Acme Inc/UEX
  • If you do this then you will need to update the UEX - Deferral Detection Extension attribute to the latest version.
  • You will also need to package the UEX resources to go into a resources folder in that location. Otherwise it will not work either.
  • If you've already been using UEX in your environment, then you can replace the script contents in the UEX - Deferral Detection extension attribute with UEX - Deferral Detection.sh in the Extension Attribute folder. 😜

UEX Resources Package

The UEX Resources package contains all the parts needed to make UEX work.

  • battery_white.png
    • Used for the battery plugin message and install at logout when power is required.
  • cocoaDialog.app
    • Use for the bubble dialogs on the top right for started and stop notifications
  • PleaseWait.app
    • used to show a continuous progress bar for long installs that reminds user of the UEX requirements such as restarts, logouts, and not opening certain apps.
    • may change this to cocoaDialog in the future
  • User Needs Helps Clearing Space.app

Customising Please Wait (Xcode required)

If you want to update the title and icon in the PleaseWait.app open the project in Xcode from the PleaseWaitMini folder.

  1. Open PleaseWait.xcodeproj in ./PleaseWaitMini/
  2. To update icon simply replace the PleaseWait.icns in /Jamf-Interaction-Toolkit/PleaseWaitMini/ (512x512px recommended)
  3. To update the title bar go the MainMenu.XIP and change the title in the inspector attributes
  4. Build the project with your own teamID/Cert. (You may have to update some parts of the project to recommended strings but it should still work.)
  5. Replace the PleaseWait.app that's in ./Packages/payload/Library/Application Support/JAMF/UEX/resources/

Custom Images

  1. Add custom SelfServiceIcon and/or customLogo images you want to the payload under ./Packages/payload/Library/Application Support/JAMF/UEX/resources/

Building the Package

  1. Once you've added all the resources you'd like then run then open Terminal.app.
  2. Type sudo sh and drag the build_pkg.sh from ./Packages/ into the terminal window
  3. Hit return and enter in your password.
  4. This sets the right permissions and ownership on the payload contents and gives you a package like
  • UEXresourcesInstaller-201907131148.pkg

  • If run directly without sudo it will error out it will give the full command to put to make it run properly.

Please run as root with the command below.
sudo sh "./Packages/build_pkg.sh"

About customising the path

Please see Setting Custom Paths

Uploading to your Jamf Pro Server

  • Create your UEXresourcesInstaller PKG with build.sh
  • Upload the Package to your jamf Pro Server
  • Upload the 'UEX - Deferral Detection.xml' Extension Attibute to your jamf Pro Server
  • Upload all the scripts in the 'Scripts' folder to your jamf Pro Server

Note: You can also create the scripts on the jamf pro server just make sure to keep the names (.sh optional)

API Config Tool

Now all you have to do is run the script, UEX Jamf Pro configuration tool.sh in terminal from the API Configuration Tool folder and the rest is taken care of for you.

New in v5.0 the API Configuration Tool gets a facelift. UI and buttons!!

  • Note: The tool will save your answers in ~/Library/Preferences/github.cubandave.uex.plist
    • except your password of course
  • If you use Jamf Cloud you'll want to anwer Yes to the first question
    • Also may be needed if you're having issues running the tool
  • Add your Jamf Pro URL
    • any trailing slash / is removed automatically for the API commands
  • Put in your user name and password
  • Enter in the category name you'd like to use
    • Hit return to use the default
  • Copy and paste the package name of your UEX Resources
  • To make a policy that makes the check-in daemon compatible with UEX you should answer Yes to the question Do you want to modify the Check-in Launch Daemon?
  • Enable helpdesk ticket notification with restricted software (true or false)
    • If true specify the name of the app
    • Hit return to use the default
  • Enable helpdesk ticket notification with general computer group (true or false)
    • If true specify the name of the group
    • Hit return to use the default
  • That's it!!

This sets up or updates:

  • All the script and policies the the right category
  • All the helper agent policies
  • All the script parameters
  • The policy and scoping groups for the deferral system to work
  • The policies and groups for Helpdesk tickets if enabled
  • The restricted software for Helpdesk tickets if enabled
  • At the end it will open up the groups and policies that are needed to be enabled with email alerts and the API Username and Password into the policies.