This is a low-resolution version of the logo of Windows XP by Microsoft, protected by copyright

Windows Server on a laptop

Why?

I have a laptop, an ASUS Zenbook UX310UQ, that came with Windows 10 installed by the manufacturer.

After years of usage, it landed in a box, and I’ve decided to take it out and put it to good use.

The system was incredibly slow; the disk was spinning the whole time, and the CPU was working endlessly.

I guess there was too much cruft on it, so I decided it would have been a good idea to do a clean install. A clean install of Windows. I considered other systems, but they were not an option for the future end user.

Since official support for Windows 10 finishes this year, it seemed like a more sensible idea to install Windows 11 directly, although I do not like the idea of an online account.

Microsoft already installed the PC Health Check application, and everything looked good (TPM2, RAM, disk, …​), except that it reported that the CPU, an Intel Core i7 7500u was not supported by Windows 11.

A quick search online brought me to this page 🗄️, which confirmed that the processor is not listed.

Thus I had at least two motives to look for something else.

Note 📝
yes, it might be possible to install Windows 11 even if the CPU is not supported and without an online account, but who knows how long those workarounds will work?

Thus one alternative was to reinstall Windows 10, or, as I noted last year, use Windows Server, except this time on real hardware, not on a virtual machine.

Since Windows Server 2025 is no longer in beta, and I still have a license, I decided to see if it had the same restrictions for the CPU. Apparently not 🗄️.

So I decided to give it a try. What would the worst-case scenario be? That I’ll have to install Windows 10 afterward.

I tried to search online if other people had similar experiences, what I could find were mainly naysayers, claiming that some programs will not work, especially backup programs and antiviruses, and that I’ll need to buy more expensive licenses.

Considering that Windows has Windows Defender (for better or worse) at no cost and that tools like rsync could not care less if they are running on a server version or not, and the fact that in a virtualized environment I had only positives experiences, I ignored the search results and gave it a try.

Short guide on how to install Windows

You can find thousands of guides online, and this section is not even specific to Windows Server.

It is not my first time installing Windows, or another system, but it has been years since I installed Windows outside a virtual machine.

I did multiple things wrong, even if I should have known better, so I’m writing down a short checklist of things to do to ensure a smoother experience.

Clone the whole system

I did not do this.

Ideally one should always do a full system backup to be able to restore a working system. In my case, the system was half-broken. Thus the best moment to do a system backup is the moment a new computer is turned on. The second best moment is now.

I should have done a backup before installing the new Windows version.

I was overly confident that everything would go without issues, and I regret I did not do it because it could have saved me a ton of time.

Export drivers

Independently of a system backup, one should copy the system drivers.

I downloaded all the drivers from website of the producer, and I thought that it would have been enough.

Windows is extremely backward compatible, and Windows 10 and Windows 11 are extremely similar.

As a reminder for next time; export the drivers with the following command:

dism /online /export-driver /destination:"<path where to save the drivers>"

Or copy the folder C:\Windows\System32\DriverStore\FileRepository.

In the next section, it will be clear why using the system backup might be better than doing a clean installation.

Copy user data

Well, obviously I did that!

I copied the whole C:\User\<username> folder for simplicity and removed afterward some obvious things I did not want to restore.

Enlist installed programs

Because I wanted to install some of them again, I verified that I had the setup of them. By some programs, I also verified if it was possible to export the configuration. In some cases (for example Firefox and Thunderbird) it is sufficient to save the folders in the AppData/Local and AppData/Roaming directories.

Extract key codes

For example, the key that is used for the current Windows installation, or for Office, or other products.

I’ve used ProduKey 🗄️, but Windows Defender continued to complain and delete the executable, even if I told him not to do so. I had to temporarily disable it.

Prepare the installation media

I believe the easiest way to prepare a USB stick with Windows is by using Rufus.

Rufus can also remove some hardware restrictions and does so by default. I disabled this feature; I wanted to be sure that a vanilla server installation had nothing to complain about the hardware. I wanted to avoid a future update breaks the machine because the CPU, or something else, is not supported.

Make a clean installation

