Showing tag results for Identity

Oct 13, 2026
Post comments count0
Post likes count1

Is it MSIX? Part 3: Find Package and Application Identity with TASKLIST and PowerShell

Howard Kapustein

We previously determined how to programmatically retrieve a packaged process' package and application identity. Now let's find MSIX package identity using existing tools. TASKLIST.EXE Using the packaged app from our previous example, we know the "image name" (aka executable filename) and that its PID (process ID) is 7664. lists packaged proces...

Oct 6, 2026
Post comments count0
Post likes count2

Is it MSIX? Part 2: Finding Package Identity with APIs

Howard Kapustein

We previously determined how to tell if a process is packaged or unpackaged using Task Manager. Now let's find its package and application identity in code. Windows provides APIs to retrieve package and application identity for a process: If you prefer WinRT: Kernel mode What about kernel mode? Nearly all MSIX APIs require a user-mode calle...

Sep 29, 2026
Post comments count0
Post likes count3

Is it MSIX? Part 1: How to Tell if a Process Is Packaged

Howard Kapustein

Overheard in a recent conversation: Enterprise Administrator: "The ***redacted*** application is awesome, but it really should be an MSIX package." Microsoft Developer: "Ummm, it already is." That sparked another question: How can you tell if an application is packaged or unpackaged? Turns out there's a few simple w...

Aug 18, 2026
Post comments count0
Post likes count3

What’s a PFN?

Howard Kapustein

What's a PFN? MSIX introduced Package identity in Windows 8. While the familiar package identity "5-tuple" was functional, it wasn't especially convenient to pass through APIs or embed in resources such as files, registry keys, URLs, or XML documents. To address this, Windows defined an opaque string representation known as a Package Moniker. Win...

Jul 21, 2026
Post comments count6
Post likes count2

Display Name is for Humans

Howard Kapustein

Package identity exists for one primary purpose: This is a considerable improvement over the historical tendency to assign UUIDs and GUIDs to nearly everything - including things that humans were expected to discuss in meetings. Identity Is for Systems A package's Name, Package Full Name, and other identity-derived values are intended for deve...

Jul 7, 2026
Post comments count0
Post likes count0

Applications Are Not Packages

Howard Kapustein

Applications are not packages. Let me repeat. Applications are not packages. This is a common misconception due to the (too) often blurring of concepts and terminology. Packages and applications are different and distinct things, so it's important to understand what those words mean (to MSIX). Packages and Applications Are Different Things An ...

Jun 16, 2026
Post comments count0
Post likes count3

Third Rule of MSIX

Howard Kapustein

MSIX has several core principles underlying its design and implementation. Engineers half-jokingly call these The Rules of MSIX. The Third Rule of MSIX is arguably the most important and certainly the most foundational: Package identity is unique across space and time Packageidentity is a unique identifier corresponding to a specific set of b...

May 19, 2026
Post comments count0
Post likes count3

Package Identity

Howard Kapustein

An MSIX package identity is composed of a five-part tuple that uniquely identifies a package. It consists of the following attributes: Together, these fields form the canonical identity of a package. Programmatically, this identity can be represented using APIs such as Windows.ApplicationModel.PackageId or the PACKAGE_ID structure. Why Pa...

May 12, 2026
Post comments count6
Post likes count5

Is This a Packaged Process?

Howard Kapustein

Sometimes you need to know whether the current process has package identity. Certain Windows features require it, and behaviors can differ—both technically and culturally. For example, classic Windows applications often store settings in the registry, whereas packaged applications typically use ApplicationData.LocalSettings. So how can your code ...