Completely Disable WerFault.exe (Windows Error Reporting) on Windows

Method 1: Disable via Group Policy (Recommended for Windows Pro/Enterprise)

  1. Press Win + R, type gpedit.msc, and press Enter.

  2. Navigate to:

    Computer ConfigurationAdministrative TemplatesWindows ComponentsWindows Error Reporting
  3. Double-click “Disable Windows Error Reporting”

  4. Set it to Enabled

  5. Click ApplyOK

This disables WER across the system and prevents WerFault.exe from launching.


Method 2: Disable via Windows Registry (All Editions)

  1. Press Win + R, type regedit, and press Enter.

  2. Navigate to:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting

    If the Windows Error Reporting key doesn’t exist, right-click Microsoft\Windows, choose New → Key, and name it Windows Error Reporting.

  3. Inside Windows Error Reporting, do one of the following:

    • Right-click in the right pane → New → DWORD (32-bit) Value

    • Name it: Disabled

    • Set its value to: 1

  4. Restart your PC for changes to take effect.


Optional: Disable WER Service

While disabling WER via policy or registry prevents it from activating, you can also disable its background service as an extra step:

  1. Press Win + R, type services.msc, and press Enter.

  2. Find: Windows Error Reporting Service

  3. Right-click → Properties

  4. Set Startup type to Disabled

  5. Click Stop (if it’s running), then Apply and OK

Dual Boot Clock Issues

If you’re using dual-boot Windows alongside a Linux distribution (like Fedora, Ubuntu, etc.), you’ve probably encountered that frustrating issue where the clock shows the wrong time after switching from one OS to the other. It drove me crazy! This post is a quick reminder for my future self (and maybe you!) on why this happens and the best way I found to fix it permanently.

The Root Cause: A Tale of Two Time Standards

The heart of the problem lies in how Windows and Linux, by default, interpret the time stored in your computer’s Hardware Clock (also known as the RTC or CMOS clock). This is the clock that keeps running even when your PC is off, thanks to that little battery on the motherboard.

  • Windows: Assumes the time stored in the Hardware Clock is Local Time – the actual time on the clock in your specific time zone (e.g., Eastern Daylight Time, Pacific Standard Time), including adjustments for Daylight Saving Time (DST).
  • Linux (most distros): Assumes the time stored in the Hardware Clock is Coordinated Universal Time (UTC) – the global time standard that doesn’t change with time zones or DST. Linux then calculates your correct local time based on UTC plus your selected time zone settings.

When you switch operating systems, they read the Hardware Clock based on their own assumption. One OS might then “correct” the Hardware Clock according to its standard, making it wrong for the other OS when you boot into it next. This back-and-forth causes the time drift.

The Fix: Tell Windows the Hardware Clock is UTC

The most robust solution is to make Windows adopt the same standard as Linux: interpreting the Hardware Clock as UTC. This requires a simple change in the Windows Registry.

Why this method is generally preferred:

  • It aligns both operating systems with a universal standard (UTC).
  • UTC doesn’t have ambiguities related to Daylight Saving Time transitions, making it more reliable for the base hardware clock time.

Here are the steps:

  1. Boot into Windows.
  2. Open Registry Editor: Press Win + R, type regedit, and hit Enter. You’ll likely need to approve the User Account Control (UAC) prompt by clicking “Yes”.
    • Standard Warning: Be careful when editing the registry. Incorrect changes can cause system instability. Stick precisely to these instructions.
  3. Navigate to the Key: In the left-hand pane of the Registry Editor, navigate to this specific location:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
    

    (Expand HKEY_LOCAL_MACHINE, then SYSTEM, CurrentControlSet, Control, and finally click on TimeZoneInformation).

  4. Create the DWORD Value:
    • In the right-hand pane (showing the values within TimeZoneInformation), right-click on an empty space.
    • Select New -> DWORD (32-bit) Value.
    • Crucial: Even if you are using 64-bit Windows, you must select DWORD (32-bit) Value.
    • Name this new value exactly:
      RealTimeIsUniversal
      
  5. Set the Value Data:
    • Double-click the RealTimeIsUniversal value you just created.
    • In the “Value data” box, type 1.
    • Ensure the “Base” is set to Hexadecimal (though it makes no difference for the value 1).
    • Click OK.
  6. Close Registry Editor.
  7. Reboot Your Computer: The change takes effect after a restart.

