<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: MapleFox</title>
    <description>The latest articles on DEV Community by MapleFox (@maplefox).</description>
    <link>https://dev.to/maplefox</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4179560%2F1b8b23d2-547a-4bfd-9e27-35f4e8cfda72.jpg</url>
      <title>DEV Community: MapleFox</title>
      <link>https://dev.to/maplefox</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/maplefox"/>
    <language>en</language>
    <item>
      <title>I Paid ￥488 for Tech Support and Got 'Reinstall Windows.' Then an AI Fixed It in 10 Minutes.</title>
      <dc:creator>MapleFox</dc:creator>
      <pubDate>Mon, 12 Oct 2026 15:00:25 +0000</pubDate>
      <link>https://dev.to/maplefox/i-paid-y488-for-tech-support-and-got-reinstall-windows-then-an-ai-fixed-it-in-10-minutes-26h1</link>
      <guid>https://dev.to/maplefox/i-paid-y488-for-tech-support-and-got-reinstall-windows-then-an-ai-fixed-it-in-10-minutes-26h1</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Author's note: The technical troubleshooting steps in this article are based on a real event. The narrative was drafted with AI assistance and manually reviewed and edited.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I have exactly one rule for my laptop now: during a Windows update, the power button does not exist.&lt;/p&gt;

&lt;p&gt;I learned it the hard way. Here is what happened - and here is the part that still nags at me: the actual fix took about ten minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The short version.&lt;/strong&gt; A forced power-off in the middle of an update left both of my user registry hives dirty. Windows could not load my profile, so it handed me a brand-new temporary profile on every logon. Two paid support sessions - a 40-minute disk scan and roughly five hours of remote debugging, 488 yuan in total - both ended with some version of "reinstall Windows, or make a new account". Then a free AI assistant, working inside my editor, diagnosed and repaired it in about ten minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The long press
&lt;/h2&gt;

&lt;p&gt;I was restarting my laptop. Windows went into its update phase, the screen went black, and the keyboard did nothing.&lt;/p&gt;

&lt;p&gt;So I did what most people do to a machine that looks dead: I held the power button down.&lt;/p&gt;

&lt;p&gt;It was not dead. It was writing to disk, including my user registry files. The system log recorded an unexpected shutdown at that moment, and the last-write timestamp on my user hive lined up with the same second - about as direct as evidence gets.&lt;/p&gt;

&lt;p&gt;The next boot did not give me my desktop. It gave me &lt;code&gt;C:\Users\TEMP.&amp;lt;machine-name&amp;gt;&lt;/code&gt;, an empty temporary profile. I restarted; Windows made another one. And another.&lt;/p&gt;

&lt;p&gt;I had two deadlines that night, and I am studying in Hong Kong while the laptop was bought in mainland China, so the vendor's mainland support site would not load for me at all. I ended up on a WeChat call with my mother while she dialed the hotline.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually broke
&lt;/h2&gt;

&lt;p&gt;A Windows user profile is two halves, and both of them have to work:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Half&lt;/th&gt;
&lt;th&gt;Object&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Disk&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;C:\Users\&amp;lt;user&amp;gt;\NTUSER.DAT&lt;/code&gt; (per-user settings) and &lt;code&gt;AppData\Local\Microsoft\Windows\UsrClass.dat&lt;/code&gt; (per-user class registration)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Registry&lt;/td&gt;
&lt;td&gt;&lt;code&gt;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\&amp;lt;SID&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The power loss hit both registry hives while they were mid-write. Each hive header carries a &lt;em&gt;primary&lt;/em&gt; and a &lt;em&gt;secondary&lt;/em&gt; sequence number plus a checksum - a mismatch means "not cleanly unmounted". On top of that, each file had a bit of trailing data the header did not account for. An incomplete write, frozen at the moment the power went out.&lt;/p&gt;

&lt;p&gt;That was enough for Windows to declare both hives unloadable. It marked the &lt;code&gt;ProfileList&lt;/code&gt; entry for my SID as failed (renamed with a &lt;code&gt;.bak&lt;/code&gt; suffix) and fell back to temporary profiles.&lt;/p&gt;

&lt;p&gt;One detail matters more than all the rest: the files were still structurally valid. Right signature, right header checksum. They were &lt;em&gt;dirty&lt;/em&gt;, not destroyed. That distinction is the whole reason a repair was possible at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part where I paid for the wrong diagnosis
&lt;/h2&gt;

&lt;p&gt;With two deadlines ahead of me, I did the reasonable thing and asked for help instead of fixing it myself.&lt;/p&gt;

&lt;p&gt;The support line recommended a paid data-recovery specialist (400 yuan). I said I did not think this was a data problem - the symptoms pointed at a profile or registry problem. I was told the root cause could not be determined and a full disk scan had to come first. Fair enough; I agreed.&lt;/p&gt;

&lt;p&gt;The scan ran for about 40 minutes under remote control. The conclusion: no data problem, refund on the way. The refund did arrive. The 40 minutes did not come back, and neither did any diagnostic value - the scan did not tell me anything I had not already told them at the start.&lt;/p&gt;

&lt;p&gt;A second specialist was recommended (88 yuan), and this one was at least on the right track. Five hours, several remote sessions, a lot of waiting on my side. The verdict: the profile could not be recovered in place, and here are two backup plans - reinstall Windows, or create a new local administrator account and move into it. I picked the second, because it looked faster and it did not put the remaining files at risk.&lt;/p&gt;

&lt;p&gt;So that was the day: a working account, my files intact, and a new local account I never wanted. My original profile folder was still sitting on the disk, unreachable.&lt;/p&gt;

