How to run SSMS 21 on Windows 11 Arm64

Getting SQL Server Management Studio (SSMS) 21 running on Windows 11 Arm64 is currently challenge for many developers who want to manage their database instances. SSMS still lacks native Arm64 support, however, we can get it working reliably with a few tricks.

Prerequisites

  • Windows 11 Arm64
  • PowerShell with Administrator privileges
  • Stable Internet connection

If you want to skip past the backend information, head on over to https://github.com/snickler/Posh-SSMSInstaller/blob/main/Download-SSMS.ps1

The Challenge

At the time of this post, SQL Server Management Studio 21 is only supported on x64 but contains partial Arm-native binaries when downloaded from an Arm64 device. If you attempt to run the executable through regular measures, the program simply doesn't open - causing frustration for those who want to use the program on these devices that can already emulate other applications.

Challenged with irritation and the forgotten realization that SSMS 21 uses the Visual Studio installer, I had the idea of running the installer file with the --arch x64 flags to force only the x64 workloads and components to install. I had hope of success at the sight of the SSMS 21 splash screen, until I was quickly brought back to reality.

Flabbergasted and yet again frustrated, I knew a solution existed, but I didn't yet know the answer. So, I went down the path of:

  • Installing SSMS 21 with the partial Arm64 binaries, using the SSM21 installer to create a layout
  • WinDbg to view which files weren't found
  • Agent Ransack to search through the cached VSIX packages for related files
  • KDiff3 to compare the folders and files of the arm64 and x64 SSMS 21 installations
  • Event Viewer for any .NET errors related to executing child processes used by SSMS 21.

What I've discovered is when installing the x64 SSMS 21 on arm64, the following VSIX packages aren't actually installed properly:

  • Microsoft.VisualStudio.MinShell.Targeted
  • Microsoft.VisualStudio.ExtensionManager
  • Microsoft.VisualStudio.ExtensionManager.x64
  • Microsoft.DiagnosticsHub.Runtime.Targeted
  • Microsoft.ServiceHub.Managed
  • Microsoft.ServiceHub.amd64
  • Microsoft.VisualStudio.Identity

When manually extracting and copying the directories from these packages to their proper locations, I achieved success!I didn't want to make everyone go through the manual process to fix this issue for the time being, which led to me making an automated solution.

The solution involves a custom PowerShell script that:

  1. Downloads and installs the x64 version of SSMS 21
  2. Identifies and downloads missing x64 components from the Visual Studio channel manifest
  3. Extracts and deploys these components to the correct SSMS installation directories

The PowerShell Solution

Here's the complete PowerShell script that automates the entire process:

Usage

Save the script as Download-SSMS.ps1 and run it with Administrator privileges:

# Basic installation.\Download-SSMS.ps1# Custom download location.\Download-SSMS.ps1 -DownloadPath "C:\Temp\SSMS-Components"# Verbose output for troubleshooting.\Download-SSMS.ps1 -Verbose

How It Works

Step 1: SSMS Installation

The script first downloads and installs SSMS using the official installer with specific x64 architecture flags:

$process = Start-Process -FilePath $ssmsInstallerPath -ArgumentList "--arch", "x64", "--quiet", "--wait" -Wait -PassThru -NoNewWindow

Step 2: Component Discovery

It fetches the latest SSMS 21 Release channel manifest:

$channelResponse = Invoke-RestMethod -Uri "https://aka.ms/ssms/21/release/channel" -Method Get

Step 3: VSIX Processing

The script downloads VSIX packages containing the missing components, extracts them, and copies the files to the appropriate SSMS directories.

Step 4: Installation Path Detection

Using the VSSetup module, it automatically locates your SSMS installation and ensures components are deployed to the correct locations.

Post-Installation

After running the script successfully, you should see output similar to:

========================================Download Summary:Target components found: 7Successfully downloaded: 7Download location: C:\path\to\downloads========================================

Launch SSMS from the Start Menu or run Ssms.exe directly. The application should now load completely with all features functional under x64 emulation.

Troubleshooting

If you encounter issues:

  1. Missing Components: Run the script with -Verbose flag to see detailed download information
  2. Installation Failures: Ensure you're running PowerShell as Administrator
  3. Path Issues: The script includes fallback methods to locate SSMS installations
  4. Network Problems: Check your internet connection and corporate firewall settings

Quick Closing Remarks

This solution has been tested on Surface Laptop 7. The PowerShell script automates what would otherwise be a tedious manual process of identifying and deploying missing components.

While we wait for the SQL Server team to release a native Arm64 version of SSMS, this approach provides a reliable way to use SSMS 21 on Windows Arm64 devices through x64 emulation, and it works quite well!