Every credential on a Windows device passes through one process. Its name is lsass.exe, the Local Security Authority Subsystem Service. It validates your sign-in, holds your Kerberos tickets, and answers when an application asks who you are. That makes it the single highest-value target on the machine. Windows offers three overlapping ways to defend it, and almost every engineer I speak to has enabled one while believing they enabled another.
This post separates them. It explains what a protected process actually is, how that differs from virtualisation-based credential isolation, and why a single third-party smartcard or anti-virus driver can silently stop either one from loading. Most importantly, it shows you how to prove from a device which protections are genuinely running, rather than merely written into the registry.
LSA protection (RunAsPPL) makes lsass.exe a protected process so only Microsoft-signed code can load into it. Credential Guard is something else entirely: it moves your secrets out of lsass.exe into an isolated process called LSAIso.exe, behind the hypervisor. Enabling one does not enable the other, and both are configured in one place but enforced somewhere else, so a registry value proves nothing on its own. Read WinInit event 12 and the Win32_DeviceGuard WMI class to find out what is really running, and read the CodeIntegrity operational log to find the driver that is stopping it.
The problem: three defences, one target, and a config that lies
Here is the ticket, roughly as it always arrives. A security review asks for LSA protection. An engineer opens Intune, searches the Settings Catalog for anything containing the word "guard", finds Credential Guard, sets it to Enabled, and closes the ticket. Six months later an auditor asks for evidence that LSASS runs as a protected process, and there is none, because nobody ever configured that.
The reverse failure is quieter and worse. An engineer does the right thing. They set RunAsPPL to 1, reboot, and move on. The registry value is there. The device reports compliant. And LSASS is running completely unprotected, because a smartcard mini-driver on that hardware model is not signed for LSA, so the loader declined the whole request at boot.
Three separate mechanisms sit on top of lsass.exe. They are frequently conflated, so here is what each one actually stops.
| Protection | What it actually stops | Mechanism |
|---|---|---|
| LSA protection (RunAsPPL) | Non-protected processes reading LSASS memory or injecting code into it. Any plug-in not signed with a Microsoft signature is refused at load time. | Protected process light, enforced by the kernel at process creation |
| Credential Guard | Extraction of NTLM password hashes, Kerberos ticket-granting tickets, and Credential Manager domain credentials, even by malware running as administrator. | Virtualisation-based security. Secrets never live in lsass.exe at all. |
ASR rule 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2 | Processes opening a handle to LSASS process memory. Blocks the access, not the process. | Microsoft Defender Antivirus attack surface reduction |
Notice the third row. Microsoft is explicit that if you have enabled LSA protection, that attack surface reduction rule "isn't required" and "doesn't provide extra protection", because the two work similarly. Defender for Endpoint even reclassifies it as not applicable. The rule exists for the organisations that cannot enable the other two, and Microsoft names the reason: "compatibility issues with custom smartcard drivers or other programs that load into the LSA."
The gotcha that defines this whole topic. Configured and running are two different states, and Windows will happily show you the first while withholding the second. A registry value is a request. The boot-time loader decides whether to honour it. If a plug-in fails the signature check, LSASS starts unprotected and the registry value stays exactly where you left it. Nothing turns red. Nothing raises an alert. You have to go and look.
Why it happens: a protected process is not a virtual machine
Let us build this up from nothing, because the difference between the two features only makes sense once you know what the LSA is.
What the LSA is, in plain English
The Local Security Authority, or LSA, is the part of Windows responsible for authentication. It checks passwords, issues access tokens, enforces the local security policy, and holds the derived credentials that let single sign-on work. It lives in a user-mode process called lsass.exe, started at boot by wininit.exe.
The LSA is deliberately extensible. Third parties plug into it. A smartcard vendor supplies a mini-driver. An enterprise password-policy product supplies a password filter. A single sign-on product supplies a Security Support Provider, or SSP, and an Authentication Package, or AP. Each of these is a DLL that LSASS loads into its own address space at startup.
That extensibility is exactly the problem. Anything loaded into LSASS runs with LSASS's access to credentials. And because those DLLs are registered by name in the registry, the list is short and readable.
What LSA protection does
LSA protection, configured through a registry value named RunAsPPL, marks lsass.exe as a protected process. Two things follow.
First, non-protected processes can no longer read LSASS memory or inject code into it. That is the part that stops credential-dumping tools cold.
Second, and this is where deployments break, every plug-in loaded into the LSA must now be digitally signed with a Microsoft signature. Microsoft is precise about what that means. LSA plug-ins that are drivers, such as smartcard drivers, need Windows Hardware Quality Labs (WHQL) certification. Plug-ins with no WHQL path must be signed through the file signing service for LSA. And even a correctly Microsoft-signed plug-in can still fail to load if it does not conform to Microsoft's Security Development Lifecycle process guidance, or if it uses shared sections.
A valid Authenticode signature from the vendor is not enough. This catches people constantly. The DLL is signed, the certificate chains, Windows Explorer shows a clean signature tab, and LSA still refuses it.
The load chain, in order
Here is what happens on every boot, step by step.
wininit.exestarts and creates the LSASS process.- If LSA protection applies, LSASS is created at protection level 4.
wininit.exewrites event 12 to the System log recording that fact. - LSASS loads
lsasrv.dll, the LSA server itself. lsasrv.dllreads the package lists under theLsaregistry key and loads each named DLL.- For each DLL, code integrity, implemented in
ci.dll, checks the signing level and the shared-section rules. - A DLL that fails is refused, and code integrity writes event 3033 or 3063 to the CodeIntegrity operational log.
Step 2 is the one that matters. Windows does not partially apply LSA protection. Either the process is created protected or it is not. If a critical component cannot survive that, the practical outcome on many devices is that the protection does not come up, and you are left with the registry value and nothing else.
What Credential Guard does instead
Credential Guard takes a completely different approach. Rather than hardening lsass.exe, it removes the secrets from it.
With Credential Guard running, LSASS talks over remote procedure calls to a separate process, the isolated LSA process, LSAIso.exe. Kerberos ticket-granting tickets, NTLM password hashes and Credential Manager domain credentials live in there. That process runs inside virtualisation-based security, isolated at runtime by the hypervisor using Virtual Secure Mode, underneath the secure kernel, securekernel.exe. Microsoft states that the isolated LSA process hosts no device drivers at all, only a small subset of operating system binaries, all signed with a certificate that virtualisation-based security trusts.
That is the crucial architectural difference, and it explains the compatibility story. Your smartcard driver cannot break Credential Guard by failing a signature check, because your smartcard driver is never invited into LSAIso.exe in the first place. Credential Guard breaks things a different way: by refusing to hand out credential material that insecure protocols need.
Context: what Credential Guard does not protect. Microsoft publishes the limits, and they are worth knowing before you present this as a complete answer. Local accounts and Microsoft accounts are not protected. Kerberos service tickets are not protected, only the ticket-granting ticket. Credentials you type in response to an NTLM prompt are not protected. Key loggers are not stopped. Non-Microsoft security packages are not covered. And on a virtual machine, Credential Guard protects against attacks inside the guest, not from a privileged host.
The default-on behaviour nobody briefed you on
Both features now arrive switched on, and the rules differ per feature and per install type. This is where the confusion in most estates originates.
For LSA protection, Microsoft documents automatic enablement on Windows 11 version 22H2 and later when three conditions are all true: the device is a new installation rather than an upgrade, the device is enterprise joined (Active Directory domain joined, Microsoft Entra joined, or hybrid joined), and the device is capable of hypervisor-protected code integrity. Automatic enablement does not set a UEFI variable.
Then there is the upgrade path, which is documented separately in the Windows 11 security book and is easy to miss. "LSA protection is enabled by default on all devices to help safeguard credentials. For new installations, it activates immediately. For upgrades, it becomes active after a five-day evaluation period followed by a system reboot." Microsoft adds that enterprise policy settings for LSA protection override the default upgrade behaviour.
For Credential Guard, default enablement starts in Windows 11 22H2 on devices meeting the licence and hardware requirements. It is Enterprise and Education only; Windows Pro is not entitled. The default enablement is without UEFI lock, so it can be turned off remotely. And critically: a device that had Credential Guard explicitly disabled before the upgrade stays disabled afterwards.
Destructive risk: UEFI lock is close to one-way. Value 1 on either feature stores the setting in a UEFI firmware variable. For LSA protection, the registry no longer controls it, and you need the Local Security Authority Protected Process Opt-out tool from the Microsoft Download Center to remove the variable. For Credential Guard, you need physical presence at the machine to press a function key and accept the change during a bcdedit-driven procedure. Do not deploy value 1 to a fleet you have not tested. Use 2, which is enabled without a UEFI variable, until you are certain.
How to verify: every surface, in the order that answers the question
There are seven surfaces worth reading. Take them in this order, because each one narrows the question.
1. Registry: the whole feature area
Two parent keys carry almost everything. Here is the first.
| Value | Type and data | What it means |
|---|---|---|
RunAsPPL | REG_DWORD 0, 1 or 2 | 0 off. 1 on with a UEFI variable. 2 on without a UEFI variable, enforced on Windows 11 22H2 and later. |
LsaCfgFlags | REG_DWORD 0, 1 or 2 | Credential Guard. 0 disabled, 1 with UEFI lock, 2 without lock. A different feature that happens to be the neighbour. |
Security Packages | REG_MULTI_SZ | SSP/AP DLL names, without the .dll extension. Loaded by the LSA at every start. |
Authentication Packages | REG_MULTI_SZ | Authentication package DLLs. msv1_0 is the in-box entry. |
Notification Packages | REG_MULTI_SZ | Password filter DLLs, registered per the password filter documentation. scecli is in-box. |
MSV1_0\IsolatedCredentialsRootSecret | Subkey value | Microsoft documents checking for this to predict whether a Windows Pro device picks up Credential Guard default enablement on upgrade. |
RunAsPPLBoot | REG_DWORD, observed | Undocumented. Present on live 22H2+ devices. Community answers treat it as a companion to RunAsPPL. Do not build detection logic on it. |
IsPplAutoEnabled | REG_DWORD, observed | Undocumented. Present on devices where automatic enablement applied. Reported here for completeness only. |
The two rows marked undocumented deserve a word. Both exist on the Windows 11 Enterprise build 26200 device I used for this post. Neither name appears anywhere in Microsoft's documentation. An undocumented value can change meaning, or vanish, in any monthly update, so read them for interest and never for compliance.
The second parent key is the virtualisation-based security tree.
| Value or subkey | Type and data | What it means |
|---|---|---|
EnableVirtualizationBasedSecurity | REG_DWORD 1 | Turns virtualisation-based security on. Credential Guard cannot run without it. |
RequirePlatformSecurityFeatures | REG_DWORD 1 or 3 | 1 requires Secure Boot. 3 requires Secure Boot and direct memory access protection. Choose 3 and the hardware must have an IOMMU or you get nothing. |
Locked | REG_DWORD 0 or 1 | 0 without UEFI lock, 1 with UEFI lock. |
Scenarios\CredentialGuard | Subkey, Enabled | The Credential Guard scenario node. |
Scenarios\HypervisorEnforcedCodeIntegrity | Subkey, Enabled, Locked | Memory integrity, formerly HVCI. A prerequisite condition for LSA protection automatic enablement. |
Mandatory | REG_DWORD 1 | Refuses to boot if the hypervisor or secure kernel fails to load. Microsoft warns to use special care. |
Two more paths complete the picture. Group Policy and the Intune Settings Catalog write LSA protection to HKLM\SOFTWARE\Policies\Microsoft\Windows\System, value name RunAsPPL, which I confirmed by reading LocalSecurityAuthority.admx in C:\Windows\PolicyDefinitions. Credential Guard policy lands in HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard.
2. Event Viewer: the events that decide it
Two channels matter. The first is where you learn whether the protections came up.
| ID | Feature | What it tells you |
|---|---|---|
| 12 | LSA protection | "LSASS.exe was started as a protected process with level: 4." This is the documented proof, and its absence is the documented failure. |
| 13 | Credential Guard | "Credential Guard (LsaIso.exe) was started and will protect LSA credentials." |
| 14 | Credential Guard | Configuration readout. First variable 0x1 or 0x2 means configured to run, 0x0 means not. Second variable must be 0, meaning protect mode. |
| 15 | Credential Guard | Warning. Configured but the secure kernel is not running, so Windows continued without it. |
| 16 | Credential Guard | Warning. LsaIso.exe failed to launch, with an error code. |
| 17 | Credential Guard | Error reading the Credential Guard UEFI configuration. |
The second channel is where you learn which component is to blame.
| ID | Mode | Meaning |
|---|---|---|
| 3033 | Enforced | A process, usually LSASS.exe, tried to load an image that did not meet the Microsoft signing level requirements. It was refused. |
| 3063 | Enforced | The image did not meet the security requirements for shared sections. Refused. |
| 3065 | Audit only | Shared-section requirements not met, but current policy allowed the load. This is the pre-flight warning. |
| 3066 | Audit only | Microsoft signing level not met, but current policy allowed the load. Logged together with 3065 when the plug-in has shared sections. |
Gotcha: filtering by event ID alone will mislead you. Microsoft's wording is "a process, usually LSASS.exe". Usually, not always. These four IDs fire for any process subject to a code integrity rule. On the healthy device I used for this post, there were 21 such events in thirty days and not one of them involved LSASS. Every single one was a browser loading its own graphics DLLs under its own code integrity guard. An engineer who filters the log by ID, sees red error icons, and reports that LSA protection broke the browser has diagnosed the wrong thing entirely. Always read the process name in the message body.
3. System files and DLLs
Naming the binaries makes the flow concrete. All of these live in C:\Windows\System32 and all were verified present on the test device.
| Binary | Role in the flow |
|---|---|
wininit.exe | Starts LSASS at boot, at protection level 4 when LSA protection applies. Writes events 12 to 17. |
lsass.exe | The Local Security Authority Subsystem Service host process. The target of all three protections. |
lsasrv.dll | The LSA server itself, loaded into LSASS. Reads the package lists and loads the plug-ins. |
LsaIso.exe | The isolated LSA process. Exists only when Credential Guard is running. Holds the secrets. |
securekernel.exe | The secure kernel underneath virtualisation-based security. Event 15 fires when this is not running. |
ci.dll | Code integrity. Performs the signing level and shared-section checks and raises 3033, 3063, 3065 and 3066. |
msv1_0.dll | The in-box authentication package registered under Authentication Packages. |
scecli.dll | The in-box password filter registered under Notification Packages. |
kerberos.dll, ntlmshared.dll | The Kerberos and NTLM providers whose derived credentials Credential Guard relocates. |
4. Services and scheduled tasks
There is no service and no scheduled task that drives either feature, and it is worth saying so plainly rather than sending you hunting. Both are boot-time decisions. There is nothing under \Microsoft\Windows\... in Task Scheduler to check, and nothing to restart.
What does matter is which services are hosted inside LSASS, because these are what you affect when the process changes. On the test device, querying Win32_Service for a path containing lsass.exe returned six: SamSs (Security Accounts Manager), Netlogon, KeyIso (CNG Key Isolation), VaultSvc (Credential Manager), EFS (Encrypting File System) and LocalKdc (Kerberos Local Key Distribution Center). Three were running.
5. Log files
Neither feature writes a plain-text log, and there is no equivalent of a CBS or setup log to grep. What exists is the backing store for the two event channels, which you can copy off a device for offline analysis.
| File | What to look for |
|---|---|
C:\Windows\System32\winevt\Logs\System.evtx | Search for the string started as a protected process with level. A healthy line reads "LSASS.exe was started as a protected process with level: 4." A broken device has no such line for the current boot at all. |
C:\Windows\System32\winevt\Logs\Microsoft-Windows-CodeIntegrity%4Operational.evtx | Search for lsass.exe, not for the event ID. A healthy device returns nothing. A broken device returns the full path of the offending DLL. |
MDMDiagReport.html from mdmdiagnosticstool.exe -area DeviceEnrollment -zip C:\Temp\mdm.zip | Confirms whether the Intune policy for ConfigureLsaProtectedProcess actually arrived, as distinct from whether it took effect. |
6. PowerShell
Now the part you can copy. This first block reads the configured state from both registry surfaces. It writes nothing.
This second block reads the running state, which is the answer you actually came for. There is no supported way to read a running process's protection level from PowerShell, so the WinInit event is the evidence, exactly as Microsoft documents.
7. Defender and security policy
The Defender surface is the attack surface reduction rule named "Block credential stealing from the Windows local security authority subsystem", GUID 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2. It is a standard protection rule, depends on Microsoft Defender Antivirus, and in Intune it is configured through an Endpoint security > Attack surface reduction profile.
Microsoft's own notes on the rule are unusually candid, and they change how you should think about it. It blocks access to LSASS process memory, not the running of processes. It produces a large volume of audit events, "almost all of which are safe to ignore". And if you have LSA protection enabled, the rule is not required and adds nothing.
Tip: check Windows Security before you write any policy. Open Windows Security > Device security > Core isolation details. Local Security Authority protection, Memory integrity and Credential Guard all surface there with a plain on/off state, and Microsoft notes that when LSA protection blocks something from loading, a notification names the blocked file. That is the fastest possible read on a single device, and it takes ten seconds.
The fix: audit first, then enable, in both consoles
Order matters here more than in almost any other hardening task, because the failure mode is silent. Audit, remediate, then enable.
Step 1: confirm audit mode, then read the audit events
Audit mode logs what would fail without blocking anything. Microsoft documents it as on by default from Windows 11 22H2, so on a modern device you usually have nothing to do. Confirm it, because it is not where you would guess.
The value is AuditLevel, type REG_DWORD, data 00000008. Note carefully that this is not under the Lsa key, which is where most people look first and find nothing. It is an Image File Execution Options subkey named after the executable. Then read events 3065 and 3066 in the CodeIntegrity operational log and act on whatever they name.
Gotcha: audit mode can be silently suppressed. Microsoft states that LSA audit events are not generated when Smart App Control is enabled on a device, and separately that these operational events are not generated when a kernel debugger is attached and enabled. In either case an empty log proves nothing. Check Smart App Control under Windows Security > App and browser control > Smart App Control settings and turn it off if you need to audit properly.
Step 2: enable LSA protection with Intune
- Sign in to the Microsoft Intune admin center at
intune.microsoft.com. - Go to Devices, then Configuration, then select Create and New policy.
- For Platform choose Windows 10 and later. For Profile type choose Settings catalog. Select Create.
- Give the policy a name, for example
Win11 - LSA protection - pilot ring. Select Next. - On Configuration settings select Add settings.
- In the settings picker, browse to the category Local Security Authority and select Configure Lsa Protected Process. Close the picker.
- Set the value to Enabled without UEFI lock for a pilot. Choose Enabled with UEFI lock only once you are certain, and read the red callout above first.
- Select Next, add scope tags if you use them, and select Next.
- On Assignments, assign to a small pilot device group. Select Next.
- Review and select Create. Restart the targeted devices, because neither feature takes effect until a reboot.
If your tenant does not surface the Settings Catalog entry, the custom OMA-URI still works. Create a Templates > Custom profile and add a row with OMA-URI ./Device/Vendor/MSFT/Policy/Config/LocalSecurityAuthority/ConfigureLsaProtectedProcess, data type Integer, and value 1 for UEFI lock or 2 without.
Step 3: enable LSA protection with Group Policy
- Open the Group Policy Management Console with
gpmc.msc, or the Local Group Policy Editor withgpedit.mscfor a single machine. - Create or edit a Group Policy Object linked to the organisational unit holding your computer accounts, then right-click and choose Edit.
- Expand Computer Configuration, then Administrative Templates, then System, then Local Security Authority.
- Open Configures LSASS to run as a protected process and set it to Enabled.
- Under Options, choose Enabled without UEFI Lock for a pilot, or Enabled with UEFI Lock for the locked variant.
- Select OK, run
gpupdate /forceon a target, and restart it.
Destructive risk: Not Configured does not undo this. Microsoft is explicit. "If you set this policy to Not Configured and the policy was previously enabled, the prior setting doesn't get cleaned up and continues to be enforced. You must set the policy to Disabled under the Options dropdown to disable the feature." Unlinking your GPO or deleting the Intune policy will not roll this back. You have to affirmatively set Disabled.
Step 4: enable Credential Guard, which is a different policy in a different place
- Create a Settings catalog policy exactly as in step 2, steps 1 to 5.
- In the settings picker, browse to the category Device Guard and select Credential Guard.
- Choose Enabled with UEFI lock or Enabled without lock. Microsoft's guidance is direct: if you want to be able to turn Credential Guard off remotely, choose Enabled without lock.
- Assign and create, then restart the devices.
The Group Policy equivalent is not in the Local Security Authority node. It is one level away, under Device Guard, and it is a single setting that carries Credential Guard as a dropdown inside it.
- Expand Computer Configuration, Administrative Templates, System, Device Guard.
- Open Turn On Virtualization Based Security and set it to Enabled.
- Under the Credential Guard Configuration dropdown, choose Enabled with UEFI lock or Enabled without lock.
- Select OK, then
gpupdate /forceand restart.
For completeness, the CSP route is two settings rather than one: ./Device/Vendor/MSFT/Policy/Config/DeviceGuard/EnableVirtualizationBasedSecurity set to 1, and ./Device/Vendor/MSFT/Policy/Config/DeviceGuard/LsaCfgFlags set to 1 or 2. Both are integers.
Gotcha: Credential Guard breaks single sign-on for insecure protocols. This is Microsoft's own documented known issue and it is the most common post-deployment complaint. Devices using 802.1x wired or wireless, remote desktop, or VPN that rely on password-based protocols lose single sign-on and must reauthenticate every session. The blocked list is specific: Kerberos unconstrained delegation, Kerberos where PKINIT uses RSA rather than Diffie-Hellman, MS-CHAP, WDigest and NTLM v1. For the last three, only single sign-on is blocked; a user prompted for credentials can still connect. The fix is to move from MSCHAPv2-based connections such as PEAP-MSCHAPv2 to certificate-based authentication such as PEAP-TLS.
What has no equivalent, and why that matters
Two absences are worth stating explicitly rather than leaving you to search for them.
First, LSA protection has no Security Options entry. It is not under Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options, and it is not in the Intune LocalPoliciesSecurityOptions area either, despite that being a common assumption. It is an ADMX-backed administrative template policy in the LocalSecurityAuthority.admx file, under System, and the corresponding Settings Catalog category is Local Security Authority.
Second, before Windows 11 22H2 there was no policy at all. The only route was deploying the raw registry value, and Microsoft's own guidance for multiple machines was a Group Policy Preferences registry item under Computer Configuration > Preferences > Windows Settings > Registry. If you still manage Windows 10, that preference item is your mechanism, and the audit-level value is deployed the same way.
Proof it worked: a real run on a real device
Reading eight registry values and two event channels by hand, per device, does not scale. So the companion script for this post does it in one pass and prints the distinction that matters: configured versus running, for both features, plus any event naming a component blocked from loading into LSASS.
It is read-only. It changes no setting, service or registry value, needs no PowerShell module, and runs on both Windows PowerShell 5.1 and PowerShell 7. It refuses to run unelevated on purpose, because without elevation the CodeIntegrity log returns nothing, and nothing looks exactly like a clean result.
Grab it here: Get-LsaProtectionState.ps1.
Below is a genuine run on a Windows 11 Enterprise build 26200 device, trimmed for length, with identifiers replaced. This is real output, not an illustration.
Read the verdict block as four independent facts, not one. Two of them being green tells you nothing about the other two. That separation is the entire point of the exercise.
If your run comes back with LSA protection CONFIGURED ON and NOT RUNNING, section 6 of the output is where you go next, and you are looking for one thing only: an event whose subject process is lsass.exe. The image path in that message is the component to remove or replace. Then reboot and run it again.
References
Microsoft official documentation:
- Configure added LSA protection - the authoritative page for
RunAsPPL, its documented values, audit mode viaAuditLevel, events 3033, 3063, 3065 and 3066, WinInit event 12, the plug-in signing requirements and the automatic enablement criteria. - Configure Credential Guard - the Group Policy path, the Settings Catalog entry, the DeviceGuard registry surface, and WinInit events 13 to 17.
- Credential Guard overview - default enablement rules, licence and hardware requirements, and application requirements.
- Credential Guard considerations and known issues - the single sign-on breakage, the blocked protocol list, and the vendor support notes.
- How Credential Guard works -
LSAIso.exe, Virtual Secure Mode, the VSM master key, and the documented protection limits. - LocalSecurityAuthority Policy CSP -
ConfigureLsaProtectedProcessandAllowCustomSSPsAPs, with the ADMX mapping. - Enable memory integrity - the complete
Win32_DeviceGuardproperty value tables. - Attack surface reduction rules reference - the LSASS credential stealing rule and Microsoft's note that it is not required when LSA protection is enabled.
- Windows 11 security book: advanced credential protection - the five-day evaluation period for upgrades.
- Registering SSP/AP DLLs and Installing and registering a password filter DLL - the
Security PackagesandNotification Packagesregistry values. - Device security in the Windows Security app - the Core isolation user interface and the LSA protection toggle.
Community deep-dives, both fetched and verified on the topic:
| Author | Article | Why it is useful |
|---|---|---|
| Peter van der Woude | Easier configuring additional LSA protection | Walks the original custom OMA-URI approach for ConfigureLsaProtectedProcess, from April 2023. The comment thread is where the move into the Settings Catalog under Local Security Authority is first recorded. |
| Anoop C Nair | Windows 11 New LSA Local Security Authority Policies | Covers both policies in the node, including Allow Custom SSPs and APs to be loaded into LSASS, which pairs naturally with LSA protection and is rarely discussed. |
One closing thought. LSA protection and Credential Guard are complementary, not alternatives, and Microsoft says so directly: systems that support Credential Guard or enable it by default can also enable and benefit from LSA protection. Deploy both. Just do not deploy one and report the other.
Download it from Imran76Awan/Windows-11-Scripts — no sign-in required. It is read-only: it reports and never changes a device or anything in Intune. Validate it in your own environment before relying on the output.