Finally, shut down the computer, and restart from the USB key.

The installation process is similar to any other Windows installation.

Post-installation steps

After installing Windows, there are always multiple things to do.

Setting up accounts, installing and configuring programs. This section is more specific to Windows Server 2025.

Create non-admin user

It might not be a common procedure, but it is something I’ve been doing on hardware since Windows 7.

The user I normally use is not the administrator; it is a"normal" user.

For most tasks, there is no need to have administrative rights.

Also on Windows Server, the first user is called Administrator; not very personal. I’m also not sure if it would be beneficial to disable it, similarly to a normal Windows version, as I think this account has some additional privileges. As imagined, having it enabled has security implications 🗄️, but disabling it means I need to create another admin account. As I’m not sure about further implications, I’ve currently left it enabled, and did not create a normal administrator account.

After installing most of the needed software, I created the account that will be used daily and switched to it.

Enhance the "desktop experience"

You might want to follow what I wrote for here.

In particular:

# disable Ctrl+Alt+Del requirement during login
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -name 'DisableCAD' -Type DWord -Value "1"

# disable server manager at logon
Get-ScheduledTask -TaskName ServerManager | Disable-ScheduledTask

# Disable shutdown event tracker
New-Item -Path         'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT' -Name Reliability -Force
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Reliability' -Name ShutdownReasonOn -Value 0

Contrary to Windows Server 2022, there was no need to

  • enable diskperf

  • start the audio service

  • use Powershell to add a different keyboard layout

After using the computer as a normal user for a while, I noticed that the account had some additional restrictions.

On Windows Server, a normal user is unable to shut down the machine, which does not make much sense for a device that you can power off physically. Open gpedit.msc, select "Computer Configuration", "Windows Settings", "Security Settings", "Local Policies", "User Rights Assignment", and finally "Shut down the system". From here it is possible to add the whole group "Users". I’m sure this task can be automated too, but I’m not sure what’s the easiest and most portable way to do it.

Similarly, on a Desktop system, normals Users can also "Change the time zone", this settings should be in the same section.

Another relevant difference is under "Computer Configuration", "Windows Settings", "Security Settings", "Local Policies", "Security Options", and finally "Shutdown: Allow system to be shut down without having to log on". This is enabled by default on a normal Windows version, but is disabled by default on Windows server.

I also noticed that a normal user is not able to change the power settings.

Inspired by this answer for Windows Server 2008 🗄️, I executed following commands

PowerCfg -GetSecurityDescriptor ActionSetActive
# output was
# O:BAG:SYD:P(A;CI;KR;;;BU)(A;CI;KA;;;BA)(A;CI;KA;;;SY)(A;CI;KA;;;CO)(A;CI;KR;;;S-1-15-2-1)(A;CI;KR;;;S-1-15-3-1024-1502825166-1963708345-2616377461-2562897074-4192028372-3968301570-1997628692-1435953622)
# replace all ";KR;" with ";KRKW;"
PowerCfg -SetSecurityDescriptor ActionSetActive "O:BAG:SYD:P(A;CI;KRKW;;;BU)(A;CI;KA;;;BA)(A;CI;KA;;;SY)(A;CI;KA;;;CO)(A;CI;KRKW;;;S-1-15-2-1)(A;CI;KRKW;;;S-1-15-3-1024-1502825166-1963708345-2616377461-2562897074-4192028372-3968301570-1997628692-1435953622)"

and now I was able to change power settings from a normal user too, althoug I have to admit I’m not exactly sure what I#ve changed, and why such settings is not available in gpedit.

There are surely many more differences, those are the ones I noticed until now, and that where relevant for my use-cases.

Common changes

Other things that I usually change on all Windows machines:

function CondNewItem([string] $item) {
 # avoid creating unconditionally with -Force, as it will delete the content
 # use -Force to create folders recursively
 If (!(Test-Path $item)) {
 New-Item -Force $item
 }
}

