Issue
Windows accepts sign-in credentials but the desktop, taskbar, and Start menu do not load. The screen may remain black with a movable pointer, and Task Manager may still open. explorer.exe might be missing, might exit immediately, or might be prevented from becoming the Windows shell after an update or a shell/repair utility changes files or configuration.
Two different repair mechanisms belong on this page but must remain separate:
- an exact Windows 11 preview update, KB5030310 on build 22621.2361, was removed and Explorer returned in one case; and
- a repair utility left
explorer.exemissing, and restoring the system to a point before the utility ran returned the desktop in another case.
The common boundary is a demonstrated change followed by Explorer failure and a rollback of that exact change. This is not permission to uninstall the latest update or copy explorer.exe from another computer.
Searchable Windows error codes and exact messages
| Displayed identifier | Windows name or exact message | When it can apply |
|---|---|---|
| No numeric code | Black screen with cursor after sign-in | Primary symptom. It can also be caused by graphics, profile, App Readiness, or other shell failures. |
| No numeric code | Windows cannot find 'explorer.exe'. Make sure you typed the name correctly, and then try again. | Applies when the shell executable is missing, the path is wrong, or resolution is blocked. Verify %windir%\explorer.exe. |
Event ID 1000 | Source Application Error; Faulting application name: explorer.exe | Records an Explorer crash. Capture faulting module and exception code; Event 1000 alone does not identify the repair. |
0xc0000005 | STATUS_ACCESS_VIOLATION; often displayed as The application was unable to start correctly (0xc0000005) or recorded as an exception code | Can indicate invalid memory access caused by a bad module, injected extension, damaged file, or other cause. It is not an update diagnosis. |
0xc0000142 | STATUS_DLL_INIT_FAILED; The application was unable to start correctly (0xc0000142) | Explorer or one of its dependencies could not initialize. Record the faulting module before choosing a branch. |
0xc000007b | STATUS_INVALID_IMAGE_FORMAT; The application was unable to start correctly (0xc000007b) | Can occur with a wrong-architecture or damaged binary/DLL. Do not download replacement DLLs. |
0xc000012f | STATUS_INVALID_IMAGE_NOT_MZ; commonly displayed in a Bad Image dialog | Can identify a damaged or incompatible executable/DLL. Record the complete file path in the dialog. |
KB5030310 | September 26, 2023 Windows 11 22H2 preview update, OS build 22621.2361 | Exact historical package in one confirmed case. It is a package identifier, not an error code and not a generic current fix. |
| No numeric code | The update is not installed on this computer. | WUSA could not find the specified KB in the online installation. Stop the update-removal branch. |
| No numeric code | Installer encountered an error: 0x80070005 — Access is denied. | Administrative rights or policy blocked the action. Do not bypass policy. |
| No numeric code | Windows Resource Protection found corrupt files and successfully repaired them. | Successful SFC outcome; restart and retest Explorer. |
| No numeric code | Windows Resource Protection did not find any integrity violations. | SFC found no protected-file defect. Continue with shell configuration, extension, update, or restore evidence. |
Search the complete exception code with the faulting module and file path. explorer.exe 0xc0000005 is materially different from explorer.exe missing or a wrong Winlogon Shell value.
Applies when
Use this procedure when:
- Windows reaches sign-in and accepts credentials;
- Task Manager, the security screen, or Safe Mode remains accessible;
- Explorer, the taskbar, and the desktop do not start or do not remain running;
%windir%\explorer.exe, the Winlogon Shell value, Event 1000, update history, or a known utility change provides evidence; and- the exact update, utility, configuration value, or restore point can be identified before rollback.
The KB5030310 branch applies only to Windows 11 22H2 where that exact package/build relationship is present. The System Restore branch applies only when a restore point predates the demonstrated utility or shell change.
Does not apply when
Do not use this page when the black screen occurs before sign-in, no Windows security screen or Task Manager can be reached, firmware or WinRE is also blank, Windows shows a stop code or Recovery code, or the disk/file system is unstable.
It also does not apply when:
- Explorer is running normally and only one folder window, browser, game, or application is black;
Windows+Ctrl+Shift+B, display reconnection, or graphics-driver rollback proves a display path;- App Readiness service comparison proves a sign-in provisioning delay;
- the computer is intentionally configured as a kiosk or replacement-shell device;
- malware response is required; or
- the proposed update is not actually installed or the restore point was created after the breakage.
Do not alter the Winlogon Shell value on a managed kiosk, assigned-access device, remote-session host, or system with a deliberately replaced shell without design-owner approval.
Information that may remain unknown
The internal reason the update or utility affected Explorer, the exact shell extension involved, and the original utility author's intent may remain unknown.
The following may not remain unknown before change:
- whether
explorer.exeexists at the affected installation's%windir%; - whether manually starting it returns the desktop, shows a dialog, or exits;
- the current Winlogon
Shellvalue; - the exact installed KB or exact utility and change time;
- the faulting module and exception code when Event 1000 exists;
- whether the device is intentionally using a replacement shell; and
- the rollback route for the exact proposed change.
The exact Windows build may remain unknown for utility rollback, but it is mandatory for the KB5030310-specific branch.
Requirements
- Administrative access through Task Manager, Safe Mode, or Windows Recovery Environment
- A verified backup of important data
- Stable power
- A new, unused affected-user capture path and a separate new, unused elevated evidence attempt, both carrying the same recorded attempt label
- A record of the last known-good sign-in and last material change
- Update history or package evidence before update removal
- A restore point created before the failure for the System Restore branch
- Registry backup before changing Winlogon values
- Current Windows installation media only if later escalation requires repair installation; it is not required for the initial branches
Do not proceed with update removal or System Restore until files are backed up and the exact target is visible.
Starting position
-
At the black screen, press
Ctrl+Shift+Esc. If Task Manager does not open, useCtrl+Alt+Deleteand select it. -
First capture the affected user's identity and user-scope Shell value in that user's own, non-elevated security context. Choose a new attempt label. In Task Manager select Run new task, type
cmd.exe, leave Create this task with administrative privileges clear, and run the existence guard before any write:set "ATTEMPT=Attempt-01" set "USERCAP=%PUBLIC%\Documents\FIX071-AffectedUser\%ATTEMPT%" if exist "%USERCAP%\" (echo STOP: choose the next unused Attempt number & exit /b 1) md "%USERCAP%" || exit /b 1 echo FIX-071> "%USERCAP%\attempt-marker.txt" echo ATTEMPT=%ATTEMPT%>> "%USERCAP%\attempt-marker.txt" whoami /user > "%USERCAP%\affected-user-SID.txt" echo %USERPROFILE% > "%USERCAP%\affected-user-profile.txt" reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell > "%USERCAP%\Shell-HKCU-before.txt" 2>&1 type "%USERCAP%\affected-user-SID.txt" type "%USERCAP%\Shell-HKCU-before.txt"If
Attempt-01exists, change only the attempt number to the next unused value. If the public location is not writable, use another new user-writable folder. Record the exactATTEMPTandUSERCAPpath. Keep the not-found result when the value is absent. This non-elevated capture is mandatory when elevation uses a different administrator account, because an elevated prompt'sHKCUcan belong to that helper administrator. -
Close that prompt. In Task Manager run
cmd.exeagain and now select Create this task with administrative privileges. -
In the elevated prompt, reset
ATTEMPTandUSERCAPto the exact values recorded by the affected user. Validate that capture, then create a separate machine evidence path with a pre-write existence guard:set "ATTEMPT=<recorded-Attempt-NN>" set "USERCAP=<exact-recorded-affected-user-capture-path>" findstr /x /l /c:"FIX-071" "%USERCAP%\attempt-marker.txt" >nul || (echo STOP: wrong affected-user attempt & exit /b 1) findstr /x /l /c:"ATTEMPT=%ATTEMPT%" "%USERCAP%\attempt-marker.txt" >nul || (echo STOP: attempt labels do not match & exit /b 1) set "EVID=%SystemDrive%\FixBackup\FIX-071\%ATTEMPT%" if exist "%EVID%\" (echo STOP: elevated evidence attempt already exists; select a wholly new attempt & exit /b 1) md "%EVID%" || exit /b 1 echo FIX-071> "%EVID%\attempt-marker.txt" echo ATTEMPT=%ATTEMPT%>> "%EVID%\attempt-marker.txt" echo EVID=%EVID%>> "%EVID%\attempt-marker.txt" echo USERCAP=%USERCAP%>> "%EVID%\attempt-marker.txt"If the elevated attempt path already exists, do not reuse it. Return to step 2 and create a wholly new attempt label for both paths; preserve the abandoned capture as evidence rather than overwriting it.
-
Record Windows version and package state:
ver > "%EVID%\version-before.txt" dism /online /get-packages /format:table > "%EVID%\packages-before.txt" -
Preserve the machine-wide Winlogon key, query its
Shellvalue, and copy the already captured affected-user files into the evidence directory:reg export "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" "%EVID%\Winlogon-before.reg" /y reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell > "%EVID%\Shell-HKLM-before.txt" 2>&1 copy "%USERCAP%\attempt-marker.txt" "%EVID%\affected-user-attempt-marker.txt" copy "%USERCAP%\affected-user-SID.txt" "%EVID%\affected-user-SID.txt" copy "%USERCAP%\affected-user-profile.txt" "%EVID%\affected-user-profile.txt" copy "%USERCAP%\Shell-HKCU-before.txt" "%EVID%\Shell-HKCU-before.txt"Substitute the recorded alternate user-capture path if one was required. Open
affected-user-SID.txtand confirm it is the user whose sign-in fails. Keep theERROR: The system was unable to find...result when a value or key is absent; absence is part of the rollback state. Do not query affected-user HKCU from the elevated helper account, and do not use the full-key export as the routine rollback for one value because it can overwrite unrelated Winlogon changes. -
Do not run a registry cleaner, shell reset script, or downloaded DLL replacement. Preserve the state before diagnosis.
Confirm the diagnosis
-
From Task Manager choose Run new task and enter:
explorer.exeRecord whether the desktop appears, nothing happens, Explorer exits, or a dialog displays a code or file path.
-
Check the expected file from the elevated Command Prompt:
dir /a "%windir%\explorer.exe"-
If the file is missing, do not copy it from another computer. Continue to the utility/System Restore or component-repair branch.
-
If it exists, record its version and Microsoft signature from PowerShell:
Get-Item "$env:windir\explorer.exe" | Select-Object FullName,Length,@{n='FileVersion';e={$_.VersionInfo.FileVersion}} Get-AuthenticodeSignature "$env:windir\explorer.exe" | Format-List Status,StatusMessage,SignerCertificate
-
-
Query the machine scope from the elevated prompt, then query user scope only from a separate non-elevated prompt running as the same affected SID captured in section 6:
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v ShellIn the affected user's non-elevated prompt, first prove the identity and then query HKCU:
whoami /user reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v ShellOn an ordinary Windows desktop, the expected effective shell is
explorer.exe. An explicit current-userShellvalue can override the machine-wide value for that user. Determine which scope contains the demonstrated wrong value; do not rewrite HKLM merely because HKCU contains the override. A different value is not automatically wrong on a kiosk or managed replacement-shell system. -
Inspect Event Viewer > Windows Logs > Application for Event ID 1000 at the failed sign-in. Record:
- faulting application name and path;
- faulting module name and path;
- exception code;
- fault offset; and
- timestamp.
Export the Application log if needed:
wevtutil epl Application "%EVID%\Application-before.evtx" -
Check Reliability Monitor (
perfmon /rel) for an Explorer failure and the update or utility installation on the same timeline. -
If KB5030310 is suspected, verify all three facts:
- Windows 11 version 22H2 was running;
- OS build
22621.2361or update history identifies KB5030310; and - Explorer failure began immediately after that package was installed.
A superseding current cumulative update can make the old KB absent or non-removable. If it is not listed, stop that branch.
-
If a repair or shell utility is suspected, record its exact name, version, run time, log, backup/restore feature, and the last restore point before it ran. Do not rerun it to see what happens.
-
If Explorer exists and the Shell value is correct, perform a clean boot or Safe Mode comparison. If Explorer starts in Safe Mode or clean boot, a shell extension, startup program, service, or injected module is more likely than a missing core file.
-
Proceed only when one branch is evidenced: wrong Shell value, exact update regression, demonstrated utility change with a prior restore point, or protected-file damage.
Resolution steps
Choose one branch and verify before combining it with another.
Branch A — Correct a proven wrong Winlogon Shell value
Use this branch only on an ordinary Windows desktop where the current value is not explorer.exe and no intentional replacement shell is configured.
-
Confirm both scope-specific query files from section 6 exist and show whether each original value was present, its type, and its data.
-
Modify only the scope proven to supply the wrong effective value.
Wrong machine-wide value with no overriding affected-user value:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d explorer.exe /f reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v ShellWrong affected-user value: open a separate non-elevated prompt while signed in as that affected user. Require
whoami /userto matchaffected-user-SID.txt, then run:whoami /user reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d explorer.exe /f reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell -
Sign out and sign back in, or restart once.
-
If the value changes back, stop. A policy, utility, malware, or replacement-shell configuration owns it; repeated registry writes are not a repair.
Branch B — Remove exact KB5030310 from the affected historical build
-
Confirm KB5030310 is installed and the computer is the affected Windows 11 22H2 case.
-
Prefer Settings > Windows Update > Update history > Uninstall updates. Select only KB5030310.
-
If Settings cannot perform the removal but Task Manager can run an elevated command, enumerate packages and identify the exact LCU package name associated with the installed build:
dism /online /Get-Packages /Format:Table > "%EVID%\packages-before-removal.txt"KB5030310 is a combined SSU/LCU package; WUSA
/uninstall /kb:5030310is not a valid removal path for it. Match the exactPackage_for_RollupFix...identity to the installed LCU using the package listing and retained update/build evidence. Do not select a Servicing Stack package or a package merely because its date is nearby. -
Remove only the exact identified LCU package:
dism /online /Remove-Package /PackageName:<exact-LCU-package-name>Replace the placeholder with the full package identity copied from DISM. Do not add
/Quiet, do not guess the package name, and do not remove the SSU. -
Restart when DISM requests it.
-
If DISM says the package is absent, permanent, not applicable, or cannot be removed, stop. Preserve the exact HRESULT and use System Restore or a later supported cumulative update rather than forcing package deletion.
-
After Explorer returns, install the current supported cumulative update for the Windows release. Do not remain indefinitely on an obsolete preview-build state.
Branch C — Undo a demonstrated shell/repair utility change with System Restore
- From Task Manager, try Run new task >
rstrui.exe. If the interface does not open, enter Windows Recovery Environment. - In WinRE select Troubleshoot > Advanced options > System Restore.
- Select the correct Windows installation if prompted.
- Choose Show more restore points and select a restore point created before the utility ran or Explorer disappeared.
- Use Scan for affected programs and save or photograph the list.
- Confirm the target date and begin restore. Keep stable power and do not interrupt it.
- After Windows restarts, record the restore result and test Explorer before reinstalling the utility.
- If no qualifying restore point exists, stop this branch. Do not select a later restore point merely because it is available.
Branch D — Repair protected Windows components when Explorer is missing or has a bad signature
Use this branch in a normal Windows session reached through Task Manager or Safe Mode.
-
Repair the component store:
DISM.exe /Online /Cleanup-Image /RestoreHealth -
Require the command to complete successfully before continuing. Record any error code.
-
Run System File Checker:
sfc /scannow -
Record the complete result. Do not claim repair if SFC says it could not perform the operation or could not repair some files.
-
Restart and recheck
%windir%\explorer.exe, its signature, and Event 1000. -
If DISM requires a source or Windows cannot sustain an online session, stop and use a separately validated offline-repair or repair-installation procedure matched to the installed edition, language, architecture, and release.
Branch E — Remove a proven incompatible shell utility without rolling back Windows
- Use Settings > Apps > Installed apps or the utility's signed uninstaller to remove the exact demonstrated utility.
- Do not use its generic “repair all” function again.
- Restart and test Explorer.
- If Explorer remains missing or damaged, use Branch C or D according to available evidence.
Expected results and branches
- Explorer starts manually and remains running: shell startup configuration or a startup interaction is more likely than a missing executable.
- Explorer starts only in Safe Mode/clean boot: isolate third-party shell extensions, services, and startup items; do not remove the latest update by default.
- Correcting the Shell value restores every sign-in: preserve the registry backup and identify what changed it.
- Removing verified KB5030310 restores Explorer: install a later supported cumulative update and confirm the defect does not return.
- System Restore returns Explorer: keep the offending utility removed until a compatible version and rollback are available.
- DISM/SFC repairs Explorer: verify signatures, Event 1000, and repeated sign-ins.
- No branch changes the failure: preserve logs and escalate to dump/ProcMon analysis or a matched repair installation.
Do not do this
- Do not copy
explorer.exeor DLLs from another computer or download them from a DLL site. - Do not uninstall the newest update without identifying the exact installed package and timeline.
- Do not change the Shell registry value on an intentional kiosk or replacement-shell system.
- Do not delete user profiles, WindowsApps, AppRepository, or shell-extension registry trees wholesale.
- Do not run multiple cleanup/repair utilities.
- Do not use offline DISM package removal with a guessed drive letter or package identity.
- Do not disable security software permanently to make Explorer start.
- Do not change firmware, BCD, controller mode, or partitions for a post-sign-in Explorer failure.
Rollback
Registry branch
Reset ATTEMPT, USERCAP, and EVID to the exact paths recorded for the attempt that performed Branch A. Validate both markers and the saved affected-user SID before using any rollback data:
set "ATTEMPT=<exact-recorded-Attempt-NN>"
set "USERCAP=<exact-recorded-affected-user-capture-path>"
set "EVID=%SystemDrive%\FixBackup\FIX-071\%ATTEMPT%"
findstr /x /l /c:"FIX-071" "%EVID%\attempt-marker.txt" >nul || (echo STOP: wrong elevated attempt & exit /b 1)
findstr /x /l /c:"ATTEMPT=%ATTEMPT%" "%EVID%\attempt-marker.txt" >nul || (echo STOP: elevated attempt label mismatch & exit /b 1)
findstr /x /l /c:"EVID=%EVID%" "%EVID%\attempt-marker.txt" >nul || (echo STOP: elevated attempt path mismatch & exit /b 1)
findstr /x /l /c:"FIX-071" "%USERCAP%\attempt-marker.txt" >nul || (echo STOP: wrong affected-user attempt & exit /b 1)
findstr /x /l /c:"ATTEMPT=%ATTEMPT%" "%USERCAP%\attempt-marker.txt" >nul || (echo STOP: affected-user attempt label mismatch & exit /b 1)
type "%EVID%\affected-user-SID.txt"
Do not select a folder because it is newest or has the highest attempt number. Restore only the Shell value in the scope changed by Branch A, using the scope-specific before file from this validated attempt. Replace <RECORDED-TYPE> with the exact type shown in that file (normally REG_SZ) and replace <RECORDED-LITERAL-DATA> with the complete original data, retaining its quoting and arguments.
If the machine-wide value originally existed, run from the elevated prompt:
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t <RECORDED-TYPE> /d "<RECORDED-LITERAL-DATA>" /f
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell
If the affected-user value originally existed, open the affected user's non-elevated prompt, require its SID to match the saved SID, and run:
whoami /user
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t <RECORDED-TYPE> /d "<RECORDED-LITERAL-DATA>" /f
reg query "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell
If the value was originally absent, remove only the value that Branch A added. For an HKLM change use the elevated prompt:
reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /f
When the affected-user HKCU value was the one added, use that affected user's non-elevated prompt after verifying its SID:
whoami /user
reg delete "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /f
Restart and verify the intended shell. Do not import the full Winlogon key as routine rollback because that can overwrite unrelated values changed after the evidence capture. The full export is evidence/emergency reference for this same installation, not a cross-machine repair file.
Update branch
Use Windows Update to install the current applicable cumulative update. If the exact removed preview package is still required for controlled historical testing, reinstall only through Microsoft's supported update channel or catalog after creating a restore point.
System Restore branch
If Windows offers Undo System Restore and the restore introduced a worse problem, use that supported option from System Restore. User-created files are not a System Restore rollback mechanism; keep the separate data backup.
Utility branch
Reinstall only a version documented compatible with the current Windows release, and only after a restore point is created. If reinstalling reproduces the failure, remove it again and retain the before/after evidence.
Verification
- Confirm
%windir%\explorer.exeexists and has a valid Microsoft signature. - Confirm the ordinary desktop's Winlogon
Shelldata isexplorer.exe. - Sign out and back in three times or complete three restarts. Explorer, taskbar, Start, and desktop must appear without manually running Explorer.
- Open File Explorer, Settings, Start search, and a context menu.
- Review Application Event 1000 for the verification intervals.
- Confirm the removed update or utility state and current Windows build.
- Run Windows Update and confirm the device can reach a supported update state without reproducing the failure.
- Record the exact successful branch, before/after build or utility version, and remaining exception events.
Confidence and stop conditions
Bounded confidence: approximately 80% when the exact change and rollback match one of the confirmed branches. One case explicitly reported Explorer recovery after removing KB5030310; another reported recovery after restoring to a point before a repair utility removed or disrupted Explorer. Microsoft's current shell guidance confirms explorer.exe as the normal Windows desktop shell and documents Event 1000, clean boot, update removal, and recovery paths. The project has not independently reproduced either case, and the two causes are variants, not interchangeable fixes.
Stop when the device is a kiosk/replacement-shell system, the exact update or utility cannot be identified, no qualifying restore point exists, the file system is unstable, malware is suspected, DISM/SFC returns an unresolved error, Windows fails before sign-in, or a protected/managed policy owns the configuration.