2
Explorer.exe crashed out on me without bringing the system entirely to its knees. This is not the first time this has happened. Basically I lose the Start Bar + taskbar + systray + desktop icons and am left with a solid dark blue desktop (no background image).
By control-alt-delete I can bring up the lock screen menu (including task manager). Using a combination of task manager, command prompts and MS sysinternals' Process Explorer, I can generate both standard user windows and elevated windows (details available if needed). However, under neither my standard login nor my elevated admin login can I seem to re-launch explorer to restore the desktop. Running explorer.exe without any switches appears to do nothing. Explorer.exe /n or /e (or any other documented switch or launching with "START") gives me a file browser window, but not the start bar + taskbar. Killing and restarting this explorer.exe does not restore functionality either. Right clicking Windows Explorer (the new file explorer window) in task manager and selecting "Restart" drops it from Processes->Apps to Processes->Windows Processes (without an open file explorer) and restarting from there changes it to Processes->Background Processes from where there is neither an open file explorer nor "Restart" menu option.
Windows key shortcuts appear to be non-functional, as the start bar doesn't exist. They do not work with the started file explorer window in focus. Alt-F4 with nothing in focus or after clicking on the blue background doesn't bring up any menu/dialogue. Alt-F4 from within an application still works to close that window|application as appropriate. My headphones' up-down volume signals are also not interpreted whatever remains up of the system (but I can control volume via an application-specific slider).
I can't seem to bring up the shutdown dialogue as per tip two of https://serverfault.com/questions/4464/hidden-commands-on-windows as I can't use keyboard shortcuts or use the start bar. Using the following code inspired by this and that:
<!DOCTYPE html>
<!-- saved from url=(0016)http://localhost -->
<HTML>
<HEAD>
<TITLE>Start Page</TITLE>
<OBJECT ID="oShell"
CLASSID="clsid:13709620-C279-11CE-A49E-444553540000">
</OBJECT>
<STYLE>
INPUT {width: 200}
</STYLE>
<SCRIPT LANGUAGE="VBScript">
<!--
function fnStart(sMethod)
dim objShell
set objShell = CreateObject("shell.application")
set objWscr = CreateObject("WScript.Shell")
select case sMethod
case 0
'Minimizes all windows on the desktop
oshell.Shell_MinimizeAll
case 1
'Displays the Run dialog box
oshell.FileRun
case 2
'Displays the Shut Down Windows dialog box
'neither oshell.Shell_Shutdown nor oshell.Shell_ShutdownWindows (supplied in MS docs) are recognized as valid functions of the oshell object.
objShell.ShutdownWindows
oshell.ShutdownWindows
'objWscr.Run "Rundll Shell32.dll,SHExitWindowsEx" ' returns "The system cannot find the file specified" error box.
set objShell = nothing
case 3
'Displays the Find dialog box
oshell.Shell_FindFilesr
case 4
'Displays the Date/Time dialog box
oshell.Shell_SetTime
case 5
'Displays the Internet Properties dialog box
oshell.Shell_ControlPanelItem "INETCPL.cpl"
case 6
'Explores the My Documents folder
oshell.Shell_Explore "C:\My Documents"
case 7
'Enables user to select folder from Program Files
oshell.Shell_BrowseForFolder 0, "My Programs", 0, "C:\Program Files"
case 8
'Opens the Favorites folder
oshell.Shell_Open "C:\WINDOWS\Favorites"
case 9
'Displays the Taskbar Properties dialog box
oshell.Shell_TrayProperties
end select
end function
-->
</SCRIPT>
<SCRIPT type="text/javascript" LANGUAGE="JavaScript">
function logout() {
//code
(new ActiveXObject("Shell.Application")).ShutdownWindows();
}
logout();
</SCRIPT>
</HEAD>
<BODY>
<H1>Start...</H1>
<INPUT type="button" value="Edit Taskbar Properties" onclick="fnStart(9)"><br>
<INPUT type="button" value="Open Favorites Folder" onclick="fnStart(8)"><br>
<INPUT type="button" value="Browse Program Files" onclick="fnStart(7)"><br>
<INPUT type="button" value="Explore My Documents" onclick="fnStart(6)"><br>
<INPUT type="button" value="Modify Internet Properties" onclick="fnStart(5)"><br>
<INPUT type="button" value="Set System Time" onclick="fnStart(4)"><br>
<INPUT type="button" value="Find a File or Folder" onclick="fnStart(3)"><br>
<INPUT type="button" value="Shut Down Windows" onclick="fnStart(2)"><br>
<INPUT type="button" value="Run" onclick="fnStart(1)">
<INPUT type="button" value="Minimize All Windows" onclick="fnStart(0)">
</BODY>
</HTML>
As an hta file (and clicking on Shut down windows) doesn't do anything, but doesn't throw any errors. As an htm(l) file in Internet Explorer it throws a "Permission Denied" error, regardless of the settings for the local zone. I've tried a few permutations of this code including: here, here
Control-Alt-Delete followed by "switch user" and direct login as the administrator account results in a login to a pure black screen with a mouse cursor. Control-Alt-Delete and switching back to my non-admin login brings back my solid dark blue "desktop" without icons (after about 0.1s of displaying a solid light blue|cyan|teal "desktop").
I'm wondering if there's a CLSID or application object that can be invoked to call whatever is called from control-alt-shift + cancel from the shutdown dialogue? Alternatively, do you know of any way that I can kill off a System Service that wraps explorer, restart the service to give me back my desktop?
I would rather not shutdown/reboot as I'm essentially using this PC as a server and want it to be as "always-up" as possible.
1Have you tried running:
C:\Windows\system32\userinit.exe
, if restartingexplorer.exe
doesn't result in a well behaved system and affecting other accounts, I would restart the box, just to be on the safe side. This is not normal behavior. I guess logging off (logoff.exe) and on again doesn't help? – Peter Hahndorf – 2017-05-11T06:20:47.073userinit
was the magic I needed. That worked. Thanks. (submit as an answer and I'll accept it). I didn't try logoff, but I assumed that it wouldn't work as a switch user followed by login as admin, logout from admin didn't fix it. – mpag – 2017-05-11T17:36:50.953userinit saves the day again:) – mpag – 2018-04-24T19:27:17.390