# add desktop icons, do for every user
 $registryPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel"
 CondNewItem $registryPath | Out-Null
 # Computer
 Set-ItemProperty -Path $registryPath -Name "{20D04FE0-3AEA-1069-A2D8-08002B30309D}" -Type DWord -Value 0 | Out-Null
 # User Files
 Set-ItemProperty -Path $registryPath -Name "{59031A47-3F72-44A7-89C5-5595FE6B30EE}" -Type DWord -Value 0 | Out-Null
 # Control Panel
 Set-ItemProperty -Path $registryPath -Name "{5399E694-6CE5-4D6C-8FCE-1D8870FDCBA0}" -Type DWord -Value 0 | Out-Null
 # Network
 Set-ItemProperty -Path $registryPath -Name "{F02C1A0D-BE21-4350-88B0-7367FC96EF3C}" -Type DWord -Value 0 | Out-Null
 # recycle Bin
 Set-ItemProperty -Path $registryPath -Name "{645FF040-5081-101B-9F08-00AA002F954E}" -Type DWord -Value 0 | Out-Null

 # Add home dir to My PC sidebar in explorer.exe
$namespace="HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace"
 $namespacewow="HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace"
 CondNewItem "$namespace\{59031a47-3f72-44a7-89c5-5595fe6b30ee}" -Force -ErrorAction SilentlyContinue | Out-Null
 CondNewItem "$namespacewow\{59031a47-3f72-44a7-89c5-5595fe6b30ee}" -Force -ErrorAction SilentlyContinue | Out-Null

And some minimal hardening, in particular topics related to file extenstion:

  • always show file extensions in explorer by default

  • disable execution of file with commont double extensions, for example .pdf.exe

After that, install a handful of programs I think are indispensable on every system:

Other than that, I reached for the drivers I downloaded and tried to install what Windows did not recognize.

Devices and drivers

Bluetooth and Wifi

Works out of the box, as documented 🗄️. Older versions of Windows Server might have been more problematic in this regard.

Audio

Worked out of the box. On older versions of Windows Server one had to enable the audio service.

Keyboard backlight

Worked after installing the corresponding helper program of Asus.

Camera

Tested at the very end, so I am not sure if it works out of the box.

Windows Server 2025 does not come with a camera program preinstalled; I went to the store, downloaded the application with the browser, and installed it.

A faster way would have been winget install "windows camera" or winget install 9wzdncrfjbbg, as winget is available by default.

The application worked out of the box and recognized the camera of the laptop without issues.

Battery

I changed some settings from the UI, for example enabling energy mode when the battery is low. The default settings might not be appropriate for a laptop, but it seems to work correctly.

Function keys

Most function keys worked out of the box, for example airplaine mode and the volume.

To get all of them working, I had to install the utility program/drivers from Asus.

Touchpad

This was the most confusing part.

While installing Windows, the touchpad worked without issues. After installing it, it stopped working. Even after installing the drivers, it did not work.

Unfortunately, I noticed this issue pretty late, because right after installing Windows I connected it to an external monitor (by the way, they work out of the box too) and mouse, and so I forgot of this glitch.

Turns out that on Windows Server the touchpad is not supported.

Not good for a laptop.

Lucky me, I could find a solution on a forum 🗄️:

  • extract hidi2c.inf and hidi2c.sys from the Windows/INF and Windows/System32/drivers folders of the Windows server iso (remember, the touchpad worked during installation!)

  • edit the hidi2c.inf file; change NTamd64…​1 to NTamd64 (there should be two matches)

  • Click on reboot while holding Shift

  • Windows should start a blue screen "Choose an Option"

  • notice that the touchpad works 😠

  • Select "Troubleshoot", "Startup Settings", "Restart" and finally "Disable Driver Signature Enforcement" (see the following images if you are not sure)

  • install the modified file with pnputil.exe /add-driver .\hidi2c.inf /install

  • verify that the touchpad works

  • restart the system

Choose an option
Figure 1. Select the option "Troubleshoot"
Advanced options
Figure 2. Select the option "Startup Settings"
Startup Settings
Figure 3. Select the option "Click on Restart"
Advanced Boot Options
Figure 4. Select the option "Disable Driver Signature Enforcement"

