Set Sail for Smooth Seas: Effortless Mac Enrollment with Intune

Setting up a new Mac can feel like navigating a stormy sea for both IT admins and new users. Traditional Mac onboarding often involves a tedious process of manual configuration, software installation, and security settings application. This can lead to:

  • Lengthy Deployment Times: IT teams spend valuable time managing individual devices, hindering productivity.
  • Security Vulnerabilities: Inconsistent manual configuration can leave devices exposed to security threats.
  • Frustrated Users: Complicated setup processes can be confusing and time-consuming for new users, hindering their adoption of the device.

This blog post explores how to utilize swiftDialog alongside Microsoft Intune to create a dynamic and informative onboarding experience for macOS users.


Working in Harmony: A Seamless Onboarding Experience

Imagine this: a new employee receives their Mac. They power it on, connect to the network, and are greeted by a clear, intuitive swiftDialog interface. Intune, working behind the scenes, automatically pushes the necessary configuration profiles, security settings, and applications. The user simply follows the on-screen prompts, entering their credentials, enrolling in multi-factor authentication, or selecting preferred language settings.

Throughout this process, swiftDialog provides a familiar Mac experience, guiding users through each step with minimal technical jargon. Once complete, the user is presented with a ready-to-use Mac, pre-configured for their specific needs and compliant with organizational security policies.


What is swiftDialog?

swiftDialog is an open-source utility specifically designed for macOS. It allows administrators to create interactive dialog boxes that can be triggered during the execution of shell scripts. These dialogs go beyond simple messages; they can be used to actively guide users through the onboarding process. Here's a breakdown of its capabilities:

  • Informative Communication: swiftDialog allows administrators to display clear and concise messages to users. This can be used to explain the purpose of each configuration step, highlight important security policies, or provide contextual information.
  • Interactive Input Collection: More than just displaying information, swiftDialog can actively collect user input. This can include gathering credentials for logins, prompting users to make enrollment choices (like multi-factor authentication), or collecting preferences for language settings.
  • User-Friendly Options: swiftDialog allows for the presentation of various options to users during the setup process. This can involve providing clear buttons for selection (like "Continue" or "Cancel") or presenting radio buttons or checkboxes for multi-choice options.
Customization for a Smooth Experience:

swiftDialog isn't just about functionality; it's also about creating a visually appealing and informative experience. Administrators have a high degree of control over the appearance of the dialogs. This includes:

  • Text Content: Customize the text displayed in messages, prompts, and buttons to clearly communicate with users.
  • Visual Appeal: Control the look and feel of the dialogs, including fonts, colors, and even the inclusion of relevant icons.
  • Tailored Options: The number and type of buttons, checkboxes, or radio buttons can be tailored to the specific needs of each step in the onboarding process.
Why Integrate swiftDialog with Microsoft Intune?

By leveraging swiftDialog's capabilities, you can create a user-friendly and interactive onboarding experience. This streamlines the onboarding process for users while ensuring consistency and adherence to security policies. You can imagine it as Autopilot for Macs.

This integration not only saves time but also standardizes the onboarding process, ensuring consistency across the organization.


Implementation Overview

Here’s a step-by-step guide to build your own customised and branded onboarding experience using Swift Dialog with Microsoft Intune:

