Table of contents

Payload

PwshUpdated 2026-10-01

The payload is the ordered list in lib/minimal-assembly-order.txt: 98 assemblies, each served in place from a read-only, memory-mapped store. Every image ships as IL only; ReadyToRun images from the runtime pack are re-emitted IL-only by the build. PowerShell is pinned at 7.7.0-preview.4 and .NET at 11.0.0-rc.1.26425.128.

How the payload is decided

Static reading cannot settle JIT-time loads: RyuJIT resolves the type tokens of a method it compiles, which can load an assembly on a branch that never runs. The device trace decides those cases. An example: SMA's adapter selection tests obj is CimInstance, DataRowView and DataRow (MshObject.cs:439-449), so those assemblies load the first time SMA wraps an object, although no object on the device is ever one of them.

Shipped assemblies

Store KB is an estimate of the IL-only image (metadata, IL bodies and resources), within 2% of measured store sizes where those exist. "Leaves at" names the step of the implementation plan that removes the assembly; an assembly ships until that step passes on device.

Assembly Store KB Referenced by Leaves at
Dev.MansfieldPlumbing.Pwsh Emitted by setup.ps1: the managed host
Markdig.Signed 482 MarkdownRender 2.8
Microsoft.ApplicationInsights 407 SMA 2.4
Microsoft.CSharp 290 Utility, SMA 2.7
Microsoft.Management.Infrastructure 209 Management, SMA 2.3
Microsoft.PowerShell.Commands.Management 824 Root
Microsoft.PowerShell.Commands.Utility 1,378 Root
Microsoft.PowerShell.MarkdownRender 27 Utility (Markdown cmdlets; a field of ConvertFromMarkdownCommand needs it at import) 2.8
Microsoft.PowerShell.Security 184 Root
Microsoft.Win32.Primitives 2 Type forwards only
Microsoft.Win32.Registry 19 Utility, SMA
netstandard 86 Type forwards only 2.8
Newtonsoft.Json 687 Utility, SMA 2.6
System 36 Type forwards only 2.6
System.Collections 98 Utility, SMA, Markdig.Signed, Microsoft.ApplicationInsights, Newtonsoft.Json +12
System.Collections.Concurrent 49 Utility, SMA, Net.Http, Text.Json, Threading.Tasks.Parallel
System.Collections.Immutable 234 Utility, Diagnostics.StackTrace, Reflection.Emit, Reflection.Metadata
System.Collections.NonGeneric 34 Management, Utility, SMA, ComponentModel.Primitives, ComponentModel.TypeConverter, Data.Common +10
System.Collections.Specialized 34 Management, Utility, SMA, Microsoft.ApplicationInsights, ComponentModel.TypeConverter, Diagnostics.Process +8
System.ComponentModel 3 ComponentModel.EventBasedAsync, ComponentModel.Primitives, ComponentModel.TypeConverter +1
System.ComponentModel.EventBasedAsync 13 SMA, Net.Mail, Net.Ping, Net.WebClient
System.ComponentModel.Primitives 28 Management, SMA, Newtonsoft.Json, Collections.Specialized, ComponentModel.EventBasedAsync +7
System.ComponentModel.TypeConverter 299 SMA, Newtonsoft.Json, Data.Common
System.Console 37 Utility, SMA, Diagnostics.Process, Diagnostics.TextWriterTraceListener
System.Data.Common 980 SMA 2.3
System.Diagnostics.DiagnosticSource 190 Microsoft.ApplicationInsights, Net.Http, Net.NameResolution +3
System.Diagnostics.FileVersionInfo 15 Management, SMA, Diagnostics.Process
System.Diagnostics.Process 161 Management, Utility, SMA, Microsoft.ApplicationInsights, Diagnostics.TextWriterTraceListener, Net.Ping
System.Diagnostics.StackTrace 12 Type forwards only
System.Diagnostics.TextWriterTraceListener 18 Utility
System.Diagnostics.TraceSource 44 Utility, SMA, Microsoft.ApplicationInsights, Newtonsoft.Json, Diagnostics.TextWriterTraceListener +1
System.Diagnostics.Tracing 3 Type forwards only
System.Drawing.Primitives 49 Utility, ComponentModel.TypeConverter, Data.Common
System.Formats.Asn1 91 Net.Security, Security.Cryptography
System.IO.Compression 245 SMA, Microsoft.ApplicationInsights, IO.Compression.Brotli, IO.Compression.ZipFile +2
System.IO.Compression.Brotli 27 Net.Http
System.IO.Compression.ZipFile 52 SMA
System.IO.FileSystem.AccessControl 18 Security, SMA
System.IO.FileSystem.DriveInfo 34 SMA
System.IO.FileSystem.Watcher 50 SMA
System.IO.MemoryMappedFiles 35 Reflection.Metadata, Security.Cryptography
System.IO.Pipelines 69 Text.Json 2.5
System.IO.Pipes 54 SMA, Diagnostics.Process
System.Linq 195 Management, Utility, SMA, Microsoft.CSharp, Microsoft.Management.Infrastructure, Collections.Immutable +6
System.Linq.Expressions 551 Utility, SMA, Microsoft.CSharp, Data.Common, Private.Xml
System.Management.Automation 13,707 Root
System.Memory 45 IO.Pipelines, Net.Mail, Net.Security +1
System.Net.Http 672 Utility, SMA, Microsoft.ApplicationInsights, Net.Requests, Private.Xml
System.Net.Mail 189 Management, Utility, SMA 2.9 (decision)
System.Net.NameResolution 101 Management, Microsoft.ApplicationInsights, Net.Http, Net.Ping +3
System.Net.NetworkInformation 52 Management, SMA, Microsoft.ApplicationInsights, Net.Http, Net.Mail
System.Net.Ping 42 Management 2.9 (decision)
System.Net.Primitives 95 Management, Utility, SMA, Microsoft.ApplicationInsights, IO.Pipes, Net.Http +11
System.Net.Quic 155 Net.Http
System.Net.Requests 145 Microsoft.ApplicationInsights, Net.Mail, Net.WebClient 2.9 (decision)
System.Net.Security 242 Utility, ComponentModel.TypeConverter, Net.Http, Net.Mail +2
System.Net.Sockets 221 Management, Utility, SMA, IO.Pipes, Net.Http, Net.Mail +4
System.Net.WebHeaderCollection 19 Microsoft.ApplicationInsights, Net.Requests, Net.WebClient 2.9 (decision)
System.Numerics.Vectors 3 Type forwards only
System.ObjectModel 27 Management, SMA, Newtonsoft.Json, ComponentModel.Primitives, ComponentModel.TypeConverter +5
System.Private.CoreLib 5,554 Root
System.Private.Uri 87 Management, Utility, SMA, Markdig.Signed, Microsoft.ApplicationInsights, Microsoft.Management.Infrastructure +13
System.Private.Xml 2,965 Management, Utility, SMA, Data.Common, Diagnostics.TextWriterTraceListener, Private.Xml.Linq
System.Private.Xml.Linq 138 Microsoft.ApplicationInsights, Newtonsoft.Json, ComponentModel.TypeConverter
System.Reflection.Emit 119 Type forwards only
System.Reflection.Emit.ILGeneration 2 Type forwards only
System.Reflection.Emit.Lightweight 2 Type forwards only
System.Reflection.Metadata 478 Diagnostics.FileVersionInfo, Diagnostics.StackTrace, Reflection.Emit
System.Reflection.Primitives 2 Type forwards only
System.Resources.Writer 13 ComponentModel.TypeConverter
System.Runtime 32 Type forwards only
System.Runtime.InteropServices 50 Type forwards only
System.Runtime.Intrinsics 5 Type forwards only
System.Runtime.Loader 2 Type forwards only
System.Runtime.Numerics 168 Utility, SMA, Data.Common, Formats.Asn1, Security.Cryptography
System.Runtime.Serialization.Formatters 51 ComponentModel.TypeConverter, Data.Common
System.Runtime.Serialization.Primitives 10 SMA
System.Security.AccessControl 43 Management, Security, SMA, Microsoft.Win32.Registry, IO.FileSystem.AccessControl
System.Security.Claims 40 Management, SMA, Net.Security, Security.Principal.Windows
System.Security.Cryptography 869 Management, Utility, Security, SMA, IO.Compression, Net.Http, Net.Mail +6
System.Security.Cryptography.Pkcs 10 Type forwards only
System.Security.Principal.Windows 24 Management, Security, SMA, Microsoft.Win32.Registry, IO.FileSystem.AccessControl, Security.AccessControl
System.Text.Encoding.CodePages 699 SMA 2.9 (decision)
System.Text.Encoding.Extensions 2 Type forwards only
System.Text.Encodings.Web 43 Text.Json 2.5
System.Text.Json 705 Utility 2.5
System.Text.RegularExpressions 331 Utility, SMA, Microsoft.ApplicationInsights, Newtonsoft.Json, ComponentModel.TypeConverter +3
System.Threading 31 Type forwards only
System.Threading.Channels 52 Diagnostics.Process, IO.FileSystem.Watcher, Net.Http +1
System.Threading.Tasks.Parallel 47 SMA
System.Threading.Thread 2 Type forwards only
System.Threading.ThreadPool 2 Type forwards only
System.Transactions.Local 161 Data.Common 2.3
System.Xml.Linq 2 Type forwards only 2.6
System.Xml.ReaderWriter 8 Type forwards only
System.Xml.XDocument 2 Type forwards only
System.Xml.XmlSerializer 4 Type forwards only
System.Xml.XPath 2 Type forwards only

