How to Update macOS When MDM Locks Software Update Settings
Trying to update macOS but MDM locked your Software Update settings? I recently ran into this exact problem—my MDM profile completely blocked access to Software Update in System Settings. But here’s what I discovered: you can still update macOS using Terminal, even when MDM locked restrictions prevent GUI access.
Here’s the good news: the softwareupdate command line tool bypasses those MDM restrictions and lets you install macOS updates directly. Whether you need to update macOS from Sequoia to Tahoe or install security patches, Terminal has your back.
Quick Fix (TL;DR)
- Open Terminal
- Check for updates:
softwareupdate --list - Install specific update:
sudo softwareupdate --install "macOS Tahoe 26.0.1-25A362" --agree-to-license --restart --force - Your Mac will download, install, and restart automatically
Why the Terminal Works When Settings Doesn’t
The key is that MDM profiles typically restrict access to the graphical Software Update interface in System Settings, but they don’t always block the underlying command-line tool. The softwareupdate command talks directly to Apple’s update servers and can update macOS even when Settings is locked by MDM.
In my case, I had an MDM profile that completely greyed out the Software Update section. You can see in the screenshot below that it says “These settings are controlled by a profile.” But Terminal? Terminal doesn’t care about those MDM locked GUI restrictions.

The Fix: Updating macOS via Terminal
First things first, you’ll need to open Terminal. You can find it in Applications > Utilities, or just hit Cmd+Space and type “Terminal”.
Step 1: Check What Updates Are Available
Before you install anything, let’s see what’s available. Type this command:
softwareupdate --list
This command queries Apple’s servers and shows you all available updates for your Mac. You don’t need sudo for this. It’s just checking what’s out there.

In my case, it showed two updates: macOS Sequoia 15.7.1 and macOS Tahoe 26.0.1. Since I wanted to jump to Tahoe (macOS 26), I noted the exact label: macOS Tahoe 26.0.1-25A362. The key is to copy that label exactly as show. macOS is picky about this.
Step 2: Install the Specific Update
Now here’s where it gets interesting. To install a major macOS update, you’ll need to use sudo and include a few flags:
sudo softwareupdate --install "macOS Tahoe 26.0.1-25A362" --agree-to-license --restart --force
Let me break down what each part does:
sudogives you admin privileges (you’ll need to enter your password)--install "update name"specifies which update to install--agree-to-licenseautomatically accepts the license agreement--restartautomatically restarts your Mac after installation--forceforces the restart without prompting you

When you run this command, you’ll see “Finding available software” followed by “Downloading macOS Tahoe 26.0.1” and a prompt for your password. This is normal. Just enter your admin password and press Enter.
Step 3: Wait for the Download
The update will start downloading immediately. You’ll see a progress indicator right in Terminal showing the percentage. Depending on your internet speed and the update size, this could take anywhere from 10 minutes to an hour.

For a major macOS version update like Tahoe 26.0.1, the download was about 9GB in my case. The Terminal shows you real-time progress, so you can see exactly how far along you are. Once it hits 100%, the installation process begins and you’ll see a message indicating the download is complete.

Step 4: Installation and Restart
Here’s the cool part: unlike GUI updates that require you to babysit the process, the Terminal method handles everything automatically. The system will:
- Download the update
- Prepare the installation
- Automatically restart your Mac
- Complete the installation during startup
When your Mac boots back up, you’ll see the “Software Update Complete” notification confirming that your Mac has been updated to macOS Tahoe.

Boom! You’re now running the latest version of macOS despite the MDM restrictions. The entire process from start to finish took me about 30 minutes, with the bulk of that time spent downloading.

Installing All Available Updates at Once
If you want to install everything Apple has for your Mac’s security updates, Xcode Command Line Tools, Safari updates, the works as you can use this command:
sudo softwareupdate --install --all
The --all flag tells it to grab every available update. This is great for maintenance, but be careful. It might install things you don’t want or need.

For example, in the screenshot above, you can see it installing Command Line Tools for Xcode 26.0. Suffice to say, the --all flag is powerful but use it wisely.
Important Notes and Gotchas
Admin password required: You’ll need administrator access to your Mac. If your MDM profile restricts that too, this method won’t work.
Major vs minor updates: This method works for both major macOS versions (like going from Sequoia to Tahoe) and minor security updates.
Use exact update names: When you run softwareupdate --list, copy the exact label of the update you want. macOS is picky about this. Typos won’t work.
Backup first: I can’t stress this enough. Before any major OS update, make sure you have a current Time Machine backup or clone of your system. Things can go wrong.
Enterprise considerations: If you’re on a company Mac, check with IT first. There might be legitimate reasons why updates are restricted (like app compatibility testing). Bypassing MDM policies could violate your organisation’s acceptable use policy.
Wrapping Up
When MDM profiles lock down your Software Update settings, don’t panic. Terminal has your back. The softwareupdate command lets you check for, download, and install macOS updates even when the graphical interface is disabled.
Just open Terminal, list available updates with softwareupdate --list, and install the one you need with the full command including --agree-to-license --restart --force flags. In my case, I went from a locked-down Software Update pane to macOS Tahoe 26.0.1 in about 30 minutes, with most of that time spent on the download.
If this post has been useful, support me by buying me a latte or two 🙂