The touchpad should work from now on, except during the login screen! I found no workaround for that, maybe it is a glitch of my devices because I could not find any other information (or maybe unsigned drivers are not loaded at that point?) but it is acceptable. You can access every element with Tab ↹, thus it is possible to change the user, insert the password, and log in.

The only thing you seem to be unable to do is to show the password you’ve written.

I think this is still acceptable, and unless someone can give me a better solution, I do not plan to spend any more time on it.

For those thinking that I should not use the server edition because some features are disabled for

  • performance reasons

  • optimization reasons

  • unexpected use cases

The .inf and .sys files are together less than 130kB big, and are part of the official installation disk image. If you want to have an optimized system, I bet there are much lower-hanging fruits.

Unknown device

I have to admit I forgot how bad it is to install drivers manually.

Windows can find some drivers automatically, but it did not find all of them automatically. I’ve also read that the server edition has a more limited pool of drivers available, I do not know how much this is still true, and how much this affected my experience with this laptop.

The point is, I had to install some drivers manually.

Windows has a built-in program for giving him additional drivers, and it helped to automatically recognize more devices, but still not all of them.

Some drivers are "hidden" in setup applications, and the official way to install them is…​ to execute those programs.

The first issue of this approach is that those setups often install something else too. In some cases, the "something else" are unnecessary services that run in the background the whole time. One could try to detect those services, understand if they are really required, and eventually disable them, but it takes time.

The second issue is that the archives and setups downloaded from the website are not well labeled. Which drivers do I need to install? What is the unknown device? If Windows could search for the drivers alone, there would be no need to try blindly one setup, determine it was just a utility program, and remove it.

The third issue is that at least two setups exited with an error. One told me that the system was not supported, and another one did not bother to specify what went wrong.

Granted, the setups were programmed for Windows 10, and I did not think that some might verify on which system I where executing them.

I’m too accustomed to using the same installer on multiple Windows versions without issue.

The TL;DR is that even if everything seems to work correctly, it itched me that Windows listed two unknown devices.

If I only had made a system backup, or at least exported the drivers of the original system, then the whole process would have been much smoother, as ideally, Windows would have picked all exported drivers, without me executing some random setups.

I had to resort to some third-party tools to get an idea of what those drivers are and where to find them.

What were the missing devices/drivers?

  • Intel® Dynamic Tuning Manager

  • Intel® Dynamic Tuning Manager Processor Participant

I have no idea if they are really useful, they should help to optimize the system. Who knows.

Conclusion

Everything works! 🥳 Success! 🎉

It seems that Windows Server (with Desktop Components) got more user-friendly towards computers and laptops compared to previous versions.

I’m confident that the same result can be reached with the previous version of the Windows Server too, although it might be more difficult. I believe that at worst, one has to modify and install drivers similarly to how I needed to enable support for the trackpad. But in general, it will make less sense since versions older than Windows 11 probably do not have the compatibility issues I had.

Except for the drivers (which was my fault), I needed even less time to configure the PC compared to a "normal" Windows 10 installation; there where less programs to remove or configure, although I had some research to do for settings I was not even aware existed.

Based on this experience, I would recommend Windows Server 2025, on real hardware, much more than Windows Server 2022 as a desktop system. If one happens to have a license, I would also recommend Windows Server 2025 over Windows 11, because

  • it seems to support more hardware than Windows 11 (at least CPUs)

  • server editions are generally maintained longer than other Windows versions, for example, Windows Server 2016 🗄️ will get security updates until January 2027

  • does not require an online account

  • does have fewer programs and services installed

Granted, in general, Windows Server might be optimized for other types of workloads. I did not run any benchmark, but in a virtual environment, I noticed that it used fewer resources by default, at least because it had fewer programs and services running in the background.

Since most people will not have spare Windows Server licenses, those notes will not be that practical⁠[1], although I’m happy that the laptop can be used again, and should get updates for the next dozen years.


1. The server licenses are not cheap; currently it costs over 1100$ 🗄️. I would not buy one license to use it as a Desktop system.

Do you want to share your opinion? Or is there an error, some parts that are not clear enough?

You can contact me anytime.