Prepare Your Scripts and JSON Configurations:
  • Begin by crafting a swiftdialog.json file which will dictate the behavior of swiftDialog, such as the dialog's title, message, and any list items that need user interaction. Sample code is as below:
{
  "title": "Welcome to IRL Automated MacOnboarding.",
  "message": "Your computer setup is underway. Feel free to step away, this could take 30 minutes or more. \n\nYour computer will restart when it's ready for use",
  "blurscreen": true,
  "moveable": false,
  "ontop": true,
  "width": "800",
  "icon": "/Library/Application Support/Microsoft/IntuneScripts/Swift dialog/icons/IRL.png",
  "centreicon": false,
  "iconsize": "100",
  "listitem": [
    {"title": "Company Portal", "icon": "/Library/Application Support/Microsoft/IntuneScripts/Swift dialog/icons/CompanyPortal.png", "status": "pending", "statustext": "Pending"},
    {"title": "Microsoft Office", "icon": "/Library/Application Support/Microsoft/IntuneScripts/Swift dialog/icons/office.png", "status": "pending", "statustext": "Pending"},
    {"title": "Microsoft Edge", "icon": "/Library/Application Support/Microsoft/IntuneScripts/Swift dialog/icons/Edge.png", "status": "pending", "statustext": "Pending"},
    {"title": "Microsoft VS Code", "icon": "/Library/Application Support/Microsoft/IntuneScripts/Swift dialog/icons/vscode.png", "status": "pending", "statustext": "Pending"},
    {"title": "Microsoft Remote Desktop", "icon": "/Library/Application Support/Microsoft/IntuneScripts/Swift dialog/icons/RemoteDesktop.png", "status": "pending", "statustext": "Pending"},
    {"title": "Microsoft Defender", "icon": "/Library/Application Support/Microsoft/IntuneScripts/Swift dialog/icons/Defender.png", "status": "pending", "statustext": "Pending"},
    {"title": "Microsoft Teams", "icon": "/Library/Application Support/Microsoft/IntuneScripts/Swift dialog/icons/Teams.png", "status": "pending", "statustext": "Pending"},
    {"title": "Adobe Acrobat Reader", "icon": "/Library/Application Support/Microsoft/IntuneScripts/Swift dialog/icons/Acrobat.png", "status": "pending", "statustext": "Pending"},
    {"title": "FileVault", "icon": "/Library/Application Support/Microsoft/IntuneScripts/Swift dialog/icons/FileVault.png", "status": "pending", "statustext": "Checking status..."}
  ],
 "buttonarray": [
    {
      "buttontitle": "Contact IT Helpdesk",
      "buttonactiontype": "open",
      "buttonaction": "mailto:it-helpdesk@example.com?subject=Enrollment%20Issue&body=Please%20see%20attached%20enrollment%20log.&attachment=file:///Library/Application%20Support/Microsoft/IntuneScripts/onBoarding/onboarding.log",
      "key": "i"
    }
  ]
}
  • As a quick start, you should change the following:
    • title
    • message
    • icon(s)
    • listitem(s)
  • You’ll also need the icons & scripts that perform various onboarding tasks, like verifying FileVault, installing software, or running initial configuration scripts.
  • The folder structure should be as below:
Package Your Scripts:
  • Place your scripts and the JSON configuration file into a directory.
  • Compress this directory into a .zip file, ensuring that all necessary scripts and configurations are included.
Deploy Via Microsoft Intune:
  • Upload the .zip file to a suitable cloud storage platform that your Intune setup can access.
  • Use Intune to deploy the onboarding script to all your Macs. This script will download and execute your onboarding script. This script should unpack the .zip file and run swiftDialog with the appropriate settings.

Monitor and Adjust:

  • Once deployed, monitor the execution and user interaction with the onboarding dialogs.
  • Make adjustments based on feedback and logs to improve the script or dialog prompts.

Demo: End User Experience


Benefits of Using swiftDialog with Intune

  • Consistency: Standardizes the onboarding process across all macOS devices in the organization.
  • Efficiency: Automates repetitive tasks and information dissemination, freeing up IT resources.
  • User Experience: Provides users with a visually appealing and informative onboarding process, enhancing their first interaction with their new device.

Bon Voyage! Setting Sail with Confidence

By integrating Microsoft Intune's centralized device management with swiftDialog's user-friendly interface, organizations can transform Mac onboarding into a smooth and efficient voyage. New users are greeted by a clear, informative experience, guided through essential setup steps, and equipped with the necessary tools for success. This streamlined approach empowers users to become productive quickly, minimizing frustration and maximizing adoption.

For IT teams, this powerful duo translates to smoother seas. Manual configuration tasks become automated, security is consistently enforced, and centralized management frees up valuable resources for more strategic initiatives. Combined, Microsoft Intune and swiftDialog offer a robust solution that empowers both users and IT to navigate the onboarding process with confidence.

Ready to set sail for effortless Mac enrollment? Explore Microsoft Intune and swiftDialog today, and experience the difference for yourself!


Resources:
https://github.com/microsoft/shell-intune-samples

https://github.com/swiftDialog/swiftDialog