Setup an NTP Server on Windows 10

At first, enable the Windows Time services from Services console. Open Services console using by typing services.msc at run window (Windows Key + R). Click in Standard Services and look for Windows Time service. Once you find the service, click on it and set the Start Up type as Automatic and click on Start to start the service.

2. Next, we will enable the NTP-server by manipulating Window registry file for Service W32Time. Open Window registry via the run option (Windows + R) and then entering regedit and navigate to the below location.

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer

Once you reach above location, click on Enabled entry and change the value data from 0 to 1 as shown below.

3. Checked the NTP configuration from command line using command w32tm /query /configuration. Below output will indicate that NTP-server is not enabled yet.

4. Next, restart Windows Time service which was enabled in step 1 or update the W32tm from command line using command w32tm /config /update. This will enable the Window10 machine as an NTP Server.

You now have your NTP server running and can now point all your nodes on your network to the IP address of the machine.

References
https://support.hanwhavision.com/hc/en-us/articles/26570683589529-How-to-Setup-an-NTP-Server-on-Windows-10

Disabling UAC in Windows 11 using the registry

  1. Press Windows Key + R to open the Run dialog.
  2. Type regedit and press Enter.
  3. Navigate to the following key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
  1. In the right-hand pane, find the value named EnableLUA.
  2. Double-click on EnableLUA.
  3. Change the Value data from 1 to 0.
  4. Click OK to save the changes.
  5. Restart your computer for the changes to take effect.

Hide a User from the Windows Login Screen

Getting the exact username

  1. Press Windows Key + R to open the Run dialog.
  2. Type netplwiz and press Enter.
  3. The User Accounts window will list all user accounts on your Windows machine. The usernames are displayed in the “User name” column.

Using the Registry Editor

  1. Open the Registry Editor:

    • Press the Windows key + R.
    • Type “regedit” and press Enter.
  2. Navigate to the Winlogon Key:

    • Go to this path: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
  3. Create SpecialAccounts and UserList Keys:

    • Right-click on “Winlogon” and select New -> Key. Name it SpecialAccounts.
    • Right-click on “SpecialAccounts” and select New -> Key. Name it UserList.
  4. Create a DWORD Value:

    • Right-click within the “UserList” key.
    • Select New -> DWORD (32-bit) Value.
    • Name the DWORD the exact username of the account you want to hide.
    • Double-click the new DWORD and set its value data to 0.
  5. Restart: Close the Registry Editor and restart your computer.

Deploy applications in Run as Administrator mode in Windows using Visual Studio and Inno Setup

Add the following line in your [Setup] section. This is the primary way to indicate that your installer requires administrative rights.

[Setup]
...
PrivilegesRequired=admin
...

Consider embedding an appropriate manifest into your application’s executable to have it automatically request elevation when executed outside the installer. This can provide a more seamless experience for the user.

1. Create the Manifest File:

  • Right-click on your project in the Solution Explorer and select Add -> New Item….
  • Choose Application Manifest File (it might be under the General category).
  • The default name is typically app.manifest. Keep this name or adjust it if necessary.

2. Modify the Manifest:

  • Open the newly created app.manifest file. The default content will be similar to this:

<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v1">
        </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>
  • Inside the <requestedPrivileges> element, add the following line:
<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

3. Embed the Manifest:

The manifest is now created, but you need to tell Visual Studio to embed it into your executable:

  • Right-click on your project and select Properties.
  • Go to the Application tab.
  • Under Manifest, select Embed manifest with default settings.

Build the Project:

Rebuild your project. The generated executable will now have the UAC manifest embedded, causing your application to request administrative privileges when run.