Excluded

Assemblies Reason
Microsoft.CodeAnalysis, Microsoft.CodeAnalysis.CSharp Roslyn serves Add-Type -TypeDefinition and -MemberDefinition. Pwsh emits IL and never compiles C#.
JsonSchema.Net, JsonPointer.Net, Json.More, Humanizer Test-Json -Schema only.
System.Drawing.Common, System.Private.Windows.Core, System.Private.Windows.GdiPlus, Microsoft.Win32.SystemEvents GDI+; [SupportedOSPlatform("windows")].
System.ServiceProcess.ServiceController Get-Service and related cmdlets; Windows only.
System.Net.WebClient, System.Configuration.ConfigurationManager, System.CodeDom, System.Diagnostics.EventLog, System.Security.Cryptography.ProtectedData, System.Drawing No shipped image references them, directly or through a forwarder. Removed at step 2.1; a device trace requested none of them.

Verified load behavior

Traced in PowerShell at commit 1481b98f0079f979f658e49a7281024cc754049b (the shipped SMA) unless noted. The Unix build of SMA ships, so code under #if !UNIX is absent.

Assembly Finding Source
Newtonsoft.Json Reached on every engine start: the ExperimentalFeature type initializer calls PowerShellConfig.Instance, whose constructor creates a Newtonsoft JsonSerializer. ExperimentalFeature.cs:136, PSConfiguration.cs:99
Microsoft.Management.Infrastructure [ciminstance] is a built-in accelerator with no platform guard, and adapter selection tests CimInstance. The package's own assembly is reference-only; the Unix implementation comes from Microsoft.Management.Infrastructure.Runtime.Unix and references netstandard. TypeResolver.cs, MshObject.cs:439
System.Net.Mail [mailaddress] is a built-in accelerator and CliXml rehydration constructs MailAddress. TypeResolver.cs:806, serialization.cs:6693, :7315
Microsoft.ApplicationInsights With POWERSHELL_TELEMETRY_OPTOUT=1 set before SMA initializes, the telemetry type returns before creating a client; a device run confirmed CanSendTelemetry=False and no client. Telemetry.cs:178-207
Microsoft.PowerShell.MarkdownRender Import-Module -Assembly enumerates ExportedTypes, which loads every public type; ConvertFromMarkdownCommand._conversionType is a MarkdownRender enum, so the import needs the assembly for that class's layout. InitialSessionState.cs:5567
System.Text.Encoding.CodePages Registered once at engine start. AutomationEngine.cs:21
System.Management, System.DirectoryServices The wmi, wmiclass, wmisearcher, adsi and adsisearcher accelerators are inside #if !UNIX; the Unix build never references them. TypeResolver.cs:808-814 (v7.7.0-preview.5)