&lt;p&gt;I finished the assignments out of that borrowed account, then, late that night, asked an AI assistant (DeepSeek, running inside my editor) whether it wanted to take a look.&lt;/p&gt;

&lt;p&gt;Ten minutes later I was logged back into my own profile. Desktop, themes, input methods, everything.&lt;/p&gt;

&lt;h2&gt;
  
  
  What those ten minutes actually looked like
&lt;/h2&gt;

&lt;p&gt;It started read-only, which I appreciated. And the first thing it reached for was not the registry - it was the event log, which names the exact file that failed to load:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Which hives is Windows failing to load? The event message contains the full path.&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;Get-WinEvent&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-FilterHashtable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;@{&lt;/span&gt;&lt;span class="nx"&gt;LogName&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Application'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;ProviderName&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'Microsoft-Windows-User Profiles Service'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;-MaxEvents&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;20&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="n"&gt;Select-Object&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;TimeCreated&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;Message&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;Format-List&lt;/span&gt;&lt;span class="w"&gt;

&lt;/span&gt;&lt;span class="c"&gt;# Is the profile marked as failed in the registry?&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="n"&gt;reg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;/s&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Both hives showed up there by name. A warning if you ever do this yourself: the profile service also logs plenty of &lt;em&gt;successful&lt;/em&gt; load lines while it retries, so the "is loaded" messages are misleading on their own. The Application-channel errors are what actually point at the failing file.&lt;/p&gt;

&lt;p&gt;The repair is small in concept. On a &lt;strong&gt;copy&lt;/strong&gt; of each hive, with the original &lt;code&gt;.LOG&lt;/code&gt; files kept in place:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Set the secondary sequence number at offset &lt;code&gt;0x08&lt;/code&gt; equal to the primary at offset &lt;code&gt;0x04&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Recompute the header checksum at offset &lt;code&gt;0x1FC&lt;/code&gt; (XOR of the first 508 bytes, DWORD by DWORD).&lt;/li&gt;
&lt;li&gt;Verify by loading it at its &lt;strong&gt;final path&lt;/strong&gt; with &lt;code&gt;reg load&lt;/code&gt;, then unloading.&lt;/li&gt;
&lt;li&gt;Put the repaired hives back and restore the &lt;code&gt;ProfileList&lt;/code&gt; key (&lt;code&gt;State = 0&lt;/code&gt;, pointing at the original profile folder).&lt;/li&gt;
&lt;li&gt;Reboot, then confirm the profile service reports &lt;code&gt;Profile type: Regular&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The trade-off is expected and I accepted it: anything written after the last successful flush - a few minutes at most - is gone for good.&lt;/p&gt;

&lt;h2&gt;
  
  
  If this happens to you
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Do not force a power-off while Windows is configuring updates.&lt;/strong&gt; If the screen is black and nothing responds, wait. Waiting costs minutes. Guessing cost me a day.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Read the Application event log before you pay anyone to scan anything.&lt;/strong&gt; It names the failing hive. Five minutes of triage beats a 40-minute scan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;"Profile cannot be loaded" is not the same as "data is gone".&lt;/strong&gt; A dirty hive is usually repairable. Check the signature and header checksum before assuming the worst.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Test-load a copy, never the original.&lt;/strong&gt; &lt;code&gt;reg load HKLM\ZZ_Test &amp;lt;path&amp;gt;&lt;/code&gt; on a copy; the original stays untouched as evidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Both halves have to load.&lt;/strong&gt; I fixed one hive first and it still failed, because the second one was broken too. Windows retries quietly, then gives up.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Keep the &lt;code&gt;.LOG&lt;/code&gt; files.&lt;/strong&gt; They are part of the recovery path, not leftovers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do not rename or delete hives because a tutorial told you to.&lt;/strong&gt; I hand-renamed my hive files to &lt;code&gt;*.corrupt&lt;/code&gt; as a "fix". The files happened to be intact, so no harm done - but it was extra work and extra risk for nothing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No "one-click registry repair" tools, and no Reset this PC.&lt;/strong&gt; Your personal files survive a profile problem. A reset does not care about them.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Turn on System Protection.&lt;/strong&gt; And do not clean out those temporary profile folders until you have copied anything you created inside them - they get deleted at logoff, or stay locked and unreachable if the session ends abnormally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Temporary profile folders are stubborn to delete&lt;/strong&gt; - they contain junctions and carry explicit deny-delete ACL entries. &lt;code&gt;cmd /c rd /s /q&lt;/code&gt; and a glance at &lt;code&gt;icacls&lt;/code&gt; get you further than a recursive delete.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Where I landed
&lt;/h2&gt;

&lt;p&gt;Two paid sessions, 488 yuan and about 5.5 hours produced a workaround. A free AI assistant produced a repair in ten minutes, with me watching and confirming each step. That comparison is uncomfortable, and I think it deserves to be uncomfortable.&lt;/p&gt;

&lt;p&gt;But what stays with me is not the speed. It is the direction of the diagnosis. The paid path started from "scan the disk for lost data"; the real cause was two registry files that were dirty, not data that had vanished. The tools to check that - event log, registry key, hive header - were sitting on my own machine the whole time.&lt;/p&gt;

&lt;p&gt;So if you ever see a fresh &lt;code&gt;TEMP.&amp;lt;machine-name&amp;gt;&lt;/code&gt; profile after a reboot: open the event log first. Not the scanner.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Costs mentioned: 400 yuan (eventually refunded), 88 yuan (paid). Machine: Windows 11 Home 25H2. Timestamps taken from system and file logs, UTC+8.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>windows</category>
      <category>powershell</category>
      <category>debugging</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
