<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://aznot.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kenneth</id>
	<title>Omnia - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://aznot.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kenneth"/>
	<link rel="alternate" type="text/html" href="https://aznot.com/Special:Contributions/Kenneth"/>
	<updated>2026-09-27T00:19:15Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10414</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10414"/>
		<updated>2026-09-25T06:57:27Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save Game Location ==&lt;br /&gt;
 C:\Users\&amp;lt;Username&amp;gt;\AppData\Local\AbioticFactor\Saved\SaveGames\&amp;lt;SteamID&amp;gt;\Worlds&lt;br /&gt;
 %localappdata%\AbioticFactor\Saved\SaveGames\&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
The server settings are stored in a file that needs to be created, if you don&#039;t want default settings under something like:&lt;br /&gt;
 [SERVERPATH]/AbioticFactor/Saved/SaveGames/Server/Worlds/[WORLD]/SandboxSettings.ini&lt;br /&gt;
 Example:&lt;br /&gt;
 ~/abiotic/AbioticFactor/Saved/SaveGames/Server/Worlds/Cascade/SandboxSettings.ini&lt;br /&gt;
&lt;br /&gt;
Sample SandboxSettings.ini from our custom game: (only changes from default are included in the ini file)&lt;br /&gt;
* &amp;lt;ref&amp;gt;https://github.com/DFJacob/AbioticFactorDedicatedServer/blob/main/SandboxSettings.ini&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &amp;lt;ref&amp;gt;https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Technical-%E2%80%90-Sandbox-Options&amp;lt;/ref&amp;gt;&lt;br /&gt;
* &amp;lt;ref&amp;gt;https://github.com/DFJacob/AbioticFactorDedicatedServer/blob/main/SandboxSettings.ini&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[SandboxSettings]&lt;br /&gt;
LootRespawnEnabled=true&lt;br /&gt;
FoodSpoilSpeedMultiplier=0.25&lt;br /&gt;
RefrigerationEffectivenessMultiplier=0.0&lt;br /&gt;
DamageToAlliesMultiplier=0.0&lt;br /&gt;
HungerSpeedMultiplier=0.25&lt;br /&gt;
ThirstSpeedMultiplier=0.25&lt;br /&gt;
HostAccessPlayerCorpses=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admini.ini that contains a list of admin Steam IDs is in:&lt;br /&gt;
 AbioticFactor/Saved/SaveGames/Server/Admin.ini&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Moderators]&lt;br /&gt;
Moderator=123456&lt;br /&gt;
Moderator=ExampleID2&lt;br /&gt;
&lt;br /&gt;
[BannedPlayers]&lt;br /&gt;
BannedPlayer=ExampleBanID1&lt;br /&gt;
BannedPlayer=ExampleBanID2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```&lt;br /&gt;
sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s&lt;br /&gt;
```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```&lt;br /&gt;
sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
# Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
  # wineboot -u&lt;br /&gt;
  # rm -rf ~/.wine) and run winecfg&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```&lt;br /&gt;
sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```&lt;br /&gt;
mkdir /home/abiotic/abioticserver&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```&lt;br /&gt;
/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```&lt;br /&gt;
touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```&lt;br /&gt;
sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```&lt;br /&gt;
chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```&lt;br /&gt;
/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```&lt;br /&gt;
sudo nano /etc/systemd/system/abiotic.service&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```&lt;br /&gt;
sudo systemctl enable abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```&lt;br /&gt;
sudo systemctl start abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
maybe use this for lan servers:&lt;br /&gt;
 -UseLocalIPs&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10413</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10413"/>
		<updated>2026-09-25T06:56:47Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save Game Location ==&lt;br /&gt;
 C:\Users\&amp;lt;Username&amp;gt;\AppData\Local\AbioticFactor\Saved\SaveGames\&amp;lt;SteamID&amp;gt;\Worlds&lt;br /&gt;
 %localappdata%\AbioticFactor\Saved\SaveGames\&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
The server settings are stored in a file that needs to be created, if you don&#039;t want default settings under something like:&lt;br /&gt;
 [SERVERPATH]/AbioticFactor/Saved/SaveGames/Server/Worlds/[WORLD]/SandboxSettings.ini&lt;br /&gt;
 Example:&lt;br /&gt;
 ~/abiotic/AbioticFactor/Saved/SaveGames/Server/Worlds/Cascade/SandboxSettings.ini&lt;br /&gt;
&lt;br /&gt;
Sample SandboxSettings.ini from our custom game: (only changes from default are included in the ini file) &amp;lt;ref&amp;gt;https://github.com/DFJacob/AbioticFactorDedicatedServer/blob/main/SandboxSettings.ini&amp;lt;/ref&amp;gt; &amp;lt;ref&amp;gt;https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Technical-%E2%80%90-Sandbox-Options&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[SandboxSettings]&lt;br /&gt;
LootRespawnEnabled=true&lt;br /&gt;
FoodSpoilSpeedMultiplier=0.25&lt;br /&gt;
RefrigerationEffectivenessMultiplier=0.0&lt;br /&gt;
DamageToAlliesMultiplier=0.0&lt;br /&gt;
HungerSpeedMultiplier=0.25&lt;br /&gt;
ThirstSpeedMultiplier=0.25&lt;br /&gt;
HostAccessPlayerCorpses=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admini.ini that contains a list of admin Steam IDs is in:&lt;br /&gt;
 AbioticFactor/Saved/SaveGames/Server/Admin.ini&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Moderators]&lt;br /&gt;
Moderator=123456&lt;br /&gt;
Moderator=ExampleID2&lt;br /&gt;
&lt;br /&gt;
[BannedPlayers]&lt;br /&gt;
BannedPlayer=ExampleBanID1&lt;br /&gt;
BannedPlayer=ExampleBanID2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```&lt;br /&gt;
sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s&lt;br /&gt;
```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```&lt;br /&gt;
sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
# Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
  # wineboot -u&lt;br /&gt;
  # rm -rf ~/.wine) and run winecfg&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```&lt;br /&gt;
sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```&lt;br /&gt;
mkdir /home/abiotic/abioticserver&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```&lt;br /&gt;
/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```&lt;br /&gt;
touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```&lt;br /&gt;
sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```&lt;br /&gt;
chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```&lt;br /&gt;
/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```&lt;br /&gt;
sudo nano /etc/systemd/system/abiotic.service&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```&lt;br /&gt;
sudo systemctl enable abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```&lt;br /&gt;
sudo systemctl start abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
maybe use this for lan servers:&lt;br /&gt;
 -UseLocalIPs&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10412</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10412"/>
		<updated>2026-09-25T06:43:19Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save Game Location ==&lt;br /&gt;
 C:\Users\&amp;lt;Username&amp;gt;\AppData\Local\AbioticFactor\Saved\SaveGames\&amp;lt;SteamID&amp;gt;\Worlds&lt;br /&gt;
 %localappdata%\AbioticFactor\Saved\SaveGames\&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
The server settings are stored in a file that needs to be created, if you don&#039;t want default settings under something like:&lt;br /&gt;
 [SERVERPATH]/AbioticFactor/Saved/SaveGames/Server/Worlds/[WORLD]/SandboxSettings.ini&lt;br /&gt;
 Example:&lt;br /&gt;
 ~/abiotic/AbioticFactor/Saved/SaveGames/Server/Worlds/Cascade/SandboxSettings.ini&lt;br /&gt;
&lt;br /&gt;
Sample SandboxSettings.ini from our custom game: (only changes from default are included in the ini file) &amp;lt;ref&amp;gt;https://github.com/DFJacob/AbioticFactorDedicatedServer/blob/main/SandboxSettings.ini&amp;lt;/ref&amp;gt;&amp;lt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[SandboxSettings]&lt;br /&gt;
LootRespawnEnabled=true&lt;br /&gt;
FoodSpoilSpeedMultiplier=0.25&lt;br /&gt;
RefrigerationEffectivenessMultiplier=0.0&lt;br /&gt;
DamageToAlliesMultiplier=0.0&lt;br /&gt;
HungerSpeedMultiplier=0.25&lt;br /&gt;
ThirstSpeedMultiplier=0.25&lt;br /&gt;
HostAccessPlayerCorpses=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admini.ini that contains a list of admin Steam IDs is in:&lt;br /&gt;
 AbioticFactor/Saved/SaveGames/Server/Admin.ini&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Moderators]&lt;br /&gt;
Moderator=123456&lt;br /&gt;
Moderator=ExampleID2&lt;br /&gt;
&lt;br /&gt;
[BannedPlayers]&lt;br /&gt;
BannedPlayer=ExampleBanID1&lt;br /&gt;
BannedPlayer=ExampleBanID2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```&lt;br /&gt;
sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s&lt;br /&gt;
```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```&lt;br /&gt;
sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
# Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
  # wineboot -u&lt;br /&gt;
  # rm -rf ~/.wine) and run winecfg&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```&lt;br /&gt;
sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```&lt;br /&gt;
mkdir /home/abiotic/abioticserver&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```&lt;br /&gt;
/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```&lt;br /&gt;
touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```&lt;br /&gt;
sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```&lt;br /&gt;
chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```&lt;br /&gt;
/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```&lt;br /&gt;
sudo nano /etc/systemd/system/abiotic.service&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```&lt;br /&gt;
sudo systemctl enable abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```&lt;br /&gt;
sudo systemctl start abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
maybe use this for lan servers:&lt;br /&gt;
 -UseLocalIPs&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10411</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10411"/>
		<updated>2026-09-25T06:32:30Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save Game Location ==&lt;br /&gt;
 C:\Users\&amp;lt;Username&amp;gt;\AppData\Local\AbioticFactor\Saved\SaveGames\&amp;lt;SteamID&amp;gt;\Worlds&lt;br /&gt;
 %localappdata%\AbioticFactor\Saved\SaveGames\&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
The server settings are stored in a file that needs to be created, if you don&#039;t want default settings under something like:&lt;br /&gt;
 [SERVERPATH]/AbioticFactor/Saved/SaveGames/Server/Worlds/[WORLD]/SandboxSettings.ini&lt;br /&gt;
 Example:&lt;br /&gt;
 ~/abiotic/AbioticFactor/Saved/SaveGames/Server/Worlds/Cascade/SandboxSettings.ini&lt;br /&gt;
&lt;br /&gt;
Sample SandboxSettings.ini from our custom game: (only changes from default are included in the ini file)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[SandboxSettings]&lt;br /&gt;
LootRespawnEnabled=true&lt;br /&gt;
FoodSpoilSpeedMultiplier=0.25&lt;br /&gt;
RefrigerationEffectivenessMultiplier=0.0&lt;br /&gt;
DamageToAlliesMultiplier=0.0&lt;br /&gt;
HungerSpeedMultiplier=0.25&lt;br /&gt;
ThirstSpeedMultiplier=0.25&lt;br /&gt;
HostAccessPlayerCorpses=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Admini.ini that contains a list of admin Steam IDs is in:&lt;br /&gt;
 AbioticFactor/Saved/SaveGames/Server/Admin.ini&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[Moderators]&lt;br /&gt;
Moderator=123456&lt;br /&gt;
Moderator=ExampleID2&lt;br /&gt;
&lt;br /&gt;
[BannedPlayers]&lt;br /&gt;
BannedPlayer=ExampleBanID1&lt;br /&gt;
BannedPlayer=ExampleBanID2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```&lt;br /&gt;
sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s&lt;br /&gt;
```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```&lt;br /&gt;
sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
# Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
  # wineboot -u&lt;br /&gt;
  # rm -rf ~/.wine) and run winecfg&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```&lt;br /&gt;
sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```&lt;br /&gt;
mkdir /home/abiotic/abioticserver&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```&lt;br /&gt;
/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```&lt;br /&gt;
touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```&lt;br /&gt;
sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```&lt;br /&gt;
chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```&lt;br /&gt;
/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```&lt;br /&gt;
sudo nano /etc/systemd/system/abiotic.service&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```&lt;br /&gt;
sudo systemctl enable abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```&lt;br /&gt;
sudo systemctl start abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
maybe use this for lan servers:&lt;br /&gt;
 -UseLocalIPs&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10410</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10410"/>
		<updated>2026-09-25T06:30:02Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save Game Location ==&lt;br /&gt;
 C:\Users\&amp;lt;Username&amp;gt;\AppData\Local\AbioticFactor\Saved\SaveGames\&amp;lt;SteamID&amp;gt;\Worlds&lt;br /&gt;
 %localappdata%\AbioticFactor\Saved\SaveGames\&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
The server settings are stored in a file that needs to be created, if you don&#039;t want default settings under something like:&lt;br /&gt;
 [SERVERPATH]/AbioticFactor/Saved/SaveGames/Server/Worlds/[WORLD]/SandboxSettings.ini&lt;br /&gt;
 Example:&lt;br /&gt;
 ~/abiotic/AbioticFactor/Saved/SaveGames/Server/Worlds/Cascade/SandboxSettings.ini&lt;br /&gt;
&lt;br /&gt;
Sample SandboxSettings.ini from our custom game: (only changes from default are included in the ini file)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[SandboxSettings]&lt;br /&gt;
LootRespawnEnabled=true&lt;br /&gt;
FoodSpoilSpeedMultiplier=0.25&lt;br /&gt;
RefrigerationEffectivenessMultiplier=0.0&lt;br /&gt;
DamageToAlliesMultiplier=0.0&lt;br /&gt;
HungerSpeedMultiplier=0.25&lt;br /&gt;
ThirstSpeedMultiplier=0.25&lt;br /&gt;
HostAccessPlayerCorpses=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```&lt;br /&gt;
sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s&lt;br /&gt;
```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```&lt;br /&gt;
sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
# Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
  # wineboot -u&lt;br /&gt;
  # rm -rf ~/.wine) and run winecfg&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```&lt;br /&gt;
sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```&lt;br /&gt;
mkdir /home/abiotic/abioticserver&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```&lt;br /&gt;
/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```&lt;br /&gt;
touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```&lt;br /&gt;
sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```&lt;br /&gt;
chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```&lt;br /&gt;
/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```&lt;br /&gt;
sudo nano /etc/systemd/system/abiotic.service&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```&lt;br /&gt;
sudo systemctl enable abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```&lt;br /&gt;
sudo systemctl start abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
maybe use this for lan servers:&lt;br /&gt;
 -UseLocalIPs&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10409</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10409"/>
		<updated>2026-09-25T06:28:55Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save Game Location ==&lt;br /&gt;
 C:\Users\&amp;lt;Username&amp;gt;\AppData\Local\AbioticFactor\Saved\SaveGames\&amp;lt;SteamID&amp;gt;\Worlds&lt;br /&gt;
 %localappdata%\AbioticFactor\Saved\SaveGames\&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
The server settings are stored in a file that needs to be created, if you don&#039;t want default settings under something like:&lt;br /&gt;
 [SERVERPATH]/AbioticFactor/Saved/SaveGames/Server/Worlds/[WORLD]/SandboxSettings.ini&lt;br /&gt;
 Example:&lt;br /&gt;
 ~/abiotic/AbioticFactor/Saved/SaveGames/Server/Worlds/Cascade/SandboxSettings.ini&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```&lt;br /&gt;
sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s&lt;br /&gt;
```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```&lt;br /&gt;
sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
# Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
  # wineboot -u&lt;br /&gt;
  # rm -rf ~/.wine) and run winecfg&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```&lt;br /&gt;
sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```&lt;br /&gt;
mkdir /home/abiotic/abioticserver&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```&lt;br /&gt;
/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```&lt;br /&gt;
touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```&lt;br /&gt;
sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```&lt;br /&gt;
chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```&lt;br /&gt;
/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```&lt;br /&gt;
sudo nano /etc/systemd/system/abiotic.service&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```&lt;br /&gt;
sudo systemctl enable abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```&lt;br /&gt;
sudo systemctl start abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
maybe use this for lan servers:&lt;br /&gt;
 -UseLocalIPs&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10408</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10408"/>
		<updated>2026-09-25T06:26:51Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Save Game Location ==&lt;br /&gt;
 C:\Users\&amp;lt;Username&amp;gt;\AppData\Local\AbioticFactor\Saved\SaveGames\&amp;lt;SteamID&amp;gt;\Worlds&lt;br /&gt;
 %localappdata%\AbioticFactor\Saved\SaveGames\&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```&lt;br /&gt;
sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s&lt;br /&gt;
```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```&lt;br /&gt;
sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
# Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
  # wineboot -u&lt;br /&gt;
  # rm -rf ~/.wine) and run winecfg&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```&lt;br /&gt;
sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```&lt;br /&gt;
mkdir /home/abiotic/abioticserver&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```&lt;br /&gt;
/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```&lt;br /&gt;
touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```&lt;br /&gt;
sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```&lt;br /&gt;
chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```&lt;br /&gt;
/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```&lt;br /&gt;
sudo nano /etc/systemd/system/abiotic.service&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```&lt;br /&gt;
sudo systemctl enable abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```&lt;br /&gt;
sudo systemctl start abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
maybe use this for lan servers:&lt;br /&gt;
 -UseLocalIPs&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10407</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10407"/>
		<updated>2026-09-25T06:26:17Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Linux run notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```&lt;br /&gt;
sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s&lt;br /&gt;
```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```&lt;br /&gt;
sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
# Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
  # wineboot -u&lt;br /&gt;
  # rm -rf ~/.wine) and run winecfg&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```&lt;br /&gt;
sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```&lt;br /&gt;
mkdir /home/abiotic/abioticserver&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```&lt;br /&gt;
/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```&lt;br /&gt;
touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```&lt;br /&gt;
sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```&lt;br /&gt;
chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```&lt;br /&gt;
/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```&lt;br /&gt;
sudo nano /etc/systemd/system/abiotic.service&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```&lt;br /&gt;
sudo systemctl enable abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```&lt;br /&gt;
sudo systemctl start abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
maybe use this for lan servers:&lt;br /&gt;
 -UseLocalIPs&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/wine&amp;diff=10406</id>
		<title>Linux/wine</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/wine&amp;diff=10406"/>
		<updated>2026-09-25T06:17:41Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* /dev/dri permission issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wine ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
Test new wine prefix:&lt;br /&gt;
 WINEPREFIX=~/my_new_prefix wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Test wine with executable:&lt;br /&gt;
 xvfb-run -a wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Reconfig your wine prfix:&lt;br /&gt;
 rm -rf .wine&lt;br /&gt;
 winecfg&lt;br /&gt;
 # or if headless...&lt;br /&gt;
 xvfg-run wincfg&lt;br /&gt;
&lt;br /&gt;
== Debug Wine ==&lt;br /&gt;
&lt;br /&gt;
If you are still stuck, you can generate a cleaner log file to parse by running your app with standard Wine debugging output:&lt;br /&gt;
 WINEDEBUG=-all,err+all wine your_application.exe&lt;br /&gt;
&lt;br /&gt;
== Clean Prefix ==&lt;br /&gt;
&lt;br /&gt;
 # Remove the broken configuration directory&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
&lt;br /&gt;
 # Initialize a clean, default 64-bit prefix&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
-- Explicit Clean 64 --&lt;br /&gt;
&lt;br /&gt;
 # Create a fresh 64-bit testing environment&lt;br /&gt;
 WINEPREFIX=~/.wine_test WINEARCH=win64 wineboot --init&lt;br /&gt;
&lt;br /&gt;
 # Run the test program in that environment&lt;br /&gt;
 WINEPREFIX=~/.wine_test wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Wine cmd.exe Test ==&lt;br /&gt;
&lt;br /&gt;
 wine cmd.exe&lt;br /&gt;
&lt;br /&gt;
== Wine Console Test ==&lt;br /&gt;
&lt;br /&gt;
winetest.cpp ::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;       Wine Windows Console Test        \n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 1. Test Windows API Version Detection&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[1] Checking Windows API Memory Status...\n&amp;quot;;&lt;br /&gt;
    MEMORYSTATUSEX memInfo;&lt;br /&gt;
    memInfo.dwLength = sizeof(MEMORYSTATUSEX);&lt;br /&gt;
    if (GlobalMemoryStatusEx(&amp;amp;memInfo)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Success! Total Physical Memory: &amp;quot; &lt;br /&gt;
                  &amp;lt;&amp;lt; memInfo.ullTotalPhys / (1024 * 1024) &amp;lt;&amp;lt; &amp;quot; MB\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to retrieve memory status.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2. Test Environment Variables&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[2] Checking Environment Variables...\n&amp;quot;;&lt;br /&gt;
    char username[256];&lt;br /&gt;
    DWORD username_len = sizeof(username);&lt;br /&gt;
    if (GetUserNameA(username, &amp;amp;username_len)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Current User: &amp;quot; &amp;lt;&amp;lt; username &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to get username.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3. Test File System Write/Read under Wine&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[3] Testing File System I/O...\n&amp;quot;;&lt;br /&gt;
    std::string testFilename = &amp;quot;wine_test_file.txt&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    std::ofstream outFile(testFilename);&lt;br /&gt;
    if (outFile.is_open()) {&lt;br /&gt;
        outFile &amp;lt;&amp;lt; &amp;quot;Wine compatibility test successful!&amp;quot;;&lt;br /&gt;
        outFile.close();&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully wrote to &amp;quot; &amp;lt;&amp;lt; testFilename &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        std::ifstream inFile(testFilename);&lt;br /&gt;
        std::string fileContent;&lt;br /&gt;
        if (std::getline(inFile, fileContent)) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully read: \&amp;quot;&amp;quot; &amp;lt;&amp;lt; fileContent &amp;lt;&amp;lt; &amp;quot;\&amp;quot;\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        inFile.close();&lt;br /&gt;
        &lt;br /&gt;
        // Clean up&lt;br /&gt;
        DeleteFileA(testFilename.c_str());&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed file I/O test.\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 4. Test Registry Read (Optional but good for Wine)&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[4] Testing Registry Access (HKLM)...\n&amp;quot;;&lt;br /&gt;
    HKEY hKey;&lt;br /&gt;
    if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, &amp;quot;SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion&amp;quot;, 0, KEY_READ, &amp;amp;hKey) == ERROR_SUCCESS) {&lt;br /&gt;
        char prodName[256];&lt;br /&gt;
        DWORD bufferSize = sizeof(prodName);&lt;br /&gt;
        if (RegQueryValueExA(hKey, &amp;quot;ProductName&amp;quot;, NULL, NULL, (LPBYTE)prodName, &amp;amp;bufferSize) == ERROR_SUCCESS) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Reported OS: &amp;quot; &amp;lt;&amp;lt; prodName &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Opened key, but failed to read ProductName.\n\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        RegCloseKey(hKey);&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to open registry key.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;Tests completed. Press ENTER to exit.&amp;quot;;&lt;br /&gt;
    std::cin.get();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Linux cross compile with:&lt;br /&gt;
 x86_64-w64-mingw32-g++ -o winetest.exe winetest.cpp -static&lt;br /&gt;
&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-posix  # version 13.2.0-6ubuntu1+26.1, or&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-win32  # version 13.2.0-6ubuntu1+26.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Windows compile with:&lt;br /&gt;
 cl /EHsc winetest.cpp&lt;br /&gt;
&lt;br /&gt;
Rune in wine:&lt;br /&gt;
 wine winetest.exe&lt;br /&gt;
 xvfb-run -a wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== /dev/dri permission issue ===&lt;br /&gt;
&lt;br /&gt;
Errors in wine log:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably benign, but if you want, you can add the user to the &amp;quot;video&amp;quot; and &amp;quot;render&amp;quot; group, and that should fix both of these. (it did for me)&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG video,render steam&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep steam /etc/group&lt;br /&gt;
video:x:44:steam&lt;br /&gt;
render:x:109:steam&lt;br /&gt;
steam:x:1005:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
-- option 2 - force software rendering&lt;br /&gt;
&lt;br /&gt;
Best for headless&lt;br /&gt;
 LIBGL_ALWAYS_SOFTWARE=1 xvfb-run winecfg&lt;br /&gt;
&lt;br /&gt;
=== explorer process failed to start ===&lt;br /&gt;
&lt;br /&gt;
Error in wine logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow L&amp;quot;The explorer process failed to start.&amp;quot;&lt;br /&gt;
00f0:err:systray:initialize_systray Could not create tray window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these, although running with xvfb-run got rid of these, but had other issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Could not get DRI3 device ===&lt;br /&gt;
&lt;br /&gt;
When running with xvfb-run...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xvfb-run wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: DRI3 error: Could not get DRI3 device&lt;br /&gt;
libEGL warning: Ensure your X server supports DRI3 to get accelerated rendering&lt;br /&gt;
&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these... but....&lt;br /&gt;
&lt;br /&gt;
Running with &amp;quot;-a&amp;quot; option did seem to fix most of these, just left a single &amp;quot;explicit kill&amp;quot; message only...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xvfb-run -a wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/wine&amp;diff=10405</id>
		<title>Linux/wine</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/wine&amp;diff=10405"/>
		<updated>2026-09-25T06:17:15Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* /dev/dri permission issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wine ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
Test new wine prefix:&lt;br /&gt;
 WINEPREFIX=~/my_new_prefix wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Test wine with executable:&lt;br /&gt;
 xvfb-run -a wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Reconfig your wine prfix:&lt;br /&gt;
 rm -rf .wine&lt;br /&gt;
 winecfg&lt;br /&gt;
 # or if headless...&lt;br /&gt;
 xvfg-run wincfg&lt;br /&gt;
&lt;br /&gt;
== Debug Wine ==&lt;br /&gt;
&lt;br /&gt;
If you are still stuck, you can generate a cleaner log file to parse by running your app with standard Wine debugging output:&lt;br /&gt;
 WINEDEBUG=-all,err+all wine your_application.exe&lt;br /&gt;
&lt;br /&gt;
== Clean Prefix ==&lt;br /&gt;
&lt;br /&gt;
 # Remove the broken configuration directory&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
&lt;br /&gt;
 # Initialize a clean, default 64-bit prefix&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
-- Explicit Clean 64 --&lt;br /&gt;
&lt;br /&gt;
 # Create a fresh 64-bit testing environment&lt;br /&gt;
 WINEPREFIX=~/.wine_test WINEARCH=win64 wineboot --init&lt;br /&gt;
&lt;br /&gt;
 # Run the test program in that environment&lt;br /&gt;
 WINEPREFIX=~/.wine_test wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Wine cmd.exe Test ==&lt;br /&gt;
&lt;br /&gt;
 wine cmd.exe&lt;br /&gt;
&lt;br /&gt;
== Wine Console Test ==&lt;br /&gt;
&lt;br /&gt;
winetest.cpp ::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;       Wine Windows Console Test        \n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 1. Test Windows API Version Detection&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[1] Checking Windows API Memory Status...\n&amp;quot;;&lt;br /&gt;
    MEMORYSTATUSEX memInfo;&lt;br /&gt;
    memInfo.dwLength = sizeof(MEMORYSTATUSEX);&lt;br /&gt;
    if (GlobalMemoryStatusEx(&amp;amp;memInfo)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Success! Total Physical Memory: &amp;quot; &lt;br /&gt;
                  &amp;lt;&amp;lt; memInfo.ullTotalPhys / (1024 * 1024) &amp;lt;&amp;lt; &amp;quot; MB\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to retrieve memory status.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2. Test Environment Variables&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[2] Checking Environment Variables...\n&amp;quot;;&lt;br /&gt;
    char username[256];&lt;br /&gt;
    DWORD username_len = sizeof(username);&lt;br /&gt;
    if (GetUserNameA(username, &amp;amp;username_len)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Current User: &amp;quot; &amp;lt;&amp;lt; username &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to get username.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3. Test File System Write/Read under Wine&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[3] Testing File System I/O...\n&amp;quot;;&lt;br /&gt;
    std::string testFilename = &amp;quot;wine_test_file.txt&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    std::ofstream outFile(testFilename);&lt;br /&gt;
    if (outFile.is_open()) {&lt;br /&gt;
        outFile &amp;lt;&amp;lt; &amp;quot;Wine compatibility test successful!&amp;quot;;&lt;br /&gt;
        outFile.close();&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully wrote to &amp;quot; &amp;lt;&amp;lt; testFilename &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        std::ifstream inFile(testFilename);&lt;br /&gt;
        std::string fileContent;&lt;br /&gt;
        if (std::getline(inFile, fileContent)) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully read: \&amp;quot;&amp;quot; &amp;lt;&amp;lt; fileContent &amp;lt;&amp;lt; &amp;quot;\&amp;quot;\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        inFile.close();&lt;br /&gt;
        &lt;br /&gt;
        // Clean up&lt;br /&gt;
        DeleteFileA(testFilename.c_str());&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed file I/O test.\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 4. Test Registry Read (Optional but good for Wine)&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[4] Testing Registry Access (HKLM)...\n&amp;quot;;&lt;br /&gt;
    HKEY hKey;&lt;br /&gt;
    if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, &amp;quot;SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion&amp;quot;, 0, KEY_READ, &amp;amp;hKey) == ERROR_SUCCESS) {&lt;br /&gt;
        char prodName[256];&lt;br /&gt;
        DWORD bufferSize = sizeof(prodName);&lt;br /&gt;
        if (RegQueryValueExA(hKey, &amp;quot;ProductName&amp;quot;, NULL, NULL, (LPBYTE)prodName, &amp;amp;bufferSize) == ERROR_SUCCESS) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Reported OS: &amp;quot; &amp;lt;&amp;lt; prodName &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Opened key, but failed to read ProductName.\n\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        RegCloseKey(hKey);&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to open registry key.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;Tests completed. Press ENTER to exit.&amp;quot;;&lt;br /&gt;
    std::cin.get();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Linux cross compile with:&lt;br /&gt;
 x86_64-w64-mingw32-g++ -o winetest.exe winetest.cpp -static&lt;br /&gt;
&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-posix  # version 13.2.0-6ubuntu1+26.1, or&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-win32  # version 13.2.0-6ubuntu1+26.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Windows compile with:&lt;br /&gt;
 cl /EHsc winetest.cpp&lt;br /&gt;
&lt;br /&gt;
Rune in wine:&lt;br /&gt;
 wine winetest.exe&lt;br /&gt;
 xvfb-run -a wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== /dev/dri permission issue ===&lt;br /&gt;
&lt;br /&gt;
Errors in wine log:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably benign, but if you want, you can add the user to the &amp;quot;video&amp;quot; and &amp;quot;render&amp;quot; group, and that should fix both of these. (it did for me)&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG video,render steam&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep steam /etc/group&lt;br /&gt;
video:x:44:steam&lt;br /&gt;
render:x:109:steam&lt;br /&gt;
steam:x:1005:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== explorer process failed to start ===&lt;br /&gt;
&lt;br /&gt;
Error in wine logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow L&amp;quot;The explorer process failed to start.&amp;quot;&lt;br /&gt;
00f0:err:systray:initialize_systray Could not create tray window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these, although running with xvfb-run got rid of these, but had other issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Could not get DRI3 device ===&lt;br /&gt;
&lt;br /&gt;
When running with xvfb-run...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xvfb-run wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: DRI3 error: Could not get DRI3 device&lt;br /&gt;
libEGL warning: Ensure your X server supports DRI3 to get accelerated rendering&lt;br /&gt;
&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these... but....&lt;br /&gt;
&lt;br /&gt;
Running with &amp;quot;-a&amp;quot; option did seem to fix most of these, just left a single &amp;quot;explicit kill&amp;quot; message only...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xvfb-run -a wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/wine&amp;diff=10404</id>
		<title>Linux/wine</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/wine&amp;diff=10404"/>
		<updated>2026-09-25T06:16:45Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Clean Prefix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wine ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
Test new wine prefix:&lt;br /&gt;
 WINEPREFIX=~/my_new_prefix wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Test wine with executable:&lt;br /&gt;
 xvfb-run -a wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Reconfig your wine prfix:&lt;br /&gt;
 rm -rf .wine&lt;br /&gt;
 winecfg&lt;br /&gt;
 # or if headless...&lt;br /&gt;
 xvfg-run wincfg&lt;br /&gt;
&lt;br /&gt;
== Debug Wine ==&lt;br /&gt;
&lt;br /&gt;
If you are still stuck, you can generate a cleaner log file to parse by running your app with standard Wine debugging output:&lt;br /&gt;
 WINEDEBUG=-all,err+all wine your_application.exe&lt;br /&gt;
&lt;br /&gt;
== Clean Prefix ==&lt;br /&gt;
&lt;br /&gt;
 # Remove the broken configuration directory&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
&lt;br /&gt;
 # Initialize a clean, default 64-bit prefix&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
-- Explicit Clean 64 --&lt;br /&gt;
&lt;br /&gt;
 # Create a fresh 64-bit testing environment&lt;br /&gt;
 WINEPREFIX=~/.wine_test WINEARCH=win64 wineboot --init&lt;br /&gt;
&lt;br /&gt;
 # Run the test program in that environment&lt;br /&gt;
 WINEPREFIX=~/.wine_test wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Wine cmd.exe Test ==&lt;br /&gt;
&lt;br /&gt;
 wine cmd.exe&lt;br /&gt;
&lt;br /&gt;
== Wine Console Test ==&lt;br /&gt;
&lt;br /&gt;
winetest.cpp ::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;       Wine Windows Console Test        \n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 1. Test Windows API Version Detection&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[1] Checking Windows API Memory Status...\n&amp;quot;;&lt;br /&gt;
    MEMORYSTATUSEX memInfo;&lt;br /&gt;
    memInfo.dwLength = sizeof(MEMORYSTATUSEX);&lt;br /&gt;
    if (GlobalMemoryStatusEx(&amp;amp;memInfo)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Success! Total Physical Memory: &amp;quot; &lt;br /&gt;
                  &amp;lt;&amp;lt; memInfo.ullTotalPhys / (1024 * 1024) &amp;lt;&amp;lt; &amp;quot; MB\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to retrieve memory status.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2. Test Environment Variables&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[2] Checking Environment Variables...\n&amp;quot;;&lt;br /&gt;
    char username[256];&lt;br /&gt;
    DWORD username_len = sizeof(username);&lt;br /&gt;
    if (GetUserNameA(username, &amp;amp;username_len)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Current User: &amp;quot; &amp;lt;&amp;lt; username &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to get username.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3. Test File System Write/Read under Wine&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[3] Testing File System I/O...\n&amp;quot;;&lt;br /&gt;
    std::string testFilename = &amp;quot;wine_test_file.txt&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    std::ofstream outFile(testFilename);&lt;br /&gt;
    if (outFile.is_open()) {&lt;br /&gt;
        outFile &amp;lt;&amp;lt; &amp;quot;Wine compatibility test successful!&amp;quot;;&lt;br /&gt;
        outFile.close();&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully wrote to &amp;quot; &amp;lt;&amp;lt; testFilename &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        std::ifstream inFile(testFilename);&lt;br /&gt;
        std::string fileContent;&lt;br /&gt;
        if (std::getline(inFile, fileContent)) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully read: \&amp;quot;&amp;quot; &amp;lt;&amp;lt; fileContent &amp;lt;&amp;lt; &amp;quot;\&amp;quot;\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        inFile.close();&lt;br /&gt;
        &lt;br /&gt;
        // Clean up&lt;br /&gt;
        DeleteFileA(testFilename.c_str());&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed file I/O test.\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 4. Test Registry Read (Optional but good for Wine)&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[4] Testing Registry Access (HKLM)...\n&amp;quot;;&lt;br /&gt;
    HKEY hKey;&lt;br /&gt;
    if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, &amp;quot;SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion&amp;quot;, 0, KEY_READ, &amp;amp;hKey) == ERROR_SUCCESS) {&lt;br /&gt;
        char prodName[256];&lt;br /&gt;
        DWORD bufferSize = sizeof(prodName);&lt;br /&gt;
        if (RegQueryValueExA(hKey, &amp;quot;ProductName&amp;quot;, NULL, NULL, (LPBYTE)prodName, &amp;amp;bufferSize) == ERROR_SUCCESS) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Reported OS: &amp;quot; &amp;lt;&amp;lt; prodName &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Opened key, but failed to read ProductName.\n\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        RegCloseKey(hKey);&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to open registry key.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;Tests completed. Press ENTER to exit.&amp;quot;;&lt;br /&gt;
    std::cin.get();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Linux cross compile with:&lt;br /&gt;
 x86_64-w64-mingw32-g++ -o winetest.exe winetest.cpp -static&lt;br /&gt;
&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-posix  # version 13.2.0-6ubuntu1+26.1, or&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-win32  # version 13.2.0-6ubuntu1+26.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Windows compile with:&lt;br /&gt;
 cl /EHsc winetest.cpp&lt;br /&gt;
&lt;br /&gt;
Rune in wine:&lt;br /&gt;
 wine winetest.exe&lt;br /&gt;
 xvfb-run -a wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== /dev/dri permission issue ===&lt;br /&gt;
&lt;br /&gt;
Errors in wine log:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably benign, but if you want, you can add the user to the &amp;quot;video&amp;quot; and &amp;quot;render&amp;quot; group, and that should fix both of these. (it did for me)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep steam /etc/group&lt;br /&gt;
video:x:44:steam&lt;br /&gt;
render:x:109:steam&lt;br /&gt;
steam:x:1005:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== explorer process failed to start ===&lt;br /&gt;
&lt;br /&gt;
Error in wine logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow L&amp;quot;The explorer process failed to start.&amp;quot;&lt;br /&gt;
00f0:err:systray:initialize_systray Could not create tray window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these, although running with xvfb-run got rid of these, but had other issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Could not get DRI3 device ===&lt;br /&gt;
&lt;br /&gt;
When running with xvfb-run...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xvfb-run wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: DRI3 error: Could not get DRI3 device&lt;br /&gt;
libEGL warning: Ensure your X server supports DRI3 to get accelerated rendering&lt;br /&gt;
&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these... but....&lt;br /&gt;
&lt;br /&gt;
Running with &amp;quot;-a&amp;quot; option did seem to fix most of these, just left a single &amp;quot;explicit kill&amp;quot; message only...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xvfb-run -a wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/wine&amp;diff=10403</id>
		<title>Linux/wine</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/wine&amp;diff=10403"/>
		<updated>2026-09-25T06:16:11Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Clean Prefix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wine ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
Test new wine prefix:&lt;br /&gt;
 WINEPREFIX=~/my_new_prefix wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Test wine with executable:&lt;br /&gt;
 xvfb-run -a wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Reconfig your wine prfix:&lt;br /&gt;
 rm -rf .wine&lt;br /&gt;
 winecfg&lt;br /&gt;
 # or if headless...&lt;br /&gt;
 xvfg-run wincfg&lt;br /&gt;
&lt;br /&gt;
== Debug Wine ==&lt;br /&gt;
&lt;br /&gt;
If you are still stuck, you can generate a cleaner log file to parse by running your app with standard Wine debugging output:&lt;br /&gt;
 WINEDEBUG=-all,err+all wine your_application.exe&lt;br /&gt;
&lt;br /&gt;
== Clean Prefix ==&lt;br /&gt;
&lt;br /&gt;
 # Remove the broken configuration directory&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
&lt;br /&gt;
 # Initialize a clean, default 64-bit prefix&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
-- Explicit Clean 64 --&lt;br /&gt;
&lt;br /&gt;
 # Create a fresh 64-bit testing environment&lt;br /&gt;
 WINEPREFIX=~/.wine_test WINEARCH=win64 wineboot --init&lt;br /&gt;
&lt;br /&gt;
 # Run the test program in that environment&lt;br /&gt;
 WINEPREFIX=~/.wine_test wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Wine Console Test ==&lt;br /&gt;
&lt;br /&gt;
winetest.cpp ::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;       Wine Windows Console Test        \n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 1. Test Windows API Version Detection&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[1] Checking Windows API Memory Status...\n&amp;quot;;&lt;br /&gt;
    MEMORYSTATUSEX memInfo;&lt;br /&gt;
    memInfo.dwLength = sizeof(MEMORYSTATUSEX);&lt;br /&gt;
    if (GlobalMemoryStatusEx(&amp;amp;memInfo)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Success! Total Physical Memory: &amp;quot; &lt;br /&gt;
                  &amp;lt;&amp;lt; memInfo.ullTotalPhys / (1024 * 1024) &amp;lt;&amp;lt; &amp;quot; MB\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to retrieve memory status.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2. Test Environment Variables&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[2] Checking Environment Variables...\n&amp;quot;;&lt;br /&gt;
    char username[256];&lt;br /&gt;
    DWORD username_len = sizeof(username);&lt;br /&gt;
    if (GetUserNameA(username, &amp;amp;username_len)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Current User: &amp;quot; &amp;lt;&amp;lt; username &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to get username.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3. Test File System Write/Read under Wine&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[3] Testing File System I/O...\n&amp;quot;;&lt;br /&gt;
    std::string testFilename = &amp;quot;wine_test_file.txt&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    std::ofstream outFile(testFilename);&lt;br /&gt;
    if (outFile.is_open()) {&lt;br /&gt;
        outFile &amp;lt;&amp;lt; &amp;quot;Wine compatibility test successful!&amp;quot;;&lt;br /&gt;
        outFile.close();&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully wrote to &amp;quot; &amp;lt;&amp;lt; testFilename &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        std::ifstream inFile(testFilename);&lt;br /&gt;
        std::string fileContent;&lt;br /&gt;
        if (std::getline(inFile, fileContent)) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully read: \&amp;quot;&amp;quot; &amp;lt;&amp;lt; fileContent &amp;lt;&amp;lt; &amp;quot;\&amp;quot;\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        inFile.close();&lt;br /&gt;
        &lt;br /&gt;
        // Clean up&lt;br /&gt;
        DeleteFileA(testFilename.c_str());&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed file I/O test.\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 4. Test Registry Read (Optional but good for Wine)&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[4] Testing Registry Access (HKLM)...\n&amp;quot;;&lt;br /&gt;
    HKEY hKey;&lt;br /&gt;
    if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, &amp;quot;SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion&amp;quot;, 0, KEY_READ, &amp;amp;hKey) == ERROR_SUCCESS) {&lt;br /&gt;
        char prodName[256];&lt;br /&gt;
        DWORD bufferSize = sizeof(prodName);&lt;br /&gt;
        if (RegQueryValueExA(hKey, &amp;quot;ProductName&amp;quot;, NULL, NULL, (LPBYTE)prodName, &amp;amp;bufferSize) == ERROR_SUCCESS) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Reported OS: &amp;quot; &amp;lt;&amp;lt; prodName &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Opened key, but failed to read ProductName.\n\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        RegCloseKey(hKey);&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to open registry key.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;Tests completed. Press ENTER to exit.&amp;quot;;&lt;br /&gt;
    std::cin.get();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Linux cross compile with:&lt;br /&gt;
 x86_64-w64-mingw32-g++ -o winetest.exe winetest.cpp -static&lt;br /&gt;
&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-posix  # version 13.2.0-6ubuntu1+26.1, or&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-win32  # version 13.2.0-6ubuntu1+26.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Windows compile with:&lt;br /&gt;
 cl /EHsc winetest.cpp&lt;br /&gt;
&lt;br /&gt;
Rune in wine:&lt;br /&gt;
 wine winetest.exe&lt;br /&gt;
 xvfb-run -a wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== /dev/dri permission issue ===&lt;br /&gt;
&lt;br /&gt;
Errors in wine log:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably benign, but if you want, you can add the user to the &amp;quot;video&amp;quot; and &amp;quot;render&amp;quot; group, and that should fix both of these. (it did for me)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep steam /etc/group&lt;br /&gt;
video:x:44:steam&lt;br /&gt;
render:x:109:steam&lt;br /&gt;
steam:x:1005:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== explorer process failed to start ===&lt;br /&gt;
&lt;br /&gt;
Error in wine logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow L&amp;quot;The explorer process failed to start.&amp;quot;&lt;br /&gt;
00f0:err:systray:initialize_systray Could not create tray window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these, although running with xvfb-run got rid of these, but had other issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Could not get DRI3 device ===&lt;br /&gt;
&lt;br /&gt;
When running with xvfb-run...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xvfb-run wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: DRI3 error: Could not get DRI3 device&lt;br /&gt;
libEGL warning: Ensure your X server supports DRI3 to get accelerated rendering&lt;br /&gt;
&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these... but....&lt;br /&gt;
&lt;br /&gt;
Running with &amp;quot;-a&amp;quot; option did seem to fix most of these, just left a single &amp;quot;explicit kill&amp;quot; message only...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xvfb-run -a wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10402</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10402"/>
		<updated>2026-09-25T06:04:49Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```&lt;br /&gt;
sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s&lt;br /&gt;
```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```&lt;br /&gt;
sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
# Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
  # wineboot -u&lt;br /&gt;
  # rm -rf ~/.wine) and run winecfg&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```&lt;br /&gt;
sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```&lt;br /&gt;
mkdir /home/abiotic/abioticserver&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```&lt;br /&gt;
/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```&lt;br /&gt;
touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```&lt;br /&gt;
sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```&lt;br /&gt;
chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```&lt;br /&gt;
/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```&lt;br /&gt;
sudo nano /etc/systemd/system/abiotic.service&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```&lt;br /&gt;
sudo systemctl enable abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```&lt;br /&gt;
sudo systemctl start abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10401</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10401"/>
		<updated>2026-09-25T06:03:21Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```&lt;br /&gt;
sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s&lt;br /&gt;
```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```&lt;br /&gt;
sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
# Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
rm -rf ~/.wine) and run winecfg&lt;br /&gt;
&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```&lt;br /&gt;
sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```&lt;br /&gt;
mkdir /home/abiotic/abioticserver&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```&lt;br /&gt;
/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```&lt;br /&gt;
touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```&lt;br /&gt;
sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```&lt;br /&gt;
chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```&lt;br /&gt;
/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```&lt;br /&gt;
sudo nano /etc/systemd/system/abiotic.service&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```&lt;br /&gt;
sudo systemctl enable abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```&lt;br /&gt;
sudo systemctl start abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/wine&amp;diff=10400</id>
		<title>Linux/wine</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/wine&amp;diff=10400"/>
		<updated>2026-09-25T05:51:48Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Could not get DRI3 device */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wine ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
Test new wine prefix:&lt;br /&gt;
 WINEPREFIX=~/my_new_prefix wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Test wine with executable:&lt;br /&gt;
 xvfb-run -a wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Reconfig your wine prfix:&lt;br /&gt;
 rm -rf .wine&lt;br /&gt;
 winecfg&lt;br /&gt;
 # or if headless...&lt;br /&gt;
 xvfg-run wincfg&lt;br /&gt;
&lt;br /&gt;
== Debug Wine ==&lt;br /&gt;
&lt;br /&gt;
If you are still stuck, you can generate a cleaner log file to parse by running your app with standard Wine debugging output:&lt;br /&gt;
 WINEDEBUG=-all,err+all wine your_application.exe&lt;br /&gt;
&lt;br /&gt;
== Clean Prefix ==&lt;br /&gt;
&lt;br /&gt;
 # Remove the broken configuration directory&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
&lt;br /&gt;
 # Initialize a clean, default 64-bit prefix&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
== Wine Console Test ==&lt;br /&gt;
&lt;br /&gt;
winetest.cpp ::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;       Wine Windows Console Test        \n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 1. Test Windows API Version Detection&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[1] Checking Windows API Memory Status...\n&amp;quot;;&lt;br /&gt;
    MEMORYSTATUSEX memInfo;&lt;br /&gt;
    memInfo.dwLength = sizeof(MEMORYSTATUSEX);&lt;br /&gt;
    if (GlobalMemoryStatusEx(&amp;amp;memInfo)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Success! Total Physical Memory: &amp;quot; &lt;br /&gt;
                  &amp;lt;&amp;lt; memInfo.ullTotalPhys / (1024 * 1024) &amp;lt;&amp;lt; &amp;quot; MB\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to retrieve memory status.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2. Test Environment Variables&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[2] Checking Environment Variables...\n&amp;quot;;&lt;br /&gt;
    char username[256];&lt;br /&gt;
    DWORD username_len = sizeof(username);&lt;br /&gt;
    if (GetUserNameA(username, &amp;amp;username_len)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Current User: &amp;quot; &amp;lt;&amp;lt; username &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to get username.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3. Test File System Write/Read under Wine&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[3] Testing File System I/O...\n&amp;quot;;&lt;br /&gt;
    std::string testFilename = &amp;quot;wine_test_file.txt&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    std::ofstream outFile(testFilename);&lt;br /&gt;
    if (outFile.is_open()) {&lt;br /&gt;
        outFile &amp;lt;&amp;lt; &amp;quot;Wine compatibility test successful!&amp;quot;;&lt;br /&gt;
        outFile.close();&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully wrote to &amp;quot; &amp;lt;&amp;lt; testFilename &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        std::ifstream inFile(testFilename);&lt;br /&gt;
        std::string fileContent;&lt;br /&gt;
        if (std::getline(inFile, fileContent)) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully read: \&amp;quot;&amp;quot; &amp;lt;&amp;lt; fileContent &amp;lt;&amp;lt; &amp;quot;\&amp;quot;\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        inFile.close();&lt;br /&gt;
        &lt;br /&gt;
        // Clean up&lt;br /&gt;
        DeleteFileA(testFilename.c_str());&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed file I/O test.\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 4. Test Registry Read (Optional but good for Wine)&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[4] Testing Registry Access (HKLM)...\n&amp;quot;;&lt;br /&gt;
    HKEY hKey;&lt;br /&gt;
    if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, &amp;quot;SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion&amp;quot;, 0, KEY_READ, &amp;amp;hKey) == ERROR_SUCCESS) {&lt;br /&gt;
        char prodName[256];&lt;br /&gt;
        DWORD bufferSize = sizeof(prodName);&lt;br /&gt;
        if (RegQueryValueExA(hKey, &amp;quot;ProductName&amp;quot;, NULL, NULL, (LPBYTE)prodName, &amp;amp;bufferSize) == ERROR_SUCCESS) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Reported OS: &amp;quot; &amp;lt;&amp;lt; prodName &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Opened key, but failed to read ProductName.\n\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        RegCloseKey(hKey);&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to open registry key.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;Tests completed. Press ENTER to exit.&amp;quot;;&lt;br /&gt;
    std::cin.get();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Linux cross compile with:&lt;br /&gt;
 x86_64-w64-mingw32-g++ -o winetest.exe winetest.cpp -static&lt;br /&gt;
&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-posix  # version 13.2.0-6ubuntu1+26.1, or&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-win32  # version 13.2.0-6ubuntu1+26.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Windows compile with:&lt;br /&gt;
 cl /EHsc winetest.cpp&lt;br /&gt;
&lt;br /&gt;
Rune in wine:&lt;br /&gt;
 wine winetest.exe&lt;br /&gt;
 xvfb-run -a wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== /dev/dri permission issue ===&lt;br /&gt;
&lt;br /&gt;
Errors in wine log:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably benign, but if you want, you can add the user to the &amp;quot;video&amp;quot; and &amp;quot;render&amp;quot; group, and that should fix both of these. (it did for me)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep steam /etc/group&lt;br /&gt;
video:x:44:steam&lt;br /&gt;
render:x:109:steam&lt;br /&gt;
steam:x:1005:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== explorer process failed to start ===&lt;br /&gt;
&lt;br /&gt;
Error in wine logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow L&amp;quot;The explorer process failed to start.&amp;quot;&lt;br /&gt;
00f0:err:systray:initialize_systray Could not create tray window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these, although running with xvfb-run got rid of these, but had other issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Could not get DRI3 device ===&lt;br /&gt;
&lt;br /&gt;
When running with xvfb-run...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xvfb-run wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: DRI3 error: Could not get DRI3 device&lt;br /&gt;
libEGL warning: Ensure your X server supports DRI3 to get accelerated rendering&lt;br /&gt;
&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these... but....&lt;br /&gt;
&lt;br /&gt;
Running with &amp;quot;-a&amp;quot; option did seem to fix most of these, just left a single &amp;quot;explicit kill&amp;quot; message only...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xvfb-run -a wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/wine&amp;diff=10399</id>
		<title>Linux/wine</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/wine&amp;diff=10399"/>
		<updated>2026-09-25T05:50:08Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* /dev/dri permission issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wine ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
Test new wine prefix:&lt;br /&gt;
 WINEPREFIX=~/my_new_prefix wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Test wine with executable:&lt;br /&gt;
 xvfb-run -a wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Reconfig your wine prfix:&lt;br /&gt;
 rm -rf .wine&lt;br /&gt;
 winecfg&lt;br /&gt;
 # or if headless...&lt;br /&gt;
 xvfg-run wincfg&lt;br /&gt;
&lt;br /&gt;
== Debug Wine ==&lt;br /&gt;
&lt;br /&gt;
If you are still stuck, you can generate a cleaner log file to parse by running your app with standard Wine debugging output:&lt;br /&gt;
 WINEDEBUG=-all,err+all wine your_application.exe&lt;br /&gt;
&lt;br /&gt;
== Clean Prefix ==&lt;br /&gt;
&lt;br /&gt;
 # Remove the broken configuration directory&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
&lt;br /&gt;
 # Initialize a clean, default 64-bit prefix&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
== Wine Console Test ==&lt;br /&gt;
&lt;br /&gt;
winetest.cpp ::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;       Wine Windows Console Test        \n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 1. Test Windows API Version Detection&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[1] Checking Windows API Memory Status...\n&amp;quot;;&lt;br /&gt;
    MEMORYSTATUSEX memInfo;&lt;br /&gt;
    memInfo.dwLength = sizeof(MEMORYSTATUSEX);&lt;br /&gt;
    if (GlobalMemoryStatusEx(&amp;amp;memInfo)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Success! Total Physical Memory: &amp;quot; &lt;br /&gt;
                  &amp;lt;&amp;lt; memInfo.ullTotalPhys / (1024 * 1024) &amp;lt;&amp;lt; &amp;quot; MB\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to retrieve memory status.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2. Test Environment Variables&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[2] Checking Environment Variables...\n&amp;quot;;&lt;br /&gt;
    char username[256];&lt;br /&gt;
    DWORD username_len = sizeof(username);&lt;br /&gt;
    if (GetUserNameA(username, &amp;amp;username_len)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Current User: &amp;quot; &amp;lt;&amp;lt; username &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to get username.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3. Test File System Write/Read under Wine&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[3] Testing File System I/O...\n&amp;quot;;&lt;br /&gt;
    std::string testFilename = &amp;quot;wine_test_file.txt&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    std::ofstream outFile(testFilename);&lt;br /&gt;
    if (outFile.is_open()) {&lt;br /&gt;
        outFile &amp;lt;&amp;lt; &amp;quot;Wine compatibility test successful!&amp;quot;;&lt;br /&gt;
        outFile.close();&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully wrote to &amp;quot; &amp;lt;&amp;lt; testFilename &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        std::ifstream inFile(testFilename);&lt;br /&gt;
        std::string fileContent;&lt;br /&gt;
        if (std::getline(inFile, fileContent)) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully read: \&amp;quot;&amp;quot; &amp;lt;&amp;lt; fileContent &amp;lt;&amp;lt; &amp;quot;\&amp;quot;\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        inFile.close();&lt;br /&gt;
        &lt;br /&gt;
        // Clean up&lt;br /&gt;
        DeleteFileA(testFilename.c_str());&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed file I/O test.\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 4. Test Registry Read (Optional but good for Wine)&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[4] Testing Registry Access (HKLM)...\n&amp;quot;;&lt;br /&gt;
    HKEY hKey;&lt;br /&gt;
    if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, &amp;quot;SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion&amp;quot;, 0, KEY_READ, &amp;amp;hKey) == ERROR_SUCCESS) {&lt;br /&gt;
        char prodName[256];&lt;br /&gt;
        DWORD bufferSize = sizeof(prodName);&lt;br /&gt;
        if (RegQueryValueExA(hKey, &amp;quot;ProductName&amp;quot;, NULL, NULL, (LPBYTE)prodName, &amp;amp;bufferSize) == ERROR_SUCCESS) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Reported OS: &amp;quot; &amp;lt;&amp;lt; prodName &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Opened key, but failed to read ProductName.\n\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        RegCloseKey(hKey);&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to open registry key.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;Tests completed. Press ENTER to exit.&amp;quot;;&lt;br /&gt;
    std::cin.get();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Linux cross compile with:&lt;br /&gt;
 x86_64-w64-mingw32-g++ -o winetest.exe winetest.cpp -static&lt;br /&gt;
&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-posix  # version 13.2.0-6ubuntu1+26.1, or&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-win32  # version 13.2.0-6ubuntu1+26.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Windows compile with:&lt;br /&gt;
 cl /EHsc winetest.cpp&lt;br /&gt;
&lt;br /&gt;
Rune in wine:&lt;br /&gt;
 wine winetest.exe&lt;br /&gt;
 xvfb-run -a wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== /dev/dri permission issue ===&lt;br /&gt;
&lt;br /&gt;
Errors in wine log:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably benign, but if you want, you can add the user to the &amp;quot;video&amp;quot; and &amp;quot;render&amp;quot; group, and that should fix both of these. (it did for me)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep steam /etc/group&lt;br /&gt;
video:x:44:steam&lt;br /&gt;
render:x:109:steam&lt;br /&gt;
steam:x:1005:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== explorer process failed to start ===&lt;br /&gt;
&lt;br /&gt;
Error in wine logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow L&amp;quot;The explorer process failed to start.&amp;quot;&lt;br /&gt;
00f0:err:systray:initialize_systray Could not create tray window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these, although running with xvfb-run got rid of these, but had other issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Could not get DRI3 device ===&lt;br /&gt;
&lt;br /&gt;
When running with xvfb-run...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xvfb-run wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: DRI3 error: Could not get DRI3 device&lt;br /&gt;
libEGL warning: Ensure your X server supports DRI3 to get accelerated rendering&lt;br /&gt;
&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these...&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/wine&amp;diff=10398</id>
		<title>Linux/wine</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/wine&amp;diff=10398"/>
		<updated>2026-09-25T05:49:56Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* explorer process failed to start */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wine ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
Test new wine prefix:&lt;br /&gt;
 WINEPREFIX=~/my_new_prefix wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Test wine with executable:&lt;br /&gt;
 xvfb-run -a wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Reconfig your wine prfix:&lt;br /&gt;
 rm -rf .wine&lt;br /&gt;
 winecfg&lt;br /&gt;
 # or if headless...&lt;br /&gt;
 xvfg-run wincfg&lt;br /&gt;
&lt;br /&gt;
== Debug Wine ==&lt;br /&gt;
&lt;br /&gt;
If you are still stuck, you can generate a cleaner log file to parse by running your app with standard Wine debugging output:&lt;br /&gt;
 WINEDEBUG=-all,err+all wine your_application.exe&lt;br /&gt;
&lt;br /&gt;
== Clean Prefix ==&lt;br /&gt;
&lt;br /&gt;
 # Remove the broken configuration directory&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
&lt;br /&gt;
 # Initialize a clean, default 64-bit prefix&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
== Wine Console Test ==&lt;br /&gt;
&lt;br /&gt;
winetest.cpp ::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;       Wine Windows Console Test        \n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 1. Test Windows API Version Detection&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[1] Checking Windows API Memory Status...\n&amp;quot;;&lt;br /&gt;
    MEMORYSTATUSEX memInfo;&lt;br /&gt;
    memInfo.dwLength = sizeof(MEMORYSTATUSEX);&lt;br /&gt;
    if (GlobalMemoryStatusEx(&amp;amp;memInfo)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Success! Total Physical Memory: &amp;quot; &lt;br /&gt;
                  &amp;lt;&amp;lt; memInfo.ullTotalPhys / (1024 * 1024) &amp;lt;&amp;lt; &amp;quot; MB\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to retrieve memory status.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2. Test Environment Variables&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[2] Checking Environment Variables...\n&amp;quot;;&lt;br /&gt;
    char username[256];&lt;br /&gt;
    DWORD username_len = sizeof(username);&lt;br /&gt;
    if (GetUserNameA(username, &amp;amp;username_len)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Current User: &amp;quot; &amp;lt;&amp;lt; username &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to get username.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3. Test File System Write/Read under Wine&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[3] Testing File System I/O...\n&amp;quot;;&lt;br /&gt;
    std::string testFilename = &amp;quot;wine_test_file.txt&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    std::ofstream outFile(testFilename);&lt;br /&gt;
    if (outFile.is_open()) {&lt;br /&gt;
        outFile &amp;lt;&amp;lt; &amp;quot;Wine compatibility test successful!&amp;quot;;&lt;br /&gt;
        outFile.close();&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully wrote to &amp;quot; &amp;lt;&amp;lt; testFilename &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        std::ifstream inFile(testFilename);&lt;br /&gt;
        std::string fileContent;&lt;br /&gt;
        if (std::getline(inFile, fileContent)) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully read: \&amp;quot;&amp;quot; &amp;lt;&amp;lt; fileContent &amp;lt;&amp;lt; &amp;quot;\&amp;quot;\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        inFile.close();&lt;br /&gt;
        &lt;br /&gt;
        // Clean up&lt;br /&gt;
        DeleteFileA(testFilename.c_str());&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed file I/O test.\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 4. Test Registry Read (Optional but good for Wine)&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[4] Testing Registry Access (HKLM)...\n&amp;quot;;&lt;br /&gt;
    HKEY hKey;&lt;br /&gt;
    if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, &amp;quot;SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion&amp;quot;, 0, KEY_READ, &amp;amp;hKey) == ERROR_SUCCESS) {&lt;br /&gt;
        char prodName[256];&lt;br /&gt;
        DWORD bufferSize = sizeof(prodName);&lt;br /&gt;
        if (RegQueryValueExA(hKey, &amp;quot;ProductName&amp;quot;, NULL, NULL, (LPBYTE)prodName, &amp;amp;bufferSize) == ERROR_SUCCESS) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Reported OS: &amp;quot; &amp;lt;&amp;lt; prodName &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Opened key, but failed to read ProductName.\n\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        RegCloseKey(hKey);&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to open registry key.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;Tests completed. Press ENTER to exit.&amp;quot;;&lt;br /&gt;
    std::cin.get();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Linux cross compile with:&lt;br /&gt;
 x86_64-w64-mingw32-g++ -o winetest.exe winetest.cpp -static&lt;br /&gt;
&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-posix  # version 13.2.0-6ubuntu1+26.1, or&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-win32  # version 13.2.0-6ubuntu1+26.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Windows compile with:&lt;br /&gt;
 cl /EHsc winetest.cpp&lt;br /&gt;
&lt;br /&gt;
Rune in wine:&lt;br /&gt;
 wine winetest.exe&lt;br /&gt;
 xvfb-run -a wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== /dev/dri permission issue ===&lt;br /&gt;
&lt;br /&gt;
Errors in wine log:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably benign, but if you want, you can add the user to the &amp;quot;video&amp;quot; and &amp;quot;render&amp;quot; group, and that should fix both of these. (it did for me)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep steam /etc/group&lt;br /&gt;
video:x:44:steam&lt;br /&gt;
render:x:109:steam&lt;br /&gt;
steam:x:1005:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== explorer process failed to start ===&lt;br /&gt;
&lt;br /&gt;
Error in wine logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow L&amp;quot;The explorer process failed to start.&amp;quot;&lt;br /&gt;
00f0:err:systray:initialize_systray Could not create tray window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these, although running with xvfb-run got rid of these, but had other issues&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Could not get DRI3 device ===&lt;br /&gt;
&lt;br /&gt;
When running with xvfb-run...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ xvfb-run wine winetest.exe&lt;br /&gt;
...&lt;br /&gt;
libEGL warning: DRI3 error: Could not get DRI3 device&lt;br /&gt;
libEGL warning: Ensure your X server supports DRI3 to get accelerated rendering&lt;br /&gt;
&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
X connection to :99 broken (explicit kill or server shutdown).&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these...&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/wine&amp;diff=10397</id>
		<title>Linux/wine</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/wine&amp;diff=10397"/>
		<updated>2026-09-25T05:47:47Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* /dev/dri permission issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wine ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
Test new wine prefix:&lt;br /&gt;
 WINEPREFIX=~/my_new_prefix wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Test wine with executable:&lt;br /&gt;
 xvfb-run -a wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Reconfig your wine prfix:&lt;br /&gt;
 rm -rf .wine&lt;br /&gt;
 winecfg&lt;br /&gt;
 # or if headless...&lt;br /&gt;
 xvfg-run wincfg&lt;br /&gt;
&lt;br /&gt;
== Debug Wine ==&lt;br /&gt;
&lt;br /&gt;
If you are still stuck, you can generate a cleaner log file to parse by running your app with standard Wine debugging output:&lt;br /&gt;
 WINEDEBUG=-all,err+all wine your_application.exe&lt;br /&gt;
&lt;br /&gt;
== Clean Prefix ==&lt;br /&gt;
&lt;br /&gt;
 # Remove the broken configuration directory&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
&lt;br /&gt;
 # Initialize a clean, default 64-bit prefix&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
== Wine Console Test ==&lt;br /&gt;
&lt;br /&gt;
winetest.cpp ::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;       Wine Windows Console Test        \n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 1. Test Windows API Version Detection&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[1] Checking Windows API Memory Status...\n&amp;quot;;&lt;br /&gt;
    MEMORYSTATUSEX memInfo;&lt;br /&gt;
    memInfo.dwLength = sizeof(MEMORYSTATUSEX);&lt;br /&gt;
    if (GlobalMemoryStatusEx(&amp;amp;memInfo)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Success! Total Physical Memory: &amp;quot; &lt;br /&gt;
                  &amp;lt;&amp;lt; memInfo.ullTotalPhys / (1024 * 1024) &amp;lt;&amp;lt; &amp;quot; MB\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to retrieve memory status.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2. Test Environment Variables&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[2] Checking Environment Variables...\n&amp;quot;;&lt;br /&gt;
    char username[256];&lt;br /&gt;
    DWORD username_len = sizeof(username);&lt;br /&gt;
    if (GetUserNameA(username, &amp;amp;username_len)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Current User: &amp;quot; &amp;lt;&amp;lt; username &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to get username.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3. Test File System Write/Read under Wine&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[3] Testing File System I/O...\n&amp;quot;;&lt;br /&gt;
    std::string testFilename = &amp;quot;wine_test_file.txt&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    std::ofstream outFile(testFilename);&lt;br /&gt;
    if (outFile.is_open()) {&lt;br /&gt;
        outFile &amp;lt;&amp;lt; &amp;quot;Wine compatibility test successful!&amp;quot;;&lt;br /&gt;
        outFile.close();&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully wrote to &amp;quot; &amp;lt;&amp;lt; testFilename &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        std::ifstream inFile(testFilename);&lt;br /&gt;
        std::string fileContent;&lt;br /&gt;
        if (std::getline(inFile, fileContent)) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully read: \&amp;quot;&amp;quot; &amp;lt;&amp;lt; fileContent &amp;lt;&amp;lt; &amp;quot;\&amp;quot;\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        inFile.close();&lt;br /&gt;
        &lt;br /&gt;
        // Clean up&lt;br /&gt;
        DeleteFileA(testFilename.c_str());&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed file I/O test.\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 4. Test Registry Read (Optional but good for Wine)&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[4] Testing Registry Access (HKLM)...\n&amp;quot;;&lt;br /&gt;
    HKEY hKey;&lt;br /&gt;
    if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, &amp;quot;SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion&amp;quot;, 0, KEY_READ, &amp;amp;hKey) == ERROR_SUCCESS) {&lt;br /&gt;
        char prodName[256];&lt;br /&gt;
        DWORD bufferSize = sizeof(prodName);&lt;br /&gt;
        if (RegQueryValueExA(hKey, &amp;quot;ProductName&amp;quot;, NULL, NULL, (LPBYTE)prodName, &amp;amp;bufferSize) == ERROR_SUCCESS) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Reported OS: &amp;quot; &amp;lt;&amp;lt; prodName &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Opened key, but failed to read ProductName.\n\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        RegCloseKey(hKey);&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to open registry key.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;Tests completed. Press ENTER to exit.&amp;quot;;&lt;br /&gt;
    std::cin.get();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Linux cross compile with:&lt;br /&gt;
 x86_64-w64-mingw32-g++ -o winetest.exe winetest.cpp -static&lt;br /&gt;
&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-posix  # version 13.2.0-6ubuntu1+26.1, or&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-win32  # version 13.2.0-6ubuntu1+26.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Windows compile with:&lt;br /&gt;
 cl /EHsc winetest.cpp&lt;br /&gt;
&lt;br /&gt;
Rune in wine:&lt;br /&gt;
 wine winetest.exe&lt;br /&gt;
 xvfb-run -a wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== /dev/dri permission issue ===&lt;br /&gt;
&lt;br /&gt;
Errors in wine log:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably benign, but if you want, you can add the user to the &amp;quot;video&amp;quot; and &amp;quot;render&amp;quot; group, and that should fix both of these. (it did for me)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep steam /etc/group&lt;br /&gt;
video:x:44:steam&lt;br /&gt;
render:x:109:steam&lt;br /&gt;
steam:x:1005:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== explorer process failed to start ===&lt;br /&gt;
&lt;br /&gt;
Error in wine logs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow Application tried to create a window, but no driver could be loaded.&lt;br /&gt;
00f0:err:winediag:nodrv_CreateWindow L&amp;quot;The explorer process failed to start.&amp;quot;&lt;br /&gt;
00f0:err:systray:initialize_systray Could not create tray window&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I ignored these&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/wine&amp;diff=10396</id>
		<title>Linux/wine</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/wine&amp;diff=10396"/>
		<updated>2026-09-25T05:46:01Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wine ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
Test new wine prefix:&lt;br /&gt;
 WINEPREFIX=~/my_new_prefix wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Test wine with executable:&lt;br /&gt;
 xvfb-run -a wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Reconfig your wine prfix:&lt;br /&gt;
 rm -rf .wine&lt;br /&gt;
 winecfg&lt;br /&gt;
 # or if headless...&lt;br /&gt;
 xvfg-run wincfg&lt;br /&gt;
&lt;br /&gt;
== Debug Wine ==&lt;br /&gt;
&lt;br /&gt;
If you are still stuck, you can generate a cleaner log file to parse by running your app with standard Wine debugging output:&lt;br /&gt;
 WINEDEBUG=-all,err+all wine your_application.exe&lt;br /&gt;
&lt;br /&gt;
== Clean Prefix ==&lt;br /&gt;
&lt;br /&gt;
 # Remove the broken configuration directory&lt;br /&gt;
 rm -rf ~/.wine&lt;br /&gt;
&lt;br /&gt;
 # Initialize a clean, default 64-bit prefix&lt;br /&gt;
 wineboot --init&lt;br /&gt;
&lt;br /&gt;
== Wine Console Test ==&lt;br /&gt;
&lt;br /&gt;
winetest.cpp ::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;       Wine Windows Console Test        \n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 1. Test Windows API Version Detection&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[1] Checking Windows API Memory Status...\n&amp;quot;;&lt;br /&gt;
    MEMORYSTATUSEX memInfo;&lt;br /&gt;
    memInfo.dwLength = sizeof(MEMORYSTATUSEX);&lt;br /&gt;
    if (GlobalMemoryStatusEx(&amp;amp;memInfo)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Success! Total Physical Memory: &amp;quot; &lt;br /&gt;
                  &amp;lt;&amp;lt; memInfo.ullTotalPhys / (1024 * 1024) &amp;lt;&amp;lt; &amp;quot; MB\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to retrieve memory status.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2. Test Environment Variables&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[2] Checking Environment Variables...\n&amp;quot;;&lt;br /&gt;
    char username[256];&lt;br /&gt;
    DWORD username_len = sizeof(username);&lt;br /&gt;
    if (GetUserNameA(username, &amp;amp;username_len)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Current User: &amp;quot; &amp;lt;&amp;lt; username &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to get username.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3. Test File System Write/Read under Wine&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[3] Testing File System I/O...\n&amp;quot;;&lt;br /&gt;
    std::string testFilename = &amp;quot;wine_test_file.txt&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    std::ofstream outFile(testFilename);&lt;br /&gt;
    if (outFile.is_open()) {&lt;br /&gt;
        outFile &amp;lt;&amp;lt; &amp;quot;Wine compatibility test successful!&amp;quot;;&lt;br /&gt;
        outFile.close();&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully wrote to &amp;quot; &amp;lt;&amp;lt; testFilename &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        std::ifstream inFile(testFilename);&lt;br /&gt;
        std::string fileContent;&lt;br /&gt;
        if (std::getline(inFile, fileContent)) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully read: \&amp;quot;&amp;quot; &amp;lt;&amp;lt; fileContent &amp;lt;&amp;lt; &amp;quot;\&amp;quot;\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        inFile.close();&lt;br /&gt;
        &lt;br /&gt;
        // Clean up&lt;br /&gt;
        DeleteFileA(testFilename.c_str());&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed file I/O test.\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 4. Test Registry Read (Optional but good for Wine)&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[4] Testing Registry Access (HKLM)...\n&amp;quot;;&lt;br /&gt;
    HKEY hKey;&lt;br /&gt;
    if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, &amp;quot;SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion&amp;quot;, 0, KEY_READ, &amp;amp;hKey) == ERROR_SUCCESS) {&lt;br /&gt;
        char prodName[256];&lt;br /&gt;
        DWORD bufferSize = sizeof(prodName);&lt;br /&gt;
        if (RegQueryValueExA(hKey, &amp;quot;ProductName&amp;quot;, NULL, NULL, (LPBYTE)prodName, &amp;amp;bufferSize) == ERROR_SUCCESS) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Reported OS: &amp;quot; &amp;lt;&amp;lt; prodName &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Opened key, but failed to read ProductName.\n\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        RegCloseKey(hKey);&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to open registry key.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;Tests completed. Press ENTER to exit.&amp;quot;;&lt;br /&gt;
    std::cin.get();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Linux cross compile with:&lt;br /&gt;
 x86_64-w64-mingw32-g++ -o winetest.exe winetest.cpp -static&lt;br /&gt;
&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-posix  # version 13.2.0-6ubuntu1+26.1, or&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-win32  # version 13.2.0-6ubuntu1+26.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Windows compile with:&lt;br /&gt;
 cl /EHsc winetest.cpp&lt;br /&gt;
&lt;br /&gt;
Rune in wine:&lt;br /&gt;
 wine winetest.exe&lt;br /&gt;
 xvfb-run -a wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== /dev/dri permission issue ===&lt;br /&gt;
&lt;br /&gt;
Errors in wine log:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/renderD128: Permission denied&lt;br /&gt;
libEGL warning: failed to open /dev/dri/card1: Permission denied&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Probably benign, but if you want, you can add the user to the &amp;quot;video&amp;quot; and &amp;quot;render&amp;quot; group, and that should fix both of these.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep steam /etc/group&lt;br /&gt;
video:x:44:steam&lt;br /&gt;
render:x:109:steam&lt;br /&gt;
steam:x:1005:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/wine&amp;diff=10395</id>
		<title>Linux/wine</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/wine&amp;diff=10395"/>
		<updated>2026-09-25T05:41:40Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wine ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
Test new wine prefix:&lt;br /&gt;
 WINEPREFIX=~/my_new_prefix wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Test wine with executable:&lt;br /&gt;
 xvfb-run -a wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Reconfig your wine prfix:&lt;br /&gt;
 rm -rf .wine&lt;br /&gt;
 winecfg&lt;br /&gt;
 # or if headless...&lt;br /&gt;
 xvfg-run wincfg&lt;br /&gt;
&lt;br /&gt;
== Debug Wine ==&lt;br /&gt;
&lt;br /&gt;
If you are still stuck, you can generate a cleaner log file to parse by running your app with standard Wine debugging output:&lt;br /&gt;
 WINEDEBUG=-all,err+all wine your_application.exe&lt;br /&gt;
&lt;br /&gt;
== Wine Console Test ==&lt;br /&gt;
&lt;br /&gt;
winetest.cpp ::&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;windows.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main() {&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;       Wine Windows Console Test        \n&amp;quot;;&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;========================================\n\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 1. Test Windows API Version Detection&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[1] Checking Windows API Memory Status...\n&amp;quot;;&lt;br /&gt;
    MEMORYSTATUSEX memInfo;&lt;br /&gt;
    memInfo.dwLength = sizeof(MEMORYSTATUSEX);&lt;br /&gt;
    if (GlobalMemoryStatusEx(&amp;amp;memInfo)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Success! Total Physical Memory: &amp;quot; &lt;br /&gt;
                  &amp;lt;&amp;lt; memInfo.ullTotalPhys / (1024 * 1024) &amp;lt;&amp;lt; &amp;quot; MB\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to retrieve memory status.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 2. Test Environment Variables&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[2] Checking Environment Variables...\n&amp;quot;;&lt;br /&gt;
    char username[256];&lt;br /&gt;
    DWORD username_len = sizeof(username);&lt;br /&gt;
    if (GetUserNameA(username, &amp;amp;username_len)) {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Current User: &amp;quot; &amp;lt;&amp;lt; username &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to get username.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 3. Test File System Write/Read under Wine&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[3] Testing File System I/O...\n&amp;quot;;&lt;br /&gt;
    std::string testFilename = &amp;quot;wine_test_file.txt&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    std::ofstream outFile(testFilename);&lt;br /&gt;
    if (outFile.is_open()) {&lt;br /&gt;
        outFile &amp;lt;&amp;lt; &amp;quot;Wine compatibility test successful!&amp;quot;;&lt;br /&gt;
        outFile.close();&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully wrote to &amp;quot; &amp;lt;&amp;lt; testFilename &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        std::ifstream inFile(testFilename);&lt;br /&gt;
        std::string fileContent;&lt;br /&gt;
        if (std::getline(inFile, fileContent)) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Successfully read: \&amp;quot;&amp;quot; &amp;lt;&amp;lt; fileContent &amp;lt;&amp;lt; &amp;quot;\&amp;quot;\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        inFile.close();&lt;br /&gt;
        &lt;br /&gt;
        // Clean up&lt;br /&gt;
        DeleteFileA(testFilename.c_str());&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed file I/O test.\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    // 4. Test Registry Read (Optional but good for Wine)&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;[4] Testing Registry Access (HKLM)...\n&amp;quot;;&lt;br /&gt;
    HKEY hKey;&lt;br /&gt;
    if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, &amp;quot;SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion&amp;quot;, 0, KEY_READ, &amp;amp;hKey) == ERROR_SUCCESS) {&lt;br /&gt;
        char prodName[256];&lt;br /&gt;
        DWORD bufferSize = sizeof(prodName);&lt;br /&gt;
        if (RegQueryValueExA(hKey, &amp;quot;ProductName&amp;quot;, NULL, NULL, (LPBYTE)prodName, &amp;amp;bufferSize) == ERROR_SUCCESS) {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Reported OS: &amp;quot; &amp;lt;&amp;lt; prodName &amp;lt;&amp;lt; &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Opened key, but failed to read ProductName.\n\n&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
        RegCloseKey(hKey);&lt;br /&gt;
    } else {&lt;br /&gt;
        std::cout &amp;lt;&amp;lt; &amp;quot;    -&amp;gt; Failed to open registry key.\n\n&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    std::cout &amp;lt;&amp;lt; &amp;quot;Tests completed. Press ENTER to exit.&amp;quot;;&lt;br /&gt;
    std::cin.get();&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Linux cross compile with:&lt;br /&gt;
 x86_64-w64-mingw32-g++ -o winetest.exe winetest.cpp -static&lt;br /&gt;
&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-posix  # version 13.2.0-6ubuntu1+26.1, or&lt;br /&gt;
 # apt install g++-mingw-w64-x86-64-win32  # version 13.2.0-6ubuntu1+26.1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On Windows compile with:&lt;br /&gt;
 cl /EHsc winetest.cpp&lt;br /&gt;
&lt;br /&gt;
Rune in wine:&lt;br /&gt;
 wine winetest.exe&lt;br /&gt;
 xvfb-run -a wine winetest.exe&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/wine&amp;diff=10394</id>
		<title>Linux/wine</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/wine&amp;diff=10394"/>
		<updated>2026-09-25T05:36:32Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Wine ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
Test new wine prefix:&lt;br /&gt;
 WINEPREFIX=~/my_new_prefix wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Test wine with executable:&lt;br /&gt;
 xvfb-run -a wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Reconfig your wine prfix:&lt;br /&gt;
 rm -rf .wine&lt;br /&gt;
 winecfg&lt;br /&gt;
 # or if headless...&lt;br /&gt;
 xvfg-run wincfg&lt;br /&gt;
&lt;br /&gt;
== Debug Wine ==&lt;br /&gt;
&lt;br /&gt;
If you are still stuck, you can generate a cleaner log file to parse by running your app with standard Wine debugging output:&lt;br /&gt;
 WINEDEBUG=-all,err+all wine your_application.exe&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Linux/wine&amp;diff=10393</id>
		<title>Linux/wine</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Linux/wine&amp;diff=10393"/>
		<updated>2026-09-25T05:33:37Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: Created page with &amp;quot;&amp;lt;pre&amp;gt; sudo dpkg --add-architecture i386 sudo apt update sudo apt install --install-recommends winehq-staging &amp;lt;pre&amp;gt;  Rebuild Wine Prefix (~/.wine)  wineboot -u  Test new wine prefix:  WINEPREFIX=~/my_new_prefix wine your_executable.exe  Test wine with executable:  xvfb-run -a wine your_executable.exe  Reconfig your wine prfix:  rm -rf .wine  winecfg  # or if headless...  xvfg-run wincfg&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Rebuild Wine Prefix (~/.wine)&lt;br /&gt;
 wineboot -u&lt;br /&gt;
&lt;br /&gt;
Test new wine prefix:&lt;br /&gt;
 WINEPREFIX=~/my_new_prefix wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Test wine with executable:&lt;br /&gt;
 xvfb-run -a wine your_executable.exe&lt;br /&gt;
&lt;br /&gt;
Reconfig your wine prfix:&lt;br /&gt;
 rm -rf .wine&lt;br /&gt;
 winecfg&lt;br /&gt;
 # or if headless...&lt;br /&gt;
 xvfg-run wincfg&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10392</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10392"/>
		<updated>2026-09-25T05:19:50Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```&lt;br /&gt;
sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s&lt;br /&gt;
```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```&lt;br /&gt;
sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```&lt;br /&gt;
sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```&lt;br /&gt;
mkdir /home/abiotic/abioticserver&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```&lt;br /&gt;
/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```&lt;br /&gt;
touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```&lt;br /&gt;
sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```&lt;br /&gt;
chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```&lt;br /&gt;
/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```&lt;br /&gt;
sudo nano /etc/systemd/system/abiotic.service&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```&lt;br /&gt;
sudo systemctl enable abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```&lt;br /&gt;
sudo systemctl start abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10391</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10391"/>
		<updated>2026-09-25T05:19:25Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```&lt;br /&gt;
sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s&lt;br /&gt;
```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```&lt;br /&gt;
sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```&lt;br /&gt;
sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```&lt;br /&gt;
mkdir /home/abiotic/abioticserver&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```&lt;br /&gt;
/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```&lt;br /&gt;
touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```&lt;br /&gt;
sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```&lt;br /&gt;
chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```&lt;br /&gt;
/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```&lt;br /&gt;
sudo nano /etc/systemd/system/abiotic.service&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```&lt;br /&gt;
sudo systemctl enable abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```&lt;br /&gt;
sudo systemctl start abiotic&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10390</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10390"/>
		<updated>2026-09-25T05:17:50Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
```sudo useradd -m  abiotic&lt;br /&gt;
sudo -u abiotic -s```&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key```&lt;br /&gt;
&lt;br /&gt;
```sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources```&lt;br /&gt;
&lt;br /&gt;
```sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```mkdir /home/abiotic/abioticserver```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```sudo nano /etc/systemd/system/abiotic.service```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```sudo systemctl enable abiotic```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```sudo systemctl start abiotic```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10389</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10389"/>
		<updated>2026-09-25T05:16:53Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Dedicated Server in Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
`sudo useradd -m  abiotic`&lt;br /&gt;
`sudo -u abiotic -s`&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
```&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt upgrade -y&lt;br /&gt;
sudo apt install software-properties-common lsb-release wget```&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
```sudo mkdir -pm755 /etc/apt/keyrings&lt;br /&gt;
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key```&lt;br /&gt;
&lt;br /&gt;
```sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources```&lt;br /&gt;
&lt;br /&gt;
```sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install --install-recommends winehq-staging&lt;br /&gt;
sudo apt install cabextract winbind screen xvfb```&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
```sudo add-apt-repository multiverse&lt;br /&gt;
sudo apt-add-repository non-free&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install steamcmd```&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
```mkdir /home/abiotic/abioticserver```&lt;br /&gt;
&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
```/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit```&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
```touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh```&lt;br /&gt;
&lt;br /&gt;
edit this new file with&lt;br /&gt;
```sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh```&lt;br /&gt;
&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
```chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh```&lt;br /&gt;
&lt;br /&gt;
then cross your fingers&lt;br /&gt;
```/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh```&lt;br /&gt;
&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
```sudo nano /etc/systemd/system/abiotic.service```&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
```sudo systemctl enable abiotic```&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
```sudo systemctl start abiotic```&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvfb-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
(note: this changes winhq-staging with winhq-stable)&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10388</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10388"/>
		<updated>2026-09-25T05:02:37Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Linux run notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
`sudo useradd -m  abiotic`&lt;br /&gt;
`sudo -u abiotic -s`&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
`sudo apt update&lt;br /&gt;
sudo apt upgrade -y`&lt;br /&gt;
`sudo apt install software-properties-common lsb-release wget`&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
`sudo mkdir -pm755 /etc/apt/keyrings`&lt;br /&gt;
`sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key`&lt;br /&gt;
&lt;br /&gt;
`sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources`&lt;br /&gt;
&lt;br /&gt;
`sudo dpkg --add-architecture i386`&lt;br /&gt;
`sudo apt update`&lt;br /&gt;
`sudo apt install --install-recommends winehq-staging`&lt;br /&gt;
`sudo apt install cabextract winbind screen xvfb`&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
`sudo add-apt-repository multiverse`&lt;br /&gt;
`sudo apt-add-repository non-free`&lt;br /&gt;
`sudo apt update`&lt;br /&gt;
`sudo apt install steamcmd`&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
`mkdir /home/abiotic/abioticserver`&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
`/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit`&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
`touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh`&lt;br /&gt;
edit this new file with&lt;br /&gt;
`sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh`&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
`chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh`&lt;br /&gt;
then cross your fingers&lt;br /&gt;
`/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh`&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
`sudo nano /etc/systemd/system/abiotic.service`&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
`sudo systemctl enable abiotic`&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
`sudo systemctl start abiotic`&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvbf-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
If you want to transfer your SaveGame from an ingame hosted lobby, you can take a look at your local PC. (%appdata%\Local\AbioticFactor\Saved\SaveGames\YOURMAPNAME).&lt;br /&gt;
&lt;br /&gt;
Start the dedicated server once, to let the server create all neccessary folders.&lt;br /&gt;
&lt;br /&gt;
Upload your local savegame to &amp;quot;abioticserver/AbioticFactor/Saved/SaveGames/Server/Worlds&amp;quot; and change the map name in your startparamter of the server.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I just did a manual &#039;steamcmd&#039; install, and my run command is&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 WINEDEBUG=-all wine64 /srv/gameserver/fox/abiotic/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -multihome=192.168.210.210 -useperfthreads -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=blahblah -SteamServerName=&amp;quot;Together&amp;quot; -WorldSaveName=&amp;quot;Together&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 where &amp;quot;Together&amp;quot; should be replaced by your save name.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had a problem &amp;quot;wine64: not found&amp;quot; I fixed it by running this.&lt;br /&gt;
I&#039;m on an AMD Ryzen running Ubunt 24.04 server.&lt;br /&gt;
 sudo apt install --install-recommends winehq-stable wine-stable:amd64 wine-stable-amd64:amd64 wine-stable-i386:i386 &lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I had issues setting up the server on Ubuntu 24 but was able to get past them by doing the following:&lt;br /&gt;
&lt;br /&gt;
# Following the Wine instructions for installing wine on my machine (Apparently it&#039;s quite specific to linux distro and hardware)&lt;br /&gt;
# Using &amp;quot;wine&amp;quot; in the wine server file instead of &amp;quot;Wine64&amp;quot;&lt;br /&gt;
# I got an error loading a DLL at some point and followed the solution on this page:&lt;br /&gt;
#*  https://forum.manjaro.org/t/wine-could-not-load-kernel32-dll-status-c0000135/69811/2&lt;br /&gt;
# Every time I stop the server I have to restart the machine to get it to run again. No idea why.&lt;br /&gt;
&lt;br /&gt;
To enable DLC content I did the following:&lt;br /&gt;
&lt;br /&gt;
I found the admin.ini file here:&lt;br /&gt;
 /home//abioticserver/AbioticFactor/Saved/SaveGames/Server&lt;br /&gt;
And added my Steam ID to it.&lt;br /&gt;
&lt;br /&gt;
You can lookup your 17 digit Steam ID by opening the Steam app, clicking on your Icon, and going to Account Details. I pasted mine over one of the example IDs in the admin.ini.&lt;br /&gt;
&lt;br /&gt;
=== Linux performance note ===&lt;br /&gt;
&lt;br /&gt;
 Remove -NoAsyncLoadingThread from parameters for better server performance.&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10387</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10387"/>
		<updated>2026-09-25T04:58:54Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Linux run notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
`sudo useradd -m  abiotic`&lt;br /&gt;
`sudo -u abiotic -s`&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
`sudo apt update&lt;br /&gt;
sudo apt upgrade -y`&lt;br /&gt;
`sudo apt install software-properties-common lsb-release wget`&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
`sudo mkdir -pm755 /etc/apt/keyrings`&lt;br /&gt;
`sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key`&lt;br /&gt;
&lt;br /&gt;
`sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources`&lt;br /&gt;
&lt;br /&gt;
`sudo dpkg --add-architecture i386`&lt;br /&gt;
`sudo apt update`&lt;br /&gt;
`sudo apt install --install-recommends winehq-staging`&lt;br /&gt;
`sudo apt install cabextract winbind screen xvfb`&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
`sudo add-apt-repository multiverse`&lt;br /&gt;
`sudo apt-add-repository non-free`&lt;br /&gt;
`sudo apt update`&lt;br /&gt;
`sudo apt install steamcmd`&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
`mkdir /home/abiotic/abioticserver`&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
`/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit`&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
`touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh`&lt;br /&gt;
edit this new file with&lt;br /&gt;
`sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh`&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
`chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh`&lt;br /&gt;
then cross your fingers&lt;br /&gt;
`/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh`&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
`sudo nano /etc/systemd/system/abiotic.service`&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
`sudo systemctl enable abiotic`&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
`sudo systemctl start abiotic`&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvbf-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
I was able to resolve this by adding the -tcp tag to the startup command (i placed it after the QUERYPORT tag. This has now loaded the game server 3 times in a row and is visible in the steam server list&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now. [2024.05.04-16.53.14:337][ 23] LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10386</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10386"/>
		<updated>2026-09-25T04:58:24Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dedicated Server in Linux ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/issues/3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;markdown&amp;gt;&lt;br /&gt;
### **Installing the Abiotic Dedicated Server to Ubuntu**&lt;br /&gt;
&lt;br /&gt;
_Note: Do not run as user root - make a user called anything else and give them sudo permissions &lt;br /&gt;
Example:_ &lt;br /&gt;
`sudo useradd -m  abiotic`&lt;br /&gt;
`sudo -u abiotic -s`&lt;br /&gt;
Now login to that user and go to their home directory `cd ~` to start this guide&lt;br /&gt;
&lt;br /&gt;
**1. Prepare the server with required packages**&lt;br /&gt;
`sudo apt update&lt;br /&gt;
sudo apt upgrade -y`&lt;br /&gt;
`sudo apt install software-properties-common lsb-release wget`&lt;br /&gt;
&lt;br /&gt;
**2. Install Wine**&lt;br /&gt;
Add repositories&lt;br /&gt;
`sudo mkdir -pm755 /etc/apt/keyrings`&lt;br /&gt;
`sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key`&lt;br /&gt;
&lt;br /&gt;
`sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/$(lsb_release -is | tr &#039;[:upper:]&#039; &#039;[:lower:]&#039;)/dists/$(lsb_release -cs)/winehq-$(lsb_release -cs).sources`&lt;br /&gt;
&lt;br /&gt;
`sudo dpkg --add-architecture i386`&lt;br /&gt;
`sudo apt update`&lt;br /&gt;
`sudo apt install --install-recommends winehq-staging`&lt;br /&gt;
`sudo apt install cabextract winbind screen xvfb`&lt;br /&gt;
&lt;br /&gt;
**3. Set up SteamCMD**&lt;br /&gt;
`sudo add-apt-repository multiverse`&lt;br /&gt;
`sudo apt-add-repository non-free`&lt;br /&gt;
`sudo apt update`&lt;br /&gt;
`sudo apt install steamcmd`&lt;br /&gt;
&lt;br /&gt;
**4. Install Abiotic server (example location - change it to whatever you like)** &lt;br /&gt;
&lt;br /&gt;
make a directory for server files to live in&lt;br /&gt;
`mkdir /home/abiotic/abioticserver`&lt;br /&gt;
download the game via steamcmd forcing it to use the windows files (you&#039;ll get an error if you don&#039;t do this)&lt;br /&gt;
`/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit`&lt;br /&gt;
&lt;br /&gt;
**5. Configure server** &lt;br /&gt;
&lt;br /&gt;
create the shell script to run your server (we&#039;re basically changing the .bat instructions to .sh) &lt;br /&gt;
`touch /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh`&lt;br /&gt;
edit this new file with&lt;br /&gt;
`sudo nano /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh`&lt;br /&gt;
add this to the file and change your password, server name, and world save name if you import any server save from your single player etc. (thank you @sirwillis92 for the changes to this) &lt;br /&gt;
```&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -tcp -ServerPassword=yourpassword -SteamServerName=&amp;quot;yourserver&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
```&lt;br /&gt;
save and close it (ctrl+x)&lt;br /&gt;
&lt;br /&gt;
**6. Forward your ports 7777 and 27015 to your server**&lt;br /&gt;
&lt;br /&gt;
**7. Start the server by running your runserver.sh** &lt;br /&gt;
&lt;br /&gt;
We can&#039;t start the .sh without getting file permissions&lt;br /&gt;
`chmod +x /home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh`&lt;br /&gt;
then cross your fingers&lt;br /&gt;
`/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh`&lt;br /&gt;
you&#039;ll get a bunch of errors, but it should still work&lt;br /&gt;
turn it off with ctrl+z &lt;br /&gt;
&lt;br /&gt;
Running this as a script right in your terminal will take over your terminal so I recommend running it as a service. &lt;br /&gt;
I seem to have to reboot between server launches but that&#039;s what LXCs are good at. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
### &lt;br /&gt;
&lt;br /&gt;
 ### **Run as a service**&lt;br /&gt;
&lt;br /&gt;
**1. create the service file** &lt;br /&gt;
`sudo nano /etc/systemd/system/abiotic.service`&lt;br /&gt;
&lt;br /&gt;
**2. Fill it with this (edit as necessary for your own setup):**&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
[Unit]&lt;br /&gt;
Description=Abiotic Factor  Server&lt;br /&gt;
Wants=network-online.target&lt;br /&gt;
After=network-online.target&lt;br /&gt;
 &lt;br /&gt;
[Service]&lt;br /&gt;
User=abiotic&lt;br /&gt;
Group=abiotic&lt;br /&gt;
WorkingDirectory=/home/abiotic/abioticserver/&lt;br /&gt;
ExecStartPre=/usr/games/steamcmd +@sSteamCmdForcePlatformType windows +force_install_dir /home/abiotic/abioticserver +login anonymous +app_update 2857200 +quit&lt;br /&gt;
ExecStart=/home/abiotic/abioticserver/AbioticFactor/Binaries/Win64/runserver.sh&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
Save it&lt;br /&gt;
&lt;br /&gt;
**3. Enable the service**&lt;br /&gt;
`sudo systemctl enable abiotic`&lt;br /&gt;
&lt;br /&gt;
**4. Start the service** &lt;br /&gt;
`sudo systemctl start abiotic`&lt;br /&gt;
&lt;br /&gt;
Use stop and disable commands to do that respectively. &lt;br /&gt;
&lt;br /&gt;
That&#039;s it. It will auto restart on a power cycle and always update the server files to the latest build. &lt;br /&gt;
&amp;lt;/markdown&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Linux run notes ===&lt;br /&gt;
&lt;br /&gt;
I was able to get it running with xvbf-run wine64&lt;br /&gt;
&lt;br /&gt;
here is a copy of what my shell script looks like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat examplestart.sh&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
xvfb-run wine64 AbioticFactor/Binaries/Win64/AbioticFactorServer-Win64-Shipping.exe -log -newconole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QUERYPORT=27015 -ServerPassword=ServerPassword -SteamServerName=&amp;quot;ServerName&amp;quot; -WorldSaveName=&amp;quot;Cascade&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I end up running into this error though:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds&lt;br /&gt;
which seems to mean that the server is not listed on the steam server list. I am not sure how to fix this, and sine the game doesn&#039;t have a direct connect option in-game, me or my friends can&#039;t connect&lt;br /&gt;
[2024.05.04-16.28.35:105][  0]LogWorld: Bringing up level for play took: 0.265297 LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:208][  0]LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:381][  0]LogGameState: Match State Changed from EnteringMap to WaitingToStart [2024.05.04-16.28.35:382][  0]LogLoad: Took 1.033981 seconds to LoadMap(/Game/Maps/Facility) LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogInit: Display: Engine is initialized. Leaving FEngineLoop::Init() [2024.05.04-16.28.35:394][  0]LogLoad: (Engine Initialization) Total time: 3.48 seconds 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering 0130:fixme:winsock:WS_setsockopt SO_SNDBUF ignoring request to disable send buffering LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds [2024.05.04-16.28.50:232][443]LogOnline: Warning: OSS: Async task &#039;FOnlineAsyncTaskSteamCreateServer bWasSuccessful: 0&#039; failed in 15.001264 seconds 015c:fixme:advapi:ReportEventW (00000000CAFE4242,0x0002,0x0000,0x80000002,0000000000000000,0x0001,0x00000000,00000000198AFC48,0000000000000000): stub &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Dedicated Server in Windows ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;br /&gt;
&lt;br /&gt;
 login anonymous&lt;br /&gt;
 force_install_dir &amp;lt;DesiredPath&amp;gt;&lt;br /&gt;
 app_update 2857200 validate&lt;br /&gt;
&lt;br /&gt;
Edit&lt;br /&gt;
 \(Server Install)\AbioticFactor\Binaries\Win64\RunServer.bat&lt;br /&gt;
&lt;br /&gt;
Open RunServer add the following: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
AbioticFactorServer-Win64-Shipping.exe -log -newconsole -useperfthreads -NoAsyncLoadingThread -MaxServerPlayers=6 -PORT=7777 -QueryPort=27015 -ServerPassword=YourServerPassword -AdminPassword=YourAdminPassword -SteamServerName=&amp;quot;Your Server Name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ensure you replace YourServerPasword and &amp;quot;Your Server Name&amp;quot; with the correct info. If you don&#039;t want a password to access the admin menu in-game, remove the -AdminPassword= launch parameter&lt;br /&gt;
RunServer.bat, this allows you to double click it to run the server.&lt;br /&gt;
&lt;br /&gt;
Run the server and check if a console window appears.&lt;br /&gt;
&lt;br /&gt;
If you didn&#039;t use the -AdminPassword launch parameter, you will need to manually add your SteamID (Doesn&#039;t work for Xbox or Playstation) to the server config. Close the server and navigate to \(Server Install)\AbioticFactor\Saved\SaveGames\Server\Admin.ini. Edit this file and add your SteamID under [Moderators], eg: Moderator=76561198053306820&lt;br /&gt;
&lt;br /&gt;
Use RunServer again, if you can&#039;t see the server in the server browser you may have to port forward 7777 and 27015&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10385</id>
		<title>Abiotic Factor</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Abiotic_Factor&amp;diff=10385"/>
		<updated>2026-09-25T04:52:45Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: Created page with &amp;quot;== Dedicated Server ==   https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki   https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Dedicated Server ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki&lt;br /&gt;
&lt;br /&gt;
 https://github.com/DFJacob/AbioticFactorDedicatedServer/wiki/Guide-%E2%80%90-Quickstart&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=Copilot/CLI&amp;diff=10384</id>
		<title>Copilot/CLI</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=Copilot/CLI&amp;diff=10384"/>
		<updated>2026-09-24T16:14:44Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Set Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Copilot CLI ==&lt;br /&gt;
&lt;br /&gt;
== Copilot CLI Installation ==&lt;br /&gt;
&lt;br /&gt;
=== Scripted Install ===&lt;br /&gt;
&lt;br /&gt;
See https://github.com/github/copilot-cli&lt;br /&gt;
&lt;br /&gt;
User Install:  (installs to: $HOME/.local/bin/copilot)&lt;br /&gt;
 curl -fsSL https://gh.io/copilot-install | bash&lt;br /&gt;
 wget -qO- https://gh.io/copilot-install | bash&lt;br /&gt;
&lt;br /&gt;
Global Install:  (installs to: /usr/local/bin/copilot)&lt;br /&gt;
 curl -fsSL https://gh.io/copilot-install | sudo bash&lt;br /&gt;
 wget -qO- https://gh.io/copilot-install | sudo bash&lt;br /&gt;
&lt;br /&gt;
== Install in GitHub CLI ==&lt;br /&gt;
&lt;br /&gt;
=== Install GitHub CLI ===&lt;br /&gt;
&lt;br /&gt;
1. Install GitHub CLI&lt;br /&gt;
&lt;br /&gt;
Choose the command for your operating system:&lt;br /&gt;
&lt;br /&gt;
macOS:&lt;br /&gt;
 brew install gh&lt;br /&gt;
&lt;br /&gt;
Windows (Winget):&lt;br /&gt;
 winget install GitHub.cli&lt;br /&gt;
&lt;br /&gt;
Windows (Scoop):&lt;br /&gt;
 scoop install gh&lt;br /&gt;
&lt;br /&gt;
Linux (Ubuntu/Debian):&lt;br /&gt;
 sudo apt install gh&lt;br /&gt;
&lt;br /&gt;
Linux (Fedora/RHEL):&lt;br /&gt;
 sudo dnf install gh&lt;br /&gt;
&lt;br /&gt;
=== GH Authenticate ===&lt;br /&gt;
&lt;br /&gt;
2. Authenticate:&lt;br /&gt;
 gh auth login&lt;br /&gt;
&lt;br /&gt;
=== Install GH Copilot Extension ===&lt;br /&gt;
&lt;br /&gt;
3. Install the Copilot Extension:&lt;br /&gt;
 gh extension install github/gh-copilot&lt;br /&gt;
&lt;br /&gt;
=== Update GH Copilot Extension ===&lt;br /&gt;
&lt;br /&gt;
4. Update the Extension (Optional)&lt;br /&gt;
 gh extension upgrade gh-copilot&lt;br /&gt;
&lt;br /&gt;
=== Use GH Copilot CLI ===&lt;br /&gt;
&lt;br /&gt;
5. Use the CLI&lt;br /&gt;
 gh copilot explain &amp;quot;command&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 gh copilot suggest &amp;quot;what you want to do&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If you want, I can help you set up aliases (like ?? or git?) to make triggering Copilot suggestions much faster in your shell. Let me know if you use Bash, Zsh, or PowerShell.&lt;br /&gt;
&lt;br /&gt;
=== References to GH Copilot CLI ===&lt;br /&gt;
&lt;br /&gt;
References&lt;br /&gt;
* https://docs.github.com/en/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli&lt;br /&gt;
* https://www.linkedin.com/posts/github_have-you-tried-github-copilot-in-the-cli-activity-7179897577172074496-jw4T&lt;br /&gt;
* https://www.linkedin.com/posts/juliangoldieseo_new-github-copilot-cli-is-insane-activity-7377931244484964352-mr2Y&lt;br /&gt;
* https://itnext.io/getting-started-with-github-copilot-66fb63c88cbe&lt;br /&gt;
* https://apito.ai/en/blog/tools/github-copilot-claudeapi-byok-setup/&lt;br /&gt;
* https://www.promptfu.com/blog/github-copilot-cli-mastery-guide/&lt;br /&gt;
&lt;br /&gt;
== Install keyring dependency ==&lt;br /&gt;
&lt;br /&gt;
If you do not have the credential manager setup you will get this warning when you try to &amp;quot;/login&amp;quot;:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 ! System vault not available&lt;br /&gt;
&lt;br /&gt;
 The recommended secure storage (keychain, keyring, or credential manager) could not be found or accessed.&lt;br /&gt;
 You may need to install or configure one.&lt;br /&gt;
&lt;br /&gt;
 Storing the token in the config file saves it as plain text, which is insecure. If you decline, sign-in&lt;br /&gt;
 will be cancelled and no account state will be changed.&lt;br /&gt;
&lt;br /&gt;
 Store token in plain text config file?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To fix:&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install -y gnome-keyring libsecret-1-0 libsecret-tools seahorse&lt;br /&gt;
&lt;br /&gt;
Verify secret-tool is accessible:&lt;br /&gt;
 command -v secret-tool&lt;br /&gt;
&lt;br /&gt;
Login:&lt;br /&gt;
 copilot -i /login&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sigh - actually CLI can&#039;t handle being headless... just accept it!&lt;br /&gt;
&lt;br /&gt;
Write it plain text...&lt;br /&gt;
  ~/.copilot/config.json&lt;br /&gt;
&lt;br /&gt;
Alt:&lt;br /&gt;
 gh auth token&lt;br /&gt;
 export COPILOT_GITHUB_TOKEN=&amp;quot;your_github_pat_here&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Actually -- virtual dbus should work?&lt;br /&gt;
&lt;br /&gt;
 sudo apt update &amp;amp;&amp;amp; sudo apt install -y libsecret-1-0 libsecret-tools gnome-keyring&lt;br /&gt;
&lt;br /&gt;
launch mock dbus:&lt;br /&gt;
 dbus-run-session -- bash&lt;br /&gt;
&lt;br /&gt;
Inside the virtual session, try run copilot login there?&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
&lt;br /&gt;
 # Interesting packages also installed by gnome-keyring:&lt;br /&gt;
 #   libpam-gnome-keyring  libsecret-1-0  libsecret-common  pinentry-gnome3&lt;br /&gt;
&lt;br /&gt;
 # Additional packages that might be useful (recommended)&lt;br /&gt;
 #   ssh-askpass  libsecret-tools  keychain&lt;br /&gt;
&lt;br /&gt;
 # Another keyring db for other usage&lt;br /&gt;
 #   sudo apt install python3-keyring python3-keyrings.alt&lt;br /&gt;
 #     # which also installs:  python3-pycryptodome  python3-secretstorage&lt;br /&gt;
 #   # or&lt;br /&gt;
 #   python3 -m pip install keyring keyrings.alt keyrings.cryptfile&lt;br /&gt;
 #    ~/.config/python_keyring&lt;br /&gt;
&lt;br /&gt;
 sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \&lt;br /&gt;
    gnome-keyring libsecret-1-0 libsecret-tools&lt;br /&gt;
&lt;br /&gt;
 sudo loginctl enable-linger &amp;quot;$USER&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Once per reboot:&lt;br /&gt;
 printf &#039;%s&#039; &amp;quot;$PASSWORD&amp;quot; | gnome-keyring-daemon --daemonize --unlock --components=secrets&lt;br /&gt;
&lt;br /&gt;
Verify:&lt;br /&gt;
 printf &#039;x&#039; | secret-tool store --label=test service probe account me&lt;br /&gt;
 secret-tool lookup service probe account me   # -&amp;gt; x&lt;br /&gt;
&lt;br /&gt;
info:&lt;br /&gt;
 gnome-keyring	The daemon that owns org.freedesktop.secrets&lt;br /&gt;
 libsecret-1-0	Client library Copilot CLI links against&lt;br /&gt;
 libsecret-tools	secret-tool, for verifying the store works&lt;br /&gt;
&lt;br /&gt;
=== setup-keyring ===&lt;br /&gt;
&lt;br /&gt;
See [[setup-keyring.sh]]&lt;br /&gt;
&lt;br /&gt;
== Login ==&lt;br /&gt;
&lt;br /&gt;
First, install keychain, keyring, or credential manager&lt;br /&gt;
&lt;br /&gt;
 /login&lt;br /&gt;
&lt;br /&gt;
 https://github.com/login/device&lt;br /&gt;
&lt;br /&gt;
 /logout&lt;br /&gt;
&lt;br /&gt;
== Set Model ==&lt;br /&gt;
&lt;br /&gt;
Set Model:&lt;br /&gt;
 /config model claude-opus-5.5&lt;br /&gt;
&lt;br /&gt;
Common options:&lt;br /&gt;
* claude-opus-5.5&lt;br /&gt;
* claude-opus-5&lt;br /&gt;
* claude-sonnet-5&lt;br /&gt;
* claude-sonnet-4.5&lt;br /&gt;
* claude-haiku-4.5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Set effort level: (&amp;quot;Reasoning effort for models that support it&amp;quot;)&lt;br /&gt;
 /config effortLevel max&lt;br /&gt;
 /config effortLevel xhigh&lt;br /&gt;
   options: none, minimal, low, medium, high, xhigh, max&lt;br /&gt;
&lt;br /&gt;
Calude Opus 5 supports effort levels, but Claude Sonnet 4.5 and Claude Haiku 4.5 do not&lt;br /&gt;
&lt;br /&gt;
== Multi-Line ==&lt;br /&gt;
&lt;br /&gt;
Use: Ctrl+g to bring up vim&lt;br /&gt;
&lt;br /&gt;
Or alt+enter&lt;br /&gt;
&lt;br /&gt;
Note: shift+enter does not work&lt;br /&gt;
&lt;br /&gt;
== Disable Mouse Control ==&lt;br /&gt;
&lt;br /&gt;
 /config mouse off&lt;br /&gt;
&lt;br /&gt;
== YOLO ==&lt;br /&gt;
&lt;br /&gt;
All permissions are enabled. Tool, path, and URL requests are automatically approved.&lt;br /&gt;
&lt;br /&gt;
 /yolo on&lt;br /&gt;
 /yolo off&lt;br /&gt;
 /yolo show&lt;br /&gt;
 /config footer.showYolo on&lt;br /&gt;
&lt;br /&gt;
== Footer Status ==&lt;br /&gt;
&lt;br /&gt;
 /config footer.showAgent on&lt;br /&gt;
&lt;br /&gt;
 /config footer.showAiUsed on&lt;br /&gt;
&lt;br /&gt;
 /config footer.showModelEffort on&lt;br /&gt;
&lt;br /&gt;
 /config footer.showQuota on&lt;br /&gt;
&lt;br /&gt;
 /config footer.showYolo on&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
footer = {&amp;quot;showModelEffort&amp;quot;:true,&amp;quot;showQuota&amp;quot;:true,&amp;quot;showAiUsed&amp;quot;:true,&amp;quot;showAgent&amp;quot;:true,&amp;quot;showYolo&amp;quot;:true}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ask_user tool ==&lt;br /&gt;
&lt;br /&gt;
: I&#039;ll note to use the &#039;&#039;&#039;ask_user tool&#039;&#039;&#039; for open-ended questions going forward...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: &amp;quot;Can you save to my profile, or user setting to *always* use the &#039;ask_user tool&#039; when you ask me a question, and to always provide a &amp;quot;open ended&amp;quot; option please&lt;br /&gt;
* &amp;quot;Good — I&#039;ll wire that in as a standing rule. Let me check where user-level (not repo-level) preferences belong for this CLI. &amp;quot;&lt;br /&gt;
* $HOME/.copilot/copilot-instructions.md  is the user-level (all-repos) instructions file — it doesn&#039;t exist yet, so I&#039;ll create it.&lt;br /&gt;
&lt;br /&gt;
== profile copilot-instructions.md ==&lt;br /&gt;
&lt;br /&gt;
 $HOME/.copilot/copilot-instructions.md&lt;br /&gt;
&lt;br /&gt;
== $HOME/.copilot/copilot-instructions.md ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# User Standing Instructions (Kenneth)&lt;br /&gt;
&lt;br /&gt;
These are profile-wide preferences. They apply in every repository and every session,&lt;br /&gt;
and take precedence over default response habits. Repository-specific instructions&lt;br /&gt;
still govern their own domain (coding standards, branch naming, project workflows).&lt;br /&gt;
&lt;br /&gt;
## Asking Questions&lt;br /&gt;
&lt;br /&gt;
**Always use the `ask_user` tool to ask me a question.** Never ask a question in plain&lt;br /&gt;
response text and then stop, and never end a response with a bare question expecting me&lt;br /&gt;
to answer in chat. If you need input, a decision, a preference, or a clarification —&lt;br /&gt;
present it through `ask_user` so it renders as a structured form.&lt;br /&gt;
&lt;br /&gt;
This applies to every kind of question, including:&lt;br /&gt;
&lt;br /&gt;
- Choosing between implementation approaches&lt;br /&gt;
- Confirming a destructive or hard-to-reverse action before taking it&lt;br /&gt;
- Resolving ambiguous requirements or unclear scope&lt;br /&gt;
- Asking where output should go, or what to do next&lt;br /&gt;
- Single yes/no confirmations (a one-field form is fine)&lt;br /&gt;
&lt;br /&gt;
**Always include an open-ended option.** Every `ask_user` form must give me a way to&lt;br /&gt;
answer in my own words rather than forcing a pick from your list. Concretely:&lt;br /&gt;
&lt;br /&gt;
- Add a final free-text field — typically `other`, titled something like&lt;br /&gt;
  &amp;quot;Something else / in my own words&amp;quot;, with a description inviting a freeform answer&lt;br /&gt;
  and making clear it overrides the structured selections above.&lt;br /&gt;
- For a single-choice field, also include an escape-hatch option in the `enum`/`oneOf`&lt;br /&gt;
  list itself (for example &amp;quot;Something else — I&#039;ll explain&amp;quot;) so the open-ended path is&lt;br /&gt;
  visible at the point of choosing, not only in a separate field.&lt;br /&gt;
- Never present a closed set of options as if it were exhaustive. Your options are&lt;br /&gt;
  suggestions, not a menu I am confined to.&lt;br /&gt;
&lt;br /&gt;
**Recommend, don&#039;t just enumerate.** State which option you&#039;d pick and why, then set it&lt;br /&gt;
as the `default`. I would rather correct a considered recommendation than arbitrate a&lt;br /&gt;
neutral list.&lt;br /&gt;
&lt;br /&gt;
**Batch related questions.** If several decisions belong to the same topic, put them in&lt;br /&gt;
one form rather than asking serially. Keep unrelated topics in separate forms.&lt;br /&gt;
&lt;br /&gt;
**Respect a declined or cancelled form.** If I decline, proceed with the stated defaults&lt;br /&gt;
and say which ones you used. Do not immediately re-ask the same question.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10383</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10383"/>
		<updated>2026-09-23T08:31:18Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* List Running */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete Distro ===&lt;br /&gt;
&lt;br /&gt;
 wsl --unregister &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shutdown WSL ===&lt;br /&gt;
&lt;br /&gt;
 wsl --shutdown&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=kenneth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also add to these groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep kenneth /etc/groups&lt;br /&gt;
adm:x:4:syslog,kenneth&lt;br /&gt;
cdrom:x:24:kenneth&lt;br /&gt;
sudo:x:27:kenneth&lt;br /&gt;
dip:x:30:kenneth&lt;br /&gt;
plugdev:x:46:kenneth&lt;br /&gt;
users:x:100:kenneth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Force start as root ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt; --user root&lt;br /&gt;
&lt;br /&gt;
== Clean Copy ==&lt;br /&gt;
&lt;br /&gt;
If you try to start a new instance, it will just be a clone, not a new instance.&lt;br /&gt;
&lt;br /&gt;
Example - this will just clone, not create a new copy:&lt;br /&gt;
 wsl -d Ubuntu-26.04 --name newcopy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wsl -d Ubuntu-26.04 --name newcopy&amp;lt;/code&amp;gt; does not create a new distro from a pristine Ubuntu image. It launches or clones from the existing registered distro state, so any packages you&#039;ve already installed will still be there. Microsoft&#039;s WSL import/export model treats a distro as a filesystem image, not a package recipe.&lt;br /&gt;
&lt;br /&gt;
Option 1: Create a truly clean Ubuntu distro (recommended)&lt;br /&gt;
&lt;br /&gt;
Download a fresh Ubuntu rootfs and import it as a new distro. A separate imported distro starts from the contents of that root filesystem tarball, not from your existing Ubuntu installation.&lt;br /&gt;
&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/releases/&lt;br /&gt;
** ubuntu-24.04-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
** ubuntu-24.10-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/releases/jammy/current/ubuntu-jammy-wsl-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/releases/noble/current/ubuntu-noble-wsl-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
** https://cloud-images.ubuntu.com/wsl/releases/noble/current/ubuntu-noble-wsl-amd64-24.04lts.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
NOTE: WSL image publication has moved to https://cdimages.ubuntu.com&lt;br /&gt;
&lt;br /&gt;
Noble 24:&lt;br /&gt;
* https://cdimages.ubuntu.com/ubuntu-wsl/noble/daily-live/current/noble-wsl-amd64.wsl&lt;br /&gt;
&lt;br /&gt;
Resolute 26:&lt;br /&gt;
* https://cdimages.ubuntu.com/ubuntu-wsl/resolute/daily-live/current/resolute-wsl-amd64.wsl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir D:\WSL\Ubuntu2604Clean&lt;br /&gt;
&lt;br /&gt;
wsl --import Ubuntu2604Clean `&lt;br /&gt;
  D:\WSL\Ubuntu2604Clean `&lt;br /&gt;
  ubuntu-26.04-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
wsl -d Ubuntu2604Clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 # wsl --umount support.vhdx&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10382</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10382"/>
		<updated>2026-09-23T08:30:55Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Set Default User for WSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete Distro ===&lt;br /&gt;
&lt;br /&gt;
 wsl --unregister &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=kenneth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also add to these groups:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ grep kenneth /etc/groups&lt;br /&gt;
adm:x:4:syslog,kenneth&lt;br /&gt;
cdrom:x:24:kenneth&lt;br /&gt;
sudo:x:27:kenneth&lt;br /&gt;
dip:x:30:kenneth&lt;br /&gt;
plugdev:x:46:kenneth&lt;br /&gt;
users:x:100:kenneth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Force start as root ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt; --user root&lt;br /&gt;
&lt;br /&gt;
== Clean Copy ==&lt;br /&gt;
&lt;br /&gt;
If you try to start a new instance, it will just be a clone, not a new instance.&lt;br /&gt;
&lt;br /&gt;
Example - this will just clone, not create a new copy:&lt;br /&gt;
 wsl -d Ubuntu-26.04 --name newcopy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wsl -d Ubuntu-26.04 --name newcopy&amp;lt;/code&amp;gt; does not create a new distro from a pristine Ubuntu image. It launches or clones from the existing registered distro state, so any packages you&#039;ve already installed will still be there. Microsoft&#039;s WSL import/export model treats a distro as a filesystem image, not a package recipe.&lt;br /&gt;
&lt;br /&gt;
Option 1: Create a truly clean Ubuntu distro (recommended)&lt;br /&gt;
&lt;br /&gt;
Download a fresh Ubuntu rootfs and import it as a new distro. A separate imported distro starts from the contents of that root filesystem tarball, not from your existing Ubuntu installation.&lt;br /&gt;
&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/releases/&lt;br /&gt;
** ubuntu-24.04-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
** ubuntu-24.10-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/releases/jammy/current/ubuntu-jammy-wsl-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/releases/noble/current/ubuntu-noble-wsl-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
** https://cloud-images.ubuntu.com/wsl/releases/noble/current/ubuntu-noble-wsl-amd64-24.04lts.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
NOTE: WSL image publication has moved to https://cdimages.ubuntu.com&lt;br /&gt;
&lt;br /&gt;
Noble 24:&lt;br /&gt;
* https://cdimages.ubuntu.com/ubuntu-wsl/noble/daily-live/current/noble-wsl-amd64.wsl&lt;br /&gt;
&lt;br /&gt;
Resolute 26:&lt;br /&gt;
* https://cdimages.ubuntu.com/ubuntu-wsl/resolute/daily-live/current/resolute-wsl-amd64.wsl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir D:\WSL\Ubuntu2604Clean&lt;br /&gt;
&lt;br /&gt;
wsl --import Ubuntu2604Clean `&lt;br /&gt;
  D:\WSL\Ubuntu2604Clean `&lt;br /&gt;
  ubuntu-26.04-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
wsl -d Ubuntu2604Clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 # wsl --umount support.vhdx&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10381</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10381"/>
		<updated>2026-09-23T08:16:41Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Set Default User for WSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete Distro ===&lt;br /&gt;
&lt;br /&gt;
 wsl --unregister &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=kenneth&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Clean Copy ==&lt;br /&gt;
&lt;br /&gt;
If you try to start a new instance, it will just be a clone, not a new instance.&lt;br /&gt;
&lt;br /&gt;
Example - this will just clone, not create a new copy:&lt;br /&gt;
 wsl -d Ubuntu-26.04 --name newcopy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wsl -d Ubuntu-26.04 --name newcopy&amp;lt;/code&amp;gt; does not create a new distro from a pristine Ubuntu image. It launches or clones from the existing registered distro state, so any packages you&#039;ve already installed will still be there. Microsoft&#039;s WSL import/export model treats a distro as a filesystem image, not a package recipe.&lt;br /&gt;
&lt;br /&gt;
Option 1: Create a truly clean Ubuntu distro (recommended)&lt;br /&gt;
&lt;br /&gt;
Download a fresh Ubuntu rootfs and import it as a new distro. A separate imported distro starts from the contents of that root filesystem tarball, not from your existing Ubuntu installation.&lt;br /&gt;
&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/releases/&lt;br /&gt;
** ubuntu-24.04-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
** ubuntu-24.10-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/releases/jammy/current/ubuntu-jammy-wsl-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/releases/noble/current/ubuntu-noble-wsl-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
** https://cloud-images.ubuntu.com/wsl/releases/noble/current/ubuntu-noble-wsl-amd64-24.04lts.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
NOTE: WSL image publication has moved to https://cdimages.ubuntu.com&lt;br /&gt;
&lt;br /&gt;
Noble 24:&lt;br /&gt;
* https://cdimages.ubuntu.com/ubuntu-wsl/noble/daily-live/current/noble-wsl-amd64.wsl&lt;br /&gt;
&lt;br /&gt;
Resolute 26:&lt;br /&gt;
* https://cdimages.ubuntu.com/ubuntu-wsl/resolute/daily-live/current/resolute-wsl-amd64.wsl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir D:\WSL\Ubuntu2604Clean&lt;br /&gt;
&lt;br /&gt;
wsl --import Ubuntu2604Clean `&lt;br /&gt;
  D:\WSL\Ubuntu2604Clean `&lt;br /&gt;
  ubuntu-26.04-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
wsl -d Ubuntu2604Clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 # wsl --umount support.vhdx&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10380</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10380"/>
		<updated>2026-09-23T07:51:01Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Clean Copy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete Distro ===&lt;br /&gt;
&lt;br /&gt;
 wsl --unregister &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Clean Copy ==&lt;br /&gt;
&lt;br /&gt;
If you try to start a new instance, it will just be a clone, not a new instance.&lt;br /&gt;
&lt;br /&gt;
Example - this will just clone, not create a new copy:&lt;br /&gt;
 wsl -d Ubuntu-26.04 --name newcopy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wsl -d Ubuntu-26.04 --name newcopy&amp;lt;/code&amp;gt; does not create a new distro from a pristine Ubuntu image. It launches or clones from the existing registered distro state, so any packages you&#039;ve already installed will still be there. Microsoft&#039;s WSL import/export model treats a distro as a filesystem image, not a package recipe.&lt;br /&gt;
&lt;br /&gt;
Option 1: Create a truly clean Ubuntu distro (recommended)&lt;br /&gt;
&lt;br /&gt;
Download a fresh Ubuntu rootfs and import it as a new distro. A separate imported distro starts from the contents of that root filesystem tarball, not from your existing Ubuntu installation.&lt;br /&gt;
&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/releases/&lt;br /&gt;
** ubuntu-24.04-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
** ubuntu-24.10-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/releases/jammy/current/ubuntu-jammy-wsl-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
* https://cloud-images.ubuntu.com/wsl/releases/noble/current/ubuntu-noble-wsl-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
** https://cloud-images.ubuntu.com/wsl/releases/noble/current/ubuntu-noble-wsl-amd64-24.04lts.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
NOTE: WSL image publication has moved to https://cdimages.ubuntu.com&lt;br /&gt;
&lt;br /&gt;
Noble 24:&lt;br /&gt;
* https://cdimages.ubuntu.com/ubuntu-wsl/noble/daily-live/current/noble-wsl-amd64.wsl&lt;br /&gt;
&lt;br /&gt;
Resolute 26:&lt;br /&gt;
* https://cdimages.ubuntu.com/ubuntu-wsl/resolute/daily-live/current/resolute-wsl-amd64.wsl&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir D:\WSL\Ubuntu2604Clean&lt;br /&gt;
&lt;br /&gt;
wsl --import Ubuntu2604Clean `&lt;br /&gt;
  D:\WSL\Ubuntu2604Clean `&lt;br /&gt;
  ubuntu-26.04-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
&lt;br /&gt;
wsl -d Ubuntu2604Clean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 # wsl --umount support.vhdx&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10379</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10379"/>
		<updated>2026-09-23T07:39:07Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Create VDH */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete Distro ===&lt;br /&gt;
&lt;br /&gt;
 wsl --unregister &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Clean Copy ==&lt;br /&gt;
&lt;br /&gt;
If you try to start a new instance, it will just be a clone, not a new instance.&lt;br /&gt;
&lt;br /&gt;
Example - this will just clone, not create a new copy:&lt;br /&gt;
 wsl -d Ubuntu-26.04 --name newcopy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wsl -d Ubuntu-26.04 --name newcopy&amp;lt;/code&amp;gt; does not create a new distro from a pristine Ubuntu image. It launches or clones from the existing registered distro state, so any packages you&#039;ve already installed will still be there. Microsoft&#039;s WSL import/export model treats a distro as a filesystem image, not a package recipe.&lt;br /&gt;
&lt;br /&gt;
Option 1: Create a truly clean Ubuntu distro (recommended)&lt;br /&gt;
&lt;br /&gt;
Download a fresh Ubuntu rootfs and import it as a new distro. A separate imported distro starts from the contents of that root filesystem tarball, not from your existing Ubuntu installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir D:\WSL\Ubuntu2604Clean&lt;br /&gt;
&lt;br /&gt;
wsl --import Ubuntu2604Clean&lt;br /&gt;
&lt;br /&gt;
D:\WSL\Ubuntu2604Clean&lt;br /&gt;
&lt;br /&gt;
ubuntu-26.04-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 # wsl --umount support.vhdx&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10378</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10378"/>
		<updated>2026-09-23T07:38:44Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Clean Copy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete Distro ===&lt;br /&gt;
&lt;br /&gt;
 wsl --unregister &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Clean Copy ==&lt;br /&gt;
&lt;br /&gt;
If you try to start a new instance, it will just be a clone, not a new instance.&lt;br /&gt;
&lt;br /&gt;
Example - this will just clone, not create a new copy:&lt;br /&gt;
 wsl -d Ubuntu-26.04 --name newcopy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wsl -d Ubuntu-26.04 --name newcopy&amp;lt;/code&amp;gt; does not create a new distro from a pristine Ubuntu image. It launches or clones from the existing registered distro state, so any packages you&#039;ve already installed will still be there. Microsoft&#039;s WSL import/export model treats a distro as a filesystem image, not a package recipe.&lt;br /&gt;
&lt;br /&gt;
Option 1: Create a truly clean Ubuntu distro (recommended)&lt;br /&gt;
&lt;br /&gt;
Download a fresh Ubuntu rootfs and import it as a new distro. A separate imported distro starts from the contents of that root filesystem tarball, not from your existing Ubuntu installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir D:\WSL\Ubuntu2604Clean&lt;br /&gt;
&lt;br /&gt;
wsl --import Ubuntu2604Clean&lt;br /&gt;
&lt;br /&gt;
D:\WSL\Ubuntu2604Clean&lt;br /&gt;
&lt;br /&gt;
ubuntu-26.04-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10377</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10377"/>
		<updated>2026-09-23T07:36:19Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Stop WSL Instance */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Delete Distro ===&lt;br /&gt;
&lt;br /&gt;
 wsl --unregister &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Clean Copy ==&lt;br /&gt;
&lt;br /&gt;
If you try to start a new instance, it will just be a clone, not a new instance.&lt;br /&gt;
&lt;br /&gt;
Example - this will just clone, not create a new copy:&lt;br /&gt;
 wsl -d Ubuntu-26.04 --name newcopy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wsl -d Ubuntu-26.04 --name newcopy&amp;lt;/code&amp;gt; does not create a new distro from a pristine Ubuntu image. It launches or clones from the existing registered distro state, so any packages you&#039;ve already installed will still be there. Microsoft&#039;s WSL import/export model treats a distro as a filesystem image, not a package recipe.&lt;br /&gt;
&lt;br /&gt;
Option 1: Create a truly clean Ubuntu distro (recommended)&lt;br /&gt;
&lt;br /&gt;
Download a fresh Ubuntu rootfs and import it as a new distro. A separate imported distro starts from the contents of that root filesystem tarball, not from your existing Ubuntu installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir D:\WSL\Ubuntu2604Clean&lt;br /&gt;
&lt;br /&gt;
wsl --import Ubuntu2604Clean `&lt;br /&gt;
&lt;br /&gt;
D:\WSL\Ubuntu2604Clean `&lt;br /&gt;
&lt;br /&gt;
ubuntu-26.04-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10376</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10376"/>
		<updated>2026-09-23T07:35:41Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Clean Copy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Clean Copy ==&lt;br /&gt;
&lt;br /&gt;
If you try to start a new instance, it will just be a clone, not a new instance.&lt;br /&gt;
&lt;br /&gt;
Example - this will just clone, not create a new copy:&lt;br /&gt;
 wsl -d Ubuntu-26.04 --name newcopy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wsl -d Ubuntu-26.04 --name newcopy&amp;lt;/code&amp;gt; does not create a new distro from a pristine Ubuntu image. It launches or clones from the existing registered distro state, so any packages you&#039;ve already installed will still be there. Microsoft&#039;s WSL import/export model treats a distro as a filesystem image, not a package recipe.&lt;br /&gt;
&lt;br /&gt;
Option 1: Create a truly clean Ubuntu distro (recommended)&lt;br /&gt;
&lt;br /&gt;
Download a fresh Ubuntu rootfs and import it as a new distro. A separate imported distro starts from the contents of that root filesystem tarball, not from your existing Ubuntu installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir D:\WSL\Ubuntu2604Clean&lt;br /&gt;
&lt;br /&gt;
wsl --import Ubuntu2604Clean `&lt;br /&gt;
&lt;br /&gt;
D:\WSL\Ubuntu2604Clean `&lt;br /&gt;
&lt;br /&gt;
ubuntu-26.04-server-cloudimg-amd64-wsl.rootfs.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10375</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10375"/>
		<updated>2026-09-23T07:33:55Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Clean Copy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Clean Copy ==&lt;br /&gt;
&lt;br /&gt;
If you try to start a new instance, it will just be a clone, not a new instance.&lt;br /&gt;
&lt;br /&gt;
Example - this will just clone, not create a new copy:&lt;br /&gt;
 wsl -d Ubuntu-26.04 --name newcopy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;wsl -d Ubuntu-26.04 --name newcopy&amp;lt;/code&amp;gt; does not create a new distro from a pristine Ubuntu image. It launches or clones from the existing registered distro state, so any packages you&#039;ve already installed will still be there. Microsoft&#039;s WSL import/export model treats a distro as a filesystem image, not a package recipe.&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10374</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10374"/>
		<updated>2026-09-23T07:33:39Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Clean Copy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Clean Copy ==&lt;br /&gt;
&lt;br /&gt;
If you try to start a new instance, it will just be a clone, not a new instance.&lt;br /&gt;
&lt;br /&gt;
Example - this will just clone, not create a new copy:&lt;br /&gt;
 wsl -d Ubuntu-26.04 --name newcopy&lt;br /&gt;
&lt;br /&gt;
{code}wsl -d Ubuntu-26.04 --name newcopy{code} does not create a new distro from a pristine Ubuntu image. It launches or clones from the existing registered distro state, so any packages you&#039;ve already installed will still be there. Microsoft&#039;s WSL import/export model treats a distro as a filesystem image, not a package recipe.&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10373</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10373"/>
		<updated>2026-09-23T07:33:21Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Clean Copy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Clean Copy ==&lt;br /&gt;
&lt;br /&gt;
If you try to start a new instance, it will just be a clone, not a new instance.&lt;br /&gt;
&lt;br /&gt;
Example - this will just clone, not create a new copy:&lt;br /&gt;
 wsl -d Ubuntu-26.04 --name newcopy&lt;br /&gt;
&lt;br /&gt;
```wsl -d Ubuntu-26.04 --name newcopy``` does not create a new distro from a pristine Ubuntu image. It launches or clones from the existing registered distro state, so any packages you&#039;ve already installed will still be there. Microsoft&#039;s WSL import/export model treats a distro as a filesystem image, not a package recipe.&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10372</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10372"/>
		<updated>2026-09-23T07:33:08Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Set Default User for WSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Clean Copy ==&lt;br /&gt;
&lt;br /&gt;
If you try to start a new instance, it will just be a clone, not a new instance.&lt;br /&gt;
&lt;br /&gt;
Example - this will just clone, not create a new copy:&lt;br /&gt;
 wsl -d Ubuntu-26.04 --name newcopy&lt;br /&gt;
&lt;br /&gt;
`wsl -d Ubuntu-26.04 --name newcopy` does not create a new distro from a pristine Ubuntu image. It launches or clones from the existing registered distro state, so any packages you&#039;ve already installed will still be there. Microsoft&#039;s WSL import/export model treats a distro as a filesystem image, not a package recipe.&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WinGet&amp;diff=10371</id>
		<title>WinGet</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WinGet&amp;diff=10371"/>
		<updated>2026-09-22T22:59:11Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Install WinGet from AppxPackage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WinGet ==&lt;br /&gt;
&lt;br /&gt;
 The &#039;&#039;&#039;Windows Package Manager&#039;&#039;&#039; (also known as &#039;&#039;&#039;winget&#039;&#039;&#039;) is a free and open-source package manager designed by Microsoft for Windows 10 and Windows 11. It consists of a command-line utility and a set of services for installing applications. Independent software vendors can use it as a distribution channel for their software packages. &amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Windows_Package_Manager&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Before deciding to develop Windows Package Manager, the team behind it explored Chocolatey, Scoop, Ninite, AppGet, Npackd and the PowerShell-based OneGet.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 The WinGet command line tool, which is the client interface to the Windows Package Manager service, requires Windows 10 version 1809 (build 17763) or later, or Windows 11.&lt;br /&gt;
&lt;br /&gt;
 WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).&lt;br /&gt;
&lt;br /&gt;
 The client requires Windows 10 1809 (build 17763) or later at this time. Windows Server 2019 is not supported as the Microsoft Store is not available nor are updated dependencies. It may be possible to install on Windows Server 2022, this should be considered experimental (not supported), and requires dependencies to be manually installed as well. &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-cli&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install WinGet ==&lt;br /&gt;
&lt;br /&gt;
=== Install WinGet from PowerShell 7 ===&lt;br /&gt;
&lt;br /&gt;
Quick:&lt;br /&gt;
 Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force&lt;br /&gt;
 Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery &lt;br /&gt;
 Repair-WinGetPackageManager -Force -Latest -AllUsers&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
Path to winget:&lt;br /&gt;
 %LOCALAPPDATA%\Microsoft\WindowsApps\winget&lt;br /&gt;
PATH ::&lt;br /&gt;
 %LOCALAPPDATA%\Microsoft\WindowsApps&lt;br /&gt;
&lt;br /&gt;
This seemed to work best on problematic systems:&lt;br /&gt;
&lt;br /&gt;
Run Powershell 7:&lt;br /&gt;
 pwsh&lt;br /&gt;
&lt;br /&gt;
Verify WinGet Module is not running:&lt;br /&gt;
 Get-Process | Where-Object { $_.Modules -ne $null -and $_.Modules.ModuleName -like &#039;*WinGet*&#039; } | Select-Object ProcessName, Id&lt;br /&gt;
&lt;br /&gt;
Install dependency&lt;br /&gt;
 *** BEST ***&lt;br /&gt;
 Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force&lt;br /&gt;
&lt;br /&gt;
Install Powershell Module: (Warns that PSGallery is Untrusted repository??)&lt;br /&gt;
 Install-Module -Name Microsoft.WinGet.Client&lt;br /&gt;
&lt;br /&gt;
 # If that doesn&#039;t work...&lt;br /&gt;
 # Install-Module -Name Microsoft.WinGet.Client -Force&lt;br /&gt;
 *** BEST ***&lt;br /&gt;
 Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery &lt;br /&gt;
&lt;br /&gt;
Repair Install: (This should work, but doesn&#039;t seem to)&lt;br /&gt;
 # Repair-WinGetPackageManager -AllUsers&lt;br /&gt;
&lt;br /&gt;
Force Repair Install:&lt;br /&gt;
 Repair-WinGetPackageManager -AllUsers&lt;br /&gt;
&lt;br /&gt;
 # If that doesn&#039;t work...&lt;br /&gt;
 # Repair-WinGetPackageManager -Force -Latest&lt;br /&gt;
 &lt;br /&gt;
 *** BEST ***&lt;br /&gt;
 Repair-WinGetPackageManager -Force -Latest -AllUsers&lt;br /&gt;
&lt;br /&gt;
Test Installing Windows Terminal:&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
 &lt;br /&gt;
 # winget install --scope user Microsoft.WindowsTerminal --source winget&lt;br /&gt;
 #(not supported) winget install --scope machine Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
=== Install from Microsoft Store ===&lt;br /&gt;
&lt;br /&gt;
Microsoft Store calls it App Installer (instead of WinGet??), and it is not searchable??  Have to find it on the online store here:&lt;br /&gt;
&lt;br /&gt;
 App Installer&lt;br /&gt;
 https://www.microsoft.com/p/app-installer/9nblggh4nns1&lt;br /&gt;
&lt;br /&gt;
AI says you can&#039;t find it in the Microsoft Store because:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Winget (Windows Package Manager) isn&#039;t directly searchable in the Microsoft Store because it&#039;s delivered as part of the App Installer package, which is often pre-installed but might be outdated or broken; the key is that the command-line tool winget handles app management, but its own core components need to be updated through the Store or command line when it&#039;s problematic, leading to a bit of a chicken-and-egg situation that requires manual updates or specific commands to fix. &lt;br /&gt;
&lt;br /&gt;
Why it seems missing or unsearchable:&lt;br /&gt;
* It&#039;s bundled: winget isn&#039;t a separate app in the Store; it&#039;s a feature of the &amp;quot;App Installer&amp;quot;.&lt;br /&gt;
* Outdated default: New Windows installs often have an old App Installer that can&#039;t update itself, requiring manual intervention.&lt;br /&gt;
* Async registration: It only becomes available after you&#039;ve logged into Windows once, triggering the Store to register it.&lt;br /&gt;
* Search issues: Sometimes, internal Store issues or ISV blocks prevent searching for the App Installer or packages within it. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install WinGet from AppxPackage ===&lt;br /&gt;
&lt;br /&gt;
 Install WinGet&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/package-manager/winget/&lt;br /&gt;
&lt;br /&gt;
 WinGet the Windows Package Manager is available on Windows 11, modern versions of Windows 10, and Windows Server 2025 as a part of the App Installer. The App Installer is a System Component delivered and updated by the Microsoft store on Windows Desktop versions, and via Updates on Windows Server 2025.&lt;br /&gt;
&lt;br /&gt;
 The WinGet command line tool is only supported on Windows 10 version 1809 (build 17763) or later. WinGet will not be available until you have logged into Windows as a user for the first time, triggering Microsoft Store to register the Windows Package Manager as part of an asynchronous process. If you have recently logged in as a user for the first time and find that WinGet is not yet available, you can open PowerShell and enter the following command to request this WinGet registration: [https://learn.microsoft.com/en-us/windows/package-manager/winget/]&lt;br /&gt;
&lt;br /&gt;
 Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe&lt;br /&gt;
&lt;br /&gt;
Direct Download: (as administrator powershell)&lt;br /&gt;
 wget.exe https://github.com/microsoft/winget-cli/releases/download/v1.29.290/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle&lt;br /&gt;
 Add-AppPackage -path .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
 winget update --all&lt;br /&gt;
 winget update --all -u&lt;br /&gt;
&lt;br /&gt;
=== Install WinGet from Chocolatey ===&lt;br /&gt;
&lt;br /&gt;
Hmmm This didn&#039;t work&lt;br /&gt;
 &amp;lt;s&amp;gt;choco install winget-cli&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== winget-cli GitHub ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/microsoft/winget-cli&lt;br /&gt;
&lt;br /&gt;
== Microsoft Store ==&lt;br /&gt;
&lt;br /&gt;
 https://www.microsoft.com/p/app-installer/9nblggh4nns1&lt;br /&gt;
&lt;br /&gt;
== Winget Version ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\&amp;gt; winget --version&lt;br /&gt;
v1.12.350&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List Installed Packages ==&lt;br /&gt;
&lt;br /&gt;
List Installed Packages:&lt;br /&gt;
 winget list&lt;br /&gt;
&lt;br /&gt;
List Installed Packages in User Scope:&lt;br /&gt;
 winget list --scope user&lt;br /&gt;
&lt;br /&gt;
List Installed Packages in Machine Scope:&lt;br /&gt;
 winget list --scope machine&lt;br /&gt;
&lt;br /&gt;
Get Package details, including scope:&lt;br /&gt;
 winget list &amp;lt;package&amp;gt; --details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; winget list github.cli --details&lt;br /&gt;
Failed when searching source; results will not be included: msstore&lt;br /&gt;
GitHub CLI [GitHub.cli]&lt;br /&gt;
Version: 2.96.0&lt;br /&gt;
Publisher: GitHub, Inc.&lt;br /&gt;
Local Identifier: ARP\Machine\X64\{B268D2DF-B30F-4883-8866-22B3CFCC2387}&lt;br /&gt;
Product Code: {b268d2df-b30f-4883-8866-22b3cfcc2387}&lt;br /&gt;
Upgrade Code: {8cfb9531-b959-4e1b-aa2e-4af0ffcc4af4}&lt;br /&gt;
Installer Category: msi&lt;br /&gt;
Installed Scope: Machine&lt;br /&gt;
Installed Architecture: X64&lt;br /&gt;
Installed Locale: en-US&lt;br /&gt;
Origin Source: winget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See if package installed in specific scope:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; winget list github.cli --scope user&lt;br /&gt;
Failed when searching source; results will not be included: msstore&lt;br /&gt;
No installed package found matching input criteria.&lt;br /&gt;
&lt;br /&gt;
C:\&amp;gt; winget list github.cli --scope machine&lt;br /&gt;
Failed when searching source; results will not be included: msstore&lt;br /&gt;
Name       Id         Version Source&lt;br /&gt;
-------------------------------------&lt;br /&gt;
GitHub CLI GitHub.cli 2.96.0  winget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Package ==&lt;br /&gt;
&lt;br /&gt;
 winget install &amp;lt;package&amp;gt;&lt;br /&gt;
 https://github.com/microsoft/winget-pkgs&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 winget install Microsoft.WindowsTerminal Microsoft.PowerToys Microsoft.VisualStudioCode&lt;br /&gt;
&lt;br /&gt;
=== Install Package to Install Scope ===&lt;br /&gt;
&lt;br /&gt;
Scope:&lt;br /&gt;
 #  --scope                              Select install scope (user or machine)&lt;br /&gt;
&lt;br /&gt;
NOTE: Default Scope is User Scope, if both scopes are available.  Some applications only have one scope, like WindowsTerminal (user scope only) and GitHub GH Client (machine scope only). GitHub GH Client will default to machine scope.&lt;br /&gt;
&lt;br /&gt;
User Scope&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget  --scope user&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget  --scope user&lt;br /&gt;
&lt;br /&gt;
 ## WARNING Only Machine Scope Supported with GitHub.cli&lt;br /&gt;
 #WRONG# winget install --id GitHub.cli --source winget&lt;br /&gt;
 #ERROR# winget install --id GitHub.cli --source winget  --scope user&lt;br /&gt;
&lt;br /&gt;
Machine Global Scope:&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget  --scope machine&lt;br /&gt;
&lt;br /&gt;
 ## Will not work (will throw error), as terminal machine global scope not supported!!&lt;br /&gt;
 #ERROR# winget install Microsoft.WindowsTerminal --source winget  --scope machine&lt;br /&gt;
&lt;br /&gt;
 # Only has machine scope, so all default will end up machine scope&lt;br /&gt;
 winget install --id GitHub.cli --source winget&lt;br /&gt;
 winget install --id GitHub.cli --source winget  --scope machine&lt;br /&gt;
&lt;br /&gt;
Verify:&lt;br /&gt;
 winget list --id GitHub.cli --details&lt;br /&gt;
&lt;br /&gt;
== Common Parameters ==&lt;br /&gt;
&lt;br /&gt;
Find package by exact ID:&lt;br /&gt;
 # -e, --exact           # Find package using exact match&lt;br /&gt;
 # --id &amp;lt;id&amp;gt;             # Filter results by id&lt;br /&gt;
 winget install -e --id Python.Python.3.14&lt;br /&gt;
&lt;br /&gt;
Specify Source:&lt;br /&gt;
 # -s, --source &amp;lt;src&amp;gt;    # Find package using the specified source (usually winget or msstore)&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget&lt;br /&gt;
&lt;br /&gt;
Install by Scope:&lt;br /&gt;
 # --scope user          # Install package user scope (default scope if manifest supports scopes)&lt;br /&gt;
 # --scope machine       # Install package machine scope&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
Install to a different location: (if manifest supports InstallLocation &amp;lt;INSTALLPATH&amp;gt;)&lt;br /&gt;
 # -l, --location &amp;lt;path&amp;gt; # Location to install to (if supported)&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget--scope machine --location c:\python314&lt;br /&gt;
&lt;br /&gt;
Short vs Long&lt;br /&gt;
 # -e, --exact           # Find package using exact match&lt;br /&gt;
 # --id &amp;lt;id&amp;gt;             # Filter results by id&lt;br /&gt;
 # -s, --source &amp;lt;src&amp;gt;    # Find package using the specified source (usually winget or msstore)&lt;br /&gt;
 # --scope user          # Install package user scope (default scope if manifest supports scopes)&lt;br /&gt;
 # --scope machine       # Install package machine scope&lt;br /&gt;
 # -l, --location &amp;lt;path&amp;gt; # Location to install to (if supported)&lt;br /&gt;
 winget install -e --id Python.Python.3.14 -s winget --scope machine -l c:\python314&lt;br /&gt;
 winget install --exact --id Python.Python.3.14 --source winget--scope machine --location c:\python314&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== List available update packages ===&lt;br /&gt;
&lt;br /&gt;
 winget update&lt;br /&gt;
&lt;br /&gt;
=== Update all Packages ===&lt;br /&gt;
&lt;br /&gt;
 winget update --all&lt;br /&gt;
&lt;br /&gt;
Other options:&lt;br /&gt;
  -u,--unknown,--include-unknown       Upgrade packages even if their current version cannot be determined&lt;br /&gt;
  --pinned,--include-pinned            Upgrade packages even if they have a non-blocking pin&lt;br /&gt;
&lt;br /&gt;
Upgrade all, including packages with unknown package versions:&lt;br /&gt;
 winget update --all --include-unknown&lt;br /&gt;
&lt;br /&gt;
== Upgrade All Packages ==&lt;br /&gt;
&lt;br /&gt;
Upgrade package:&lt;br /&gt;
 winget upgrade &amp;lt;package&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upgrade or Update&lt;br /&gt;
 ## &amp;gt; winget upgrade --help&lt;br /&gt;
 ##   The following command aliases are available:&lt;br /&gt;
 ##     update&lt;br /&gt;
 ## Note: winget will responde to both &#039;upgrade&#039; or &#039;update&#039; (alias for &#039;upgrade&#039;)&lt;br /&gt;
 winget upgrade &amp;lt;package&amp;gt;&lt;br /&gt;
 winget update &amp;lt;package&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upgrade all packages:&lt;br /&gt;
 # -r,--recurse,--all                   Upgrade all installed packages to latest if available&lt;br /&gt;
 winget upgrade --all&lt;br /&gt;
&lt;br /&gt;
Include unknown version packages:&lt;br /&gt;
 # -u,--unknown,--include-unknown       Upgrade packages even if their current version cannot be determined&lt;br /&gt;
 winget upgrade --all -u&lt;br /&gt;
&lt;br /&gt;
=== Exclude Package from Upgrade with Pin ===&lt;br /&gt;
&lt;br /&gt;
Example of Pinning Synergy (for example if you are still using Synergy Pro 1):&lt;br /&gt;
 winget pin add symless.synergy&lt;br /&gt;
&lt;br /&gt;
 winget pin remove symless.synergy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 winget pin list&lt;br /&gt;
 winget pin reset&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following sub-commands are available:&lt;br /&gt;
  add     Add a new pin&lt;br /&gt;
  remove  Remove a package pin&lt;br /&gt;
  list    List current pins&lt;br /&gt;
  reset   Reset pins&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Browse Winget Library ==&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/&lt;br /&gt;
&lt;br /&gt;
=== Winget Manifest Repository ===&lt;br /&gt;
&lt;br /&gt;
 https://github.com/microsoft/winget-pkgs/tree/master/manifests&lt;br /&gt;
&lt;br /&gt;
Sample Python 3.14 Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3/14/3.14.3&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.yaml&lt;br /&gt;
&lt;br /&gt;
== Manifest Package Structure ==&lt;br /&gt;
 Create your package manifest&lt;br /&gt;
 https://github.com/microsoft/winget-cli/blob/master/doc/windows/package-manager/package/manifest.md&lt;br /&gt;
&lt;br /&gt;
== Debugging Install Failures ==&lt;br /&gt;
&lt;br /&gt;
Debugging install failure: &amp;lt;ref&amp;gt;https://github.com/microsoft/terminal/issues/13676&amp;lt;/ref&amp;gt;&lt;br /&gt;
 # determine where logs are stored:&lt;br /&gt;
 winget --info&lt;br /&gt;
 # Install with extra logs enabled:&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --verbose-logs --source winget&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Winget Directories&lt;br /&gt;
-------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
=== Upgrade Winget ===&lt;br /&gt;
&lt;br /&gt;
OBVIOUSLY RUN IN ADMINISTRATOR WINDOW!!&lt;br /&gt;
&lt;br /&gt;
Winget appears to upgrade automatically - part of Windows upgrades, but if you need to force an upgrade...&lt;br /&gt;
&lt;br /&gt;
Winget upgrade with winget - this doesn&#039;t seem to work, but try it anyways: (admin window)&lt;br /&gt;
 winget upgrade Microsoft.AppInstaller --source winget --force&lt;br /&gt;
&lt;br /&gt;
If that fails, and needs a hard reset, try the hard install method, this always works: (Powershell Admin Window)&lt;br /&gt;
 ## Might be able to skip the first two steps?&lt;br /&gt;
 Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force&lt;br /&gt;
 Install-Module -Force -Repository PSGallery -Name Microsoft.WinGet.Client&lt;br /&gt;
 Repair-WinGetPackageManager -Force -Latest -AllUsers&lt;br /&gt;
&lt;br /&gt;
Verify version:&lt;br /&gt;
 winget --version&lt;br /&gt;
&lt;br /&gt;
Latest as of 2026.07.18:&lt;br /&gt;
 v1.29.280&lt;br /&gt;
&lt;br /&gt;
=== Install WindowsTerminal ===&lt;br /&gt;
 PackageIdentifier: Microsoft.WindowsTerminal  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: terminal  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Scope: user   &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
   - No machine scope!!! :-(&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget --force&lt;br /&gt;
&lt;br /&gt;
 ## SCOPE - default and only supported is user scope&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget --scope user&lt;br /&gt;
 #ERROR#  winget install Microsoft.WindowsTerminal --source winget --scope machine  # machine scope not supported (will say not found)&lt;br /&gt;
&lt;br /&gt;
Only Scope user is supported:&lt;br /&gt;
 winget install --scope user Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
Scope Machine is not supported:&lt;br /&gt;
 # (not supported - bad example) winget install --scope machine Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
Dep:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/UI/Xaml/2/8&lt;br /&gt;
** https://github.com/microsoft/microsoft-ui-xaml/releases/download/v2.8.6/Microsoft.UI.Xaml.2.8.x64.appx&lt;br /&gt;
&lt;br /&gt;
=== Install WindowsTerminal Preview ===&lt;br /&gt;
 PackageIdentifier: Microsoft.WindowsTerminal.Preview  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: terminal-preview  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Scope: NONE&lt;br /&gt;
  - No scopes defined at all!!  :-(&lt;br /&gt;
&lt;br /&gt;
Preview Version:&lt;br /&gt;
 winget install Microsoft.WindowsTerminal.Preview&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal.Preview --source winget&lt;br /&gt;
   #  Found Windows Terminal Preview [Microsoft.WindowsTerminal.Preview] Version 1.24.10212.0&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.yaml&lt;br /&gt;
&lt;br /&gt;
Preview Manifest:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.yaml&lt;br /&gt;
&lt;br /&gt;
=== Install Powershell ===&lt;br /&gt;
&lt;br /&gt;
Install version 7.5.4.0&lt;br /&gt;
 winget install Microsoft.PowerShell --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install --id Microsoft.PowerShell --source winget&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 winget upgrade --id Microsoft.PowerShell&lt;br /&gt;
&lt;br /&gt;
 winget upgrade --id Microsoft.PowerShell --source winget&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x64.msi&lt;br /&gt;
&lt;br /&gt;
=== Install OpenSSH ===&lt;br /&gt;
&lt;br /&gt;
Install OpenSSH Preview/Beta Version:&lt;br /&gt;
 # Preview version&lt;br /&gt;
 winget install Microsoft.OpenSSH.Preview&lt;br /&gt;
&lt;br /&gt;
 # Beta version&lt;br /&gt;
 winget install Microsoft.OpenSSH.Beta&lt;br /&gt;
&lt;br /&gt;
Install the Inbox Version: &amp;lt;ref&amp;gt;https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=powershell&amp;amp;pivots=windows-11&amp;lt;/ref&amp;gt;&lt;br /&gt;
 # In Admin window:&lt;br /&gt;
&lt;br /&gt;
 # Verify Admin&lt;br /&gt;
 (New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)&lt;br /&gt;
&lt;br /&gt;
 # Verify Capabilities&lt;br /&gt;
 Get-WindowsCapability -Online | Where-Object Name -like &#039;OpenSSH*&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Install the OpenSSH Client&lt;br /&gt;
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0&lt;br /&gt;
# alternative&lt;br /&gt;
Add-WindowsCapability -Online -Name OpenSSH.Client*&lt;br /&gt;
# alternative&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Install the OpenSSH Server&lt;br /&gt;
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0&lt;br /&gt;
# alternative&lt;br /&gt;
Add-WindowsCapability -Online -Name OpenSSH.Server*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the sshd service&lt;br /&gt;
 Start-Service sshd&lt;br /&gt;
&lt;br /&gt;
OPTIONAL but recommended, Set the service to start automatic:&lt;br /&gt;
 Set-Service -Name sshd -StartupType Automatic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify&lt;br /&gt;
if (!(Get-NetFirewallRule -Name &amp;quot;OpenSSH-Server-In-TCP&amp;quot; -ErrorAction SilentlyContinue)) {&lt;br /&gt;
    Write-Output &amp;quot;Firewall Rule &#039;OpenSSH-Server-In-TCP&#039; does not exist, creating it...&amp;quot;&lt;br /&gt;
    New-NetFirewallRule -Name &#039;OpenSSH-Server-In-TCP&#039; -DisplayName &#039;OpenSSH Server (sshd)&#039; -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22&lt;br /&gt;
} else {&lt;br /&gt;
    Write-Output &amp;quot;Firewall rule &#039;OpenSSH-Server-In-TCP&#039; has been created and exists.&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Open firewall:&lt;br /&gt;
 New-NetFirewallRule -Name sshd -DisplayName &#039;OpenSSH Server (sshd)&#039; -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22&lt;br /&gt;
&lt;br /&gt;
=== Install Git ===&lt;br /&gt;
 https://winget.run/pkg/Git/Git&lt;br /&gt;
  winget install -e --id Git.Git&lt;br /&gt;
 PackageIdentifier: Git.Git  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: git  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Scope: user/machine (seem identical)  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Location not supported&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 winget install git.git&lt;br /&gt;
 winget install git.git --source winget&lt;br /&gt;
 winget install git.git --scope machine --source winget  # seems identical to user scope&lt;br /&gt;
&lt;br /&gt;
Git install location:&lt;br /&gt;
 C:\Program Files\Git\cmd\git.exe&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget uninstall git --all&lt;br /&gt;
&lt;br /&gt;
Found:&lt;br /&gt;
 Found Git [Git.Git] Version 2.53.0&lt;br /&gt;
 Downloading https://github.com/git-for-windows/git/releases/download/v2.53.0.windows.1/Git-2.53.0-64-bit.exe&lt;br /&gt;
&lt;br /&gt;
Manifest:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/Git/Git&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.yaml&lt;br /&gt;
&lt;br /&gt;
==== Git-Bash ====&lt;br /&gt;
&lt;br /&gt;
git above includes git-bash&lt;br /&gt;
&lt;br /&gt;
==== GitHub GH Client ====&lt;br /&gt;
 &lt;br /&gt;
See [[GitHub/GH_Client]]&lt;br /&gt;
&lt;br /&gt;
Winget GH Repo Source:&lt;br /&gt;
 https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/GitHub/cli/&lt;br /&gt;
&lt;br /&gt;
Supported Scopes:&lt;br /&gt;
* machine&lt;br /&gt;
** default will install to machine scope&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 # By ID &amp;lt;ref&amp;gt;https://winget.run/pkg/GitHub/cli&amp;lt;/ref&amp;gt;&lt;br /&gt;
 winget install --id GitHub.cli&lt;br /&gt;
&lt;br /&gt;
 winget install --id GitHub.cli --source winget  # default to machine scope&lt;br /&gt;
 #ERROR# winget install --id GitHub.cli --scope user --source winget  # user scope not supported!&lt;br /&gt;
 winget install --id GitHub.cli --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install --id GitHub.cli --scope machine --source winget --version 2.87.2&lt;br /&gt;
&lt;br /&gt;
Upgrade&lt;br /&gt;
 winget upgrade --id GitHub.cli --source winget  # default to machine scope&lt;br /&gt;
 #ERROR# winget upgrade --id GitHub.cli --scope user --source winget  # user scope not supported!&lt;br /&gt;
 winget upgrade --id GitHub.cli --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
Configure for SSH as default:&lt;br /&gt;
 gh config set git_protocol ssh&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
 Found GitHub CLI [GitHub.cli] Version 2.87.2&lt;br /&gt;
 Found GitHub CLI [GitHub.cli] Version 2.96.0&lt;br /&gt;
&lt;br /&gt;
 Downloading https://github.com/cli/cli/releases/download/v2.87.2/gh_2.87.2_windows_amd64.msi&lt;br /&gt;
 Downloading https://github.com/cli/cli/releases/download/v2.96.0/gh_2.96.0_windows_amd64.msi&lt;br /&gt;
&lt;br /&gt;
Machine Scope Installs to:&lt;br /&gt;
 C:\Program Files\GitHub CLI\gh.exe&lt;br /&gt;
&lt;br /&gt;
Local Scope Installs to:&lt;br /&gt;
 n/a - user scope not supported&lt;br /&gt;
&lt;br /&gt;
Uninstall:&lt;br /&gt;
 winget uninstall --id GitHub.cli --all&lt;br /&gt;
&lt;br /&gt;
Package Reference:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GitHub/cli/2.96.0/GitHub.cli.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GitHub/cli/2.96.0/GitHub.cli.installer.yaml&lt;br /&gt;
&lt;br /&gt;
=== Install Strings ===&lt;br /&gt;
&lt;br /&gt;
Similar to the GNU Strings command.&lt;br /&gt;
 winget install -e --id Microsoft.Sysinternals.Strings&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id Microsoft.Sysinternals.Strings --scope machine&lt;br /&gt;
&lt;br /&gt;
 winget uninstall -e --id Microsoft.Sysinternals.Strings&lt;br /&gt;
&lt;br /&gt;
 Downloading https://download.sysinternals.com/files/Strings.zip&lt;br /&gt;
&lt;br /&gt;
Local scope:&lt;br /&gt;
 C:\Users\USER\AppData\Local\Microsoft\WinGet\Links\strings.ex&lt;br /&gt;
&lt;br /&gt;
Machine scope:&lt;br /&gt;
 C:\Program Files\WinGet\Links\strings.exe&lt;br /&gt;
&lt;br /&gt;
=== Install Notepad++ ===&lt;br /&gt;
&lt;br /&gt;
 winget install winget install notepad++&lt;br /&gt;
&lt;br /&gt;
Update Notepad++&lt;br /&gt;
 winget update Notepad++.Notepad++&lt;br /&gt;
&lt;br /&gt;
Notepad++ Install Location:&lt;br /&gt;
 &amp;quot;C:\Program Files\Notepad++\notepad++.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Downloading:&lt;br /&gt;
 https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.9/npp.8.9.Installer.x64.exe&lt;br /&gt;
&lt;br /&gt;
=== Install PowerToys ===&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.PowerToys&lt;br /&gt;
&lt;br /&gt;
=== Install VisualStudioCode ===&lt;br /&gt;
&lt;br /&gt;
User Install:&lt;br /&gt;
 winget install Microsoft.VisualStudioCode&lt;br /&gt;
&lt;br /&gt;
User Install Installed to:&lt;br /&gt;
 &amp;quot;C:\Users\USERNAME\AppData\Local\Programs\Microsoft VS Code\Code.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
User Install Download:&lt;br /&gt;
 https://vscode.download.prss.microsoft.com/dbazure/download/stable/94e8ae2b28cb5cc932b86e1070569c4463565c37/VSCodeUserSetup-x64-1.108.0.exe&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
System install:&lt;br /&gt;
 winget install Microsoft.VisualStudioCode --scope machine&lt;br /&gt;
&lt;br /&gt;
System Install Installed to:&lt;br /&gt;
 &amp;quot;C:\Program Files\Microsoft VS Code\Code.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
System Install Download:&lt;br /&gt;
 https://vscode.download.prss.microsoft.com/dbazure/download/stable/94e8ae2b28cb5cc932b86e1070569c4463565c37/VSCodeSetup-x64-1.108.0.exe&lt;br /&gt;
&lt;br /&gt;
=== Install Microsoft Store ===&lt;br /&gt;
&lt;br /&gt;
Should just be:&lt;br /&gt;
 winget install Microsoft.WindowsStore --source msstore&lt;br /&gt;
&lt;br /&gt;
But doesn&#039;t appear to be working?&lt;br /&gt;
&lt;br /&gt;
 winget source reset --force&lt;br /&gt;
 winget source update&lt;br /&gt;
&lt;br /&gt;
 winget settings --enable BypassCertificatePinningForMicrosoftStore&lt;br /&gt;
&lt;br /&gt;
=== Install Calculator ===&lt;br /&gt;
&lt;br /&gt;
 winget install Calculator --source msstore&lt;br /&gt;
  #  (Calculator&#039;s ID)&lt;br /&gt;
 winget install 9WZDNCRFHVN5 --source msstore&lt;br /&gt;
&lt;br /&gt;
=== Install WinDbg ===&lt;br /&gt;
&lt;br /&gt;
WinDbg [Microsoft.WinDbg] Version 1.2506.12002.0&lt;br /&gt;
&lt;br /&gt;
 winget install windbg --source winget&lt;br /&gt;
&lt;br /&gt;
=== Install SanDisk Dashboard ===&lt;br /&gt;
&lt;br /&gt;
For upgrade drive firmware:&lt;br /&gt;
 winget install SanDisk.Dashboard&lt;br /&gt;
&lt;br /&gt;
 winget install SanDisk.Dashboard --source winget&lt;br /&gt;
&lt;br /&gt;
 # Downloading https://sddashboarddownloads.sandisk.com/wdDashboard/DashboardSetupSA.exe&lt;br /&gt;
&lt;br /&gt;
=== Install RustDesk ===&lt;br /&gt;
&lt;br /&gt;
 winget install RustDesk.RustDesk&lt;br /&gt;
&lt;br /&gt;
 winget install RustDesk.RustDesk --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id RustDesk.RustDesk&lt;br /&gt;
&lt;br /&gt;
ref: https://winstall.app/apps/RustDesk.RustDesk&lt;br /&gt;
&lt;br /&gt;
 # Downloading https://github.com/rustdesk/rustdesk/releases/download/1.4.1/rustdesk-1.4.1-x86_64.exe&lt;br /&gt;
&lt;br /&gt;
Note: newer version 1.4.4 was available that winget did not detect!  :-(&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; winget list | findstr RustDesk&lt;br /&gt;
 RustDesk                                      RustDesk.RustDesk                             1.4.4              winget&lt;br /&gt;
&lt;br /&gt;
=== Install Discord ===&lt;br /&gt;
&lt;br /&gt;
 winget install Discord.Discord&lt;br /&gt;
&lt;br /&gt;
 winget install Discord.Discord --source winget&lt;br /&gt;
&lt;br /&gt;
=== Install HWiNFO ===&lt;br /&gt;
&lt;br /&gt;
 winget install hwinfo&lt;br /&gt;
&lt;br /&gt;
Start Menu -&amp;gt; HWiNFO 64 -&amp;gt; HWiNFO 64&lt;br /&gt;
 &amp;quot;C:\Program Files\HWiNFO64\HWiNFO64.EXE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 https://www.hwinfo.com/download/&lt;br /&gt;
&lt;br /&gt;
Downloading https://sourceforge.net/projects/hwinfo/files/Windows_Installer/hwi64_834.exe/download&lt;br /&gt;
&lt;br /&gt;
=== Install Synergy ===&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Symless.Synergy&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id=Symless.Synergy&lt;br /&gt;
&lt;br /&gt;
Upgrade:&lt;br /&gt;
 winget upgrade symless.synergy&lt;br /&gt;
&lt;br /&gt;
Example of Pinning Synergy (for example if you are still using Synergy Pro 1):&lt;br /&gt;
 winget pin add symless.synergy&lt;br /&gt;
&lt;br /&gt;
=== Install Wireshark ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id WiresharkFoundation.Wireshark --source winget&lt;br /&gt;
&lt;br /&gt;
Must install npcap capture device:&lt;br /&gt;
 https://npcap.com/#download&lt;br /&gt;
&lt;br /&gt;
=== OpenJDK ===&lt;br /&gt;
&lt;br /&gt;
 winget install openjdk --source winget&lt;br /&gt;
&lt;br /&gt;
Title:&lt;br /&gt;
 Microsoft Build of OpenJDK with Hotspot 17 [Microsoft.OpenJDK.17] Version 17.0.18.8&lt;br /&gt;
&lt;br /&gt;
Source:&lt;br /&gt;
 Downloading https://aka.ms/download-JDK/microsoft-JDK-17.0.18-windows-x64.msi#winget&lt;br /&gt;
&lt;br /&gt;
Installation location:&lt;br /&gt;
 C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot\&lt;br /&gt;
&lt;br /&gt;
Provides:&lt;br /&gt;
 java - C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot\bin\java.exe&lt;br /&gt;
 keytool - C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot\bin\keytool.exe&lt;br /&gt;
&lt;br /&gt;
=== Slack ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id SlackTechnologies.Slack&lt;br /&gt;
&lt;br /&gt;
 winget install SlackTechnologies.Slack --source winget&lt;br /&gt;
&lt;br /&gt;
=== Paint.net ===&lt;br /&gt;
&lt;br /&gt;
 winget install paint.net --source winget&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name      Id                 Source&lt;br /&gt;
-----------------------------------&lt;br /&gt;
paint.net dotPDN.PaintDotNet winget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IrfanView ===&lt;br /&gt;
&lt;br /&gt;
 https://winget.run/pkg/IrfanSkiljan/IrfanView&lt;br /&gt;
&lt;br /&gt;
  winget install -e --id IrfanSkiljan.IrfanView&lt;br /&gt;
&lt;br /&gt;
  winget install -e --id IrfanSkiljan.IrfanView --scope machine&lt;br /&gt;
&lt;br /&gt;
  winget install -e --id IrfanSkiljan.IrfanView --source winget --scope machine&lt;br /&gt;
  winget install -e --id IrfanSkiljan.IrfanView --source msstore --scope machine&lt;br /&gt;
&lt;br /&gt;
Both:&lt;br /&gt;
 winget install -e --id irfanview irfanview.plugins --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
==== IrfanView Plugins ====&lt;br /&gt;
&lt;br /&gt;
No &amp;quot;scope machine&amp;quot; for the plugins?&lt;br /&gt;
&lt;br /&gt;
 winget search irfanview.plugins&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id IrfanSkiljan.IrfanView.PlugIns&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id IrfanSkiljan.IrfanView.PlugIns --source winget&lt;br /&gt;
&lt;br /&gt;
Both:&lt;br /&gt;
 winget install -e --id irfanview irfanskiljan.irfanview.plugins --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
==== Python Install Manager (PIM) ====&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id Python.PythonInstallManager&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id Python.PythonInstallManager --scope machine&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id Python.PythonInstallManager --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
Installs to:&lt;br /&gt;
 C:\Program Files\PyManager\py.exe&lt;br /&gt;
&lt;br /&gt;
List installed python versions&lt;br /&gt;
 py --list&lt;br /&gt;
&lt;br /&gt;
Install Python 3.14 with PIM:&lt;br /&gt;
 py install 3.14&lt;br /&gt;
&lt;br /&gt;
Uninstall:&lt;br /&gt;
 winget uninstall Python.PythonInstallManager&lt;br /&gt;
&lt;br /&gt;
 winget uninstall Python.PythonInstallManager --all&lt;br /&gt;
 winget uninstall python.launcher --all-versions&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
 Found Python Install Manager [Python.PythonInstallManager] Version 25.2.240.0&lt;br /&gt;
 Downloading https://www.python.org/ftp/python/pymanager/python-manager-25.2.msi&lt;br /&gt;
&lt;br /&gt;
==== Python Launcher ====&lt;br /&gt;
&lt;br /&gt;
Use Python Install Manager version instead!&lt;br /&gt;
&lt;br /&gt;
NOTE: BAD WINGET PACKAGE - DOES NOT SUPPORT GLOBAL SCOPE&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Python.Launcher&lt;br /&gt;
 PackageIdentifier: Python.Launcher&lt;br /&gt;
 moniker: python-launcher &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Does NOT support install path &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Does NOT support scoped installs &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WARNING: AS YOU CAN SEE FROM THE MANIFEST, THE PYTHON LAUNCHER DOES NOT SUPPORT SCOPED INSTALLS - AND LOOKS LIKE A LOCAL SCOPE INSTALL&lt;br /&gt;
 &amp;lt;s&amp;gt;winget install python.launcher --source winget --scope machine&amp;lt;/s&amp;gt;&lt;br /&gt;
 &amp;lt;s&amp;gt; winget install python.launcher --source winget --scope user&amp;lt;/s&amp;gt;&lt;br /&gt;
 Error: No applicable installer found; see logs for more details.&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 winget install python.launcher --source winget&lt;br /&gt;
&lt;br /&gt;
 # Installs to: C:\Users\USER\AppData\Local\Programs\Python\Launcher\py.exe&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget remove python.launcher&lt;br /&gt;
&lt;br /&gt;
Remove all versions:&lt;br /&gt;
 winget remove python.launcher --all-versions&lt;br /&gt;
&lt;br /&gt;
Downloading: Downloading https://www.python.org/ftp/python/3.13.5/win32/launcher.msi&lt;br /&gt;
 Found Python Launcher [Python.Launcher] Version 3.13.5&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Launcher/3.13.5&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.yaml&lt;br /&gt;
&lt;br /&gt;
==== Python 3.14 ====&lt;br /&gt;
&lt;br /&gt;
 winget install python.python.3.14 --source winget --scope machine --location C:\python314&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Python.Python.3.14&lt;br /&gt;
 PackageVersion: 3.14.3 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: python3 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports install path &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports scoped installs &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install by direct ID:&lt;br /&gt;
 winget install -e --id Python.Python.3.14&lt;br /&gt;
&lt;br /&gt;
Install by Moniker:&lt;br /&gt;
 winget install python3&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
Install Globally:&lt;br /&gt;
 winget install python.python.3.14 --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
 Installs to: C:\Program Files\Python314\python.exe&lt;br /&gt;
&lt;br /&gt;
Install to C:\python314:&lt;br /&gt;
 winget install python.python.3.14 --source winget --scope machine --location C:\python314&lt;br /&gt;
 winget install python.python.3.14 -s winget --scope machine -l C:\python314&lt;br /&gt;
&lt;br /&gt;
 # hack:&lt;br /&gt;
 cp c:\python314\python.exe c:\python314\python314.exe&lt;br /&gt;
 cp c:\python314\python.exe c:\python314\python3.14.exe&lt;br /&gt;
&lt;br /&gt;
Install for User:&lt;br /&gt;
 winget install python.python.3.14 --source winget --scope User&lt;br /&gt;
 # or just&lt;br /&gt;
 winget install python.python.3.14 --source winget&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget remove python.python.3.14&lt;br /&gt;
&lt;br /&gt;
 # if you did the hack:&lt;br /&gt;
 del c:\python314\python314.exe&lt;br /&gt;
 del c:\python314\python3.14.exe&lt;br /&gt;
 rmdir c:\python314&lt;br /&gt;
&lt;br /&gt;
Remove all doesn&#039;t seem to be working: (not working???)&lt;br /&gt;
 winget list | grep -i python&lt;br /&gt;
 winget remove Python.Python --all-versions&lt;br /&gt;
 winget remove --id python.python.3 --all-versions&lt;br /&gt;
&lt;br /&gt;
Downloading: Downloading https://www.python.org/ftp/python/3.14.3/python-3.14.3-amd64.exe&lt;br /&gt;
 Found Python 3.14 [Python.Python.3.14] Version 3.14.3&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3/14/3.14.3&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.yaml&lt;br /&gt;
&lt;br /&gt;
==== Python 3.12 ====&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Python.Python.3.12&lt;br /&gt;
 PackageIdentifier: Python.Python.3.12 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: python3.12 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports install path &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports scoped installs &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install by direct ID:&lt;br /&gt;
 winget install -e --id Python.Python.3.12&lt;br /&gt;
&lt;br /&gt;
Install by Moniker:&lt;br /&gt;
 winget install python3.12&lt;br /&gt;
&lt;br /&gt;
Install Globally:&lt;br /&gt;
 winget install python.python.3.12 --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
 Installs to: C:\Program Files\Python312\python.exe&lt;br /&gt;
&lt;br /&gt;
Install to C:\python312:&lt;br /&gt;
 winget install python.python.3.12 --source winget --scope machine --location C:\python314&lt;br /&gt;
 winget install python.python.3.12 -s winget --scope machine -l C:\python312&lt;br /&gt;
&lt;br /&gt;
Install for User:&lt;br /&gt;
 winget install python.python.3.12 --source winget --scope User&lt;br /&gt;
 # or just&lt;br /&gt;
 winget install python.python.3.12 --source winget&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget remove python.python.3.12&lt;br /&gt;
&lt;br /&gt;
Downloading: Downloading https://www.python.org/ftp/python/3.12.10/python-3.12.10-amd64.exe&lt;br /&gt;
 Found Python 3.12 [Python.Python.3.12] Version 3.12.10&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3/12/3.12.10&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.yaml&lt;br /&gt;
&lt;br /&gt;
==== Python 3.8 ====&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Python.Python.3.8&lt;br /&gt;
 PackageIdentifier: Python.Python.3.8 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: python3.8 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports install path &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports scopped installs &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install by direct ID:&lt;br /&gt;
 winget install -e --id Python.Python.3.8&lt;br /&gt;
&lt;br /&gt;
Install by Moniker:&lt;br /&gt;
 winget install python3.8&lt;br /&gt;
&lt;br /&gt;
Install Globally:&lt;br /&gt;
 winget install python.python3.8 --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
Install to C:\python38:&lt;br /&gt;
 winget install python.python.3.8 --source winget --scope machine --location C:\python38&lt;br /&gt;
 winget install python.python.3.8 -s winget --scope machine -l C:\python38&lt;br /&gt;
&lt;br /&gt;
Install for User:&lt;br /&gt;
 winget install python.python3.8 --source winget --scope User&lt;br /&gt;
 # or just&lt;br /&gt;
 winget install python.python3.8 --source winget&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget remove python.python.3.8&lt;br /&gt;
&lt;br /&gt;
Downloading: https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe&lt;br /&gt;
 Found Python 3.8 [Python.Python.3.8] Version 3.8.10&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3/8/3.8.10&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.yaml&lt;br /&gt;
&lt;br /&gt;
=== GnuWin32 Tools ===&lt;br /&gt;
 https://winget.run/search?query=GnuWin32&lt;br /&gt;
&lt;br /&gt;
* GetText&lt;br /&gt;
* Make&lt;br /&gt;
* Zip&lt;br /&gt;
* Grep&lt;br /&gt;
* UnZip&lt;br /&gt;
* Tree&lt;br /&gt;
* FindUtils&lt;br /&gt;
* Tar&lt;br /&gt;
&lt;br /&gt;
==== GnuWin32.Grep ====&lt;br /&gt;
 https://winget.run/pkg/GnuWin32/Grep&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id GnuWin32.Grep&lt;br /&gt;
&lt;br /&gt;
 winget install GnuWin32.Grep --source winget&lt;br /&gt;
&lt;br /&gt;
Interactive: (even interactive does not auto add to path)&lt;br /&gt;
 # -i,--interactive&lt;br /&gt;
 winget install GnuWin32.Grep -i --source winget&lt;br /&gt;
&lt;br /&gt;
Uninstall:&lt;br /&gt;
 winget uninstall GnuWin32.Grep&lt;br /&gt;
&lt;br /&gt;
Installs to: (not included in path)&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32\bin&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32\bin\grep.exe&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32\bin\egrep.exe&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32\bin\fgrep.exe&lt;br /&gt;
&lt;br /&gt;
 Found GnuWin32: Grep [GnuWin32.Grep] Version 2.5.4&lt;br /&gt;
 Downloading https://sourceforge.net/projects/gnuwin32/files/grep/2.5.4/grep-2.5.4-setup.exe/download&lt;br /&gt;
&lt;br /&gt;
Manifest:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/GnuWin32/Grep&lt;br /&gt;
-&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GnuWin32/Grep/2.5.4/GnuWin32.Grep.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GnuWin32/Grep/2.5.4/GnuWin32.Grep.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GnuWin32/Grep/2.5.4/GnuWin32.Grep.yaml&lt;br /&gt;
&lt;br /&gt;
=== Thunderbird ===&lt;br /&gt;
&lt;br /&gt;
 winget install Mozilla.Thunderbird&lt;br /&gt;
&lt;br /&gt;
=== rsync ===&lt;br /&gt;
&lt;br /&gt;
Have not found a Windows rsync through winget directly yet, but there is two MSYS2 options:&lt;br /&gt;
&lt;br /&gt;
see [[Windows/rsync]]&lt;br /&gt;
&lt;br /&gt;
 winget install MSYS2.MSYS2 --source winget&lt;br /&gt;
 pacman -S rsync&lt;br /&gt;
&lt;br /&gt;
=== dig ===&lt;br /&gt;
&lt;br /&gt;
 winget install ISC.BIND&lt;br /&gt;
&lt;br /&gt;
 winget install ISC.BIND --scope machine&lt;br /&gt;
&lt;br /&gt;
 winget uninstall ISC.BIND&lt;br /&gt;
&lt;br /&gt;
 Found Bind 9 [ISC.Bind] Version 9.17.12&lt;br /&gt;
 Downloading https://downloads.isc.org/isc/bind9/9.17.12/BIND9.17.12.x64.zip&lt;br /&gt;
&lt;br /&gt;
 where dig:&lt;br /&gt;
   # scope machine:&lt;br /&gt;
   C:\Program Files\WinGet\Packages\ISC.Bind_Microsoft.Winget.Source_8wekyb3d8bbwe\dig.exe&lt;br /&gt;
   # scope default:&lt;br /&gt;
   C:\Users\USER\AppData\Local\Microsoft\WinGet\Packages\ISC.Bind_Microsoft.Winget.Source_8wekyb3d8bbwe\dig.exe&lt;br /&gt;
&lt;br /&gt;
==== dig app ====&lt;br /&gt;
&lt;br /&gt;
 winget uninstall dig&lt;br /&gt;
&lt;br /&gt;
NOTE: this is NOT the command line tool!!&lt;br /&gt;
&lt;br /&gt;
 winget install dig&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;DNS Lookup - dig nslookup&amp;quot;&lt;br /&gt;
 publisher: Publisher: Wuhan Bami Technology Co., Ltd.&lt;br /&gt;
 license: ms-windows-store://pdp/?ProductId=9MW6QQ8J0V6T&lt;br /&gt;
&lt;br /&gt;
 winget show dig&lt;br /&gt;
&lt;br /&gt;
=== MSYS2 ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id MSYS2.MSYS2&lt;br /&gt;
&lt;br /&gt;
 winget install MSYS2.MSYS2 --source winget&lt;br /&gt;
&lt;br /&gt;
 Found MSYS2 Installer [MSYS2.MSYS2] Version 20251213&lt;br /&gt;
 Downloading https://github.com/msys2/msys2-installer/releases/download/2025-12-13/msys2-x86_64-20251213.exe&lt;br /&gt;
&lt;br /&gt;
# Launch an MSYS2 terminal from the Start Menu (e.g., &amp;quot;MSYS2 UCRT64&amp;quot;)&lt;br /&gt;
# Update the core packages by running the following command in the MSYS2 terminal:&lt;br /&gt;
#* pacman -Syu&lt;br /&gt;
&lt;br /&gt;
=== Copilot ===&lt;br /&gt;
&lt;br /&gt;
 winget install GitHub.Copilot --source winget&lt;br /&gt;
&lt;br /&gt;
=== Copilot CLI ===&lt;br /&gt;
&lt;br /&gt;
 winget install GitHub.cli&lt;br /&gt;
&lt;br /&gt;
=== Keeper ===&lt;br /&gt;
&lt;br /&gt;
 # throwing access denied??&lt;br /&gt;
 winget install KeeperSecurity.KeeperDesktop --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install KeeperSecurity.KeeperDesktop --source winget&lt;br /&gt;
&lt;br /&gt;
 winget update KeeperSecurity.KeeperDesktop&lt;br /&gt;
&lt;br /&gt;
 winget uninstall KeeperSecurity.KeeperDesktop --all&lt;br /&gt;
&lt;br /&gt;
=== openssl client ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id ShiningLight.OpenSSL.Dev --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
 openssl s_client -connect api.github.com:443 -showcerts&lt;br /&gt;
 openssl s_client -connect api.github.com:443 -showcerts &amp;lt;/dev/null | grep issuer&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\OpenSSL-Win64\bin&lt;br /&gt;
&lt;br /&gt;
 fix path (powershell):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$oldPath = [Environment]::GetEnvironmentVariable(&amp;quot;Path&amp;quot;, &amp;quot;User&amp;quot;)&lt;br /&gt;
$newPath = $oldPath + &amp;quot;;C:\Program Files\OpenSSL-Win64\bin&amp;quot;&lt;br /&gt;
[Environment]::SetEnvironmentVariable(&amp;quot;Path&amp;quot;, $newPath, &amp;quot;User&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fix path (cmd) - tends to break things:&lt;br /&gt;
 setx PATH &amp;quot;%PATH%;C:\Program Files\OpenSSL-Win64\bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Found OpenSSL [ShiningLight.OpenSSL.Dev] Version 4.0.1&lt;br /&gt;
 Downloading https://slproweb.com/download/Win64OpenSSL-4_0_1.msi&lt;br /&gt;
&lt;br /&gt;
=== Windhawk ===&lt;br /&gt;
&lt;br /&gt;
 winget install RamenSoftware.Windhawk --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install RamenSoftware.Windhawk --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
See [[Windhawk]]&lt;br /&gt;
&lt;br /&gt;
=== ActiveState Perl ===&lt;br /&gt;
&lt;br /&gt;
No longer on Winget - use Strawberry Perl Instead&lt;br /&gt;
&lt;br /&gt;
=== StrawberryPerl ===&lt;br /&gt;
&lt;br /&gt;
 winget install StrawberryPerl.StrawberryPerl&lt;br /&gt;
&lt;br /&gt;
 https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54221_64bit/strawberry-perl-5.42.2.1-64bit.msi&lt;br /&gt;
&lt;br /&gt;
=== wget ===&lt;br /&gt;
&lt;br /&gt;
Alias for JernejSimoncic.Wget&lt;br /&gt;
 winget install wget&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id JernejSimoncic.Wget&lt;br /&gt;
&lt;br /&gt;
 winget install wget --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
User scope:&lt;br /&gt;
 C:\Users\USER\AppData\Local\Microsoft\WinGet\Links\wget.exe&lt;br /&gt;
&lt;br /&gt;
Machine scope:&lt;br /&gt;
 C:\Program Files\WinGet\Links\wget.exe&lt;br /&gt;
&lt;br /&gt;
 Downloading https://eternallybored.org/misc/wget/1.21.4/64/wget.exe&lt;br /&gt;
 Path environment variable modified; restart your shell to use the new value.&lt;br /&gt;
&lt;br /&gt;
=== Heavy Load ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id JAMSoftware.HeavyLoad&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id JAMSoftware.HeavyLoad --scope machine&lt;br /&gt;
&lt;br /&gt;
=== CPU-Z ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id CPUID.CPU-Z&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id CPUID.CPU-Z --scope machine&lt;br /&gt;
&lt;br /&gt;
 winget upgrade -e --id CPUID.CPU-Z&lt;br /&gt;
&lt;br /&gt;
=== HWMonitor ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id CPUID.HWMonitor --scope machine&lt;br /&gt;
&lt;br /&gt;
== Download and Redeploy ==&lt;br /&gt;
&lt;br /&gt;
Download Package on one System:&lt;br /&gt;
 winget download Calculator -s msstore&lt;br /&gt;
 winget download Calculator -s msstore --skip-license&lt;br /&gt;
&lt;br /&gt;
Copy folder to other system&lt;br /&gt;
 Microsoft Store package downloaded: C:\path\9WZDNCRFHVN5\Microsoft.WindowsCalculator_2019.603.2248.0_Universal.Desktop_X86.Arm.X64.appxbundle&lt;br /&gt;
&lt;br /&gt;
Redeploy it on another system:&lt;br /&gt;
 Add-AppxPackage -Path C:\path\9WZDNCRFHVN5\Calculator.appx&lt;br /&gt;
&lt;br /&gt;
Reference: &amp;lt;ref&amp;gt;https://techcommunity.microsoft.com/blog/windows-itpro-blog/use-winget-1-8-to-download-microsoft-store-apps/4204522&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WinGet Community Packages ==&lt;br /&gt;
&lt;br /&gt;
 Repology&lt;br /&gt;
 https://repology.org/&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
 Windows Package Manager Community Repository&lt;br /&gt;
 https://github.com/microsoft/winget-pkgs&lt;br /&gt;
&lt;br /&gt;
== Explore Windows Package Manager Tool ==&lt;br /&gt;
&lt;br /&gt;
 Explore the Windows Package Manager tool - Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/training/modules/explore-windows-package-manager-tool/?WT.mc_id=AZ-MVP-5004737&lt;br /&gt;
&lt;br /&gt;
== PowerShell ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS &amp;gt; import-module Microsoft.WinGet.Client -verbose&lt;br /&gt;
VERBOSE: Loading module from path &#039;C:\Program Files\WindowsPowerShell\Modules\Microsoft.WinGet.Client\1.8.1911\Microsoft.WinGet.Client.psd1&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Add-WinGetSource&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Assert-WinGetPackageManager&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Disable-WinGetSetting&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Enable-WinGetSetting&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Export-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Find-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetSettings&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetSource&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetUserSettings&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetVersion&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Install-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Remove-WinGetSource&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Repair-WinGetPackageManager&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Reset-WinGetSource&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Set-WinGetUserSettings&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Test-WinGetUserSettings&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Uninstall-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Update-WinGetPackage&#039;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Package List Command ==&lt;br /&gt;
&lt;br /&gt;
 winget list - The list command of the winget tool displays a list of the applications currently installed on your computer. The list command will show apps that were installed through the Windows Package Manager as well as apps that were installed by other means. &amp;lt;ref&amp;gt;https://learn.microsoft.com/en-us/windows/package-manager/winget/list&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example list:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\&amp;gt; winget list&lt;br /&gt;
Name                                  Id                                     Version              Available      Source&lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Windows Driver Package - Plantronics… ARP\Machine\X64\07AFE62D73C8799E9E568… 04/21/2009 5.1&lt;br /&gt;
Windows Driver Package - Cambridge S… ARP\Machine\X64\452AADC6DA7150831AEE7… 11/19/2021 4.0.2.0&lt;br /&gt;
7-Zip 24.09 (x64)                     7zip.7zip                              24.09                               winget&lt;br /&gt;
Windows Driver Package - Silicon Lab… ARP\Machine\X64\9E2C239D42290B984A9E2… 09/19/2016 6.7.4.261&lt;br /&gt;
CPUID CPU-Z 2.13                      CPUID.CPU-Z                            2.13                 2.15           winget&lt;br /&gt;
Firefox Developer Edition (x64 en-US) Mozilla.Firefox.DeveloperEdition       137.0                               winget&lt;br /&gt;
Git                                   Git.Git                                2.47.1.2             2.49.0         winget&lt;br /&gt;
Greenshot 1.2.10.6                    Greenshot.Greenshot                    1.2.10.6                            winget&lt;br /&gt;
IrfanView 4.70 (64-bit)               IrfanSkiljan.IrfanView                 4.70                                winget&lt;br /&gt;
Mozilla Firefox (x64 en-US)           Mozilla.Firefox                        136.0.2                             winget&lt;br /&gt;
Mozilla Thunderbird (x64 en-US)       Mozilla.Thunderbird.ESR                128.2.3              128.8.0        winget&lt;br /&gt;
Mozilla Maintenance Service           ARP\Machine\X64\MozillaMaintenanceSer… 136.0&lt;br /&gt;
Notepad++ (64-bit x64)                Notepad++.Notepad++                    8.7.7                8.7.8          winget&lt;br /&gt;
Microsoft 365 Apps for enterprise - … Microsoft.Office                       16.0.18526.20168                    winget&lt;br /&gt;
Microsoft OneDrive                    Microsoft.OneDrive                     25.035.0223.0003                    winget&lt;br /&gt;
VLC media player                      VideoLAN.VLC                           3.0.21                              winget&lt;br /&gt;
WinMerge 2.16.46.0 x64                WinMerge.WinMerge                      2.16.46.0                           winget&lt;br /&gt;
Synergy (64-bit)                      Symless.Synergy                        &amp;lt; 3.0.80.1-rc3       3.0.80.1-rc3   winget&lt;br /&gt;
Google Chrome                         Google.Chrome                          134.0.6998.165       134.0.6998.166 winget&lt;br /&gt;
Beyond Compare 4                      ScooterSoftware.BeyondCompare.4        4.4.7.28397                         winget&lt;br /&gt;
YubiKey Manager CLI                   Yubico.YubiKeyManagerCLI               5.5.0.0              5.6.1          winget&lt;br /&gt;
MongoDB Compass                       MongoDB.Compass.Full                   1.43.4.0             1.45.4.0       winget&lt;br /&gt;
Google Drive                          Google.GoogleDrive                     105.0.1.0                           winget&lt;br /&gt;
Microsoft SQL Server Compact 4.0 SP1… ARP\Machine\X64\{78909610-D229-459C-A… 4.0.8876.1&lt;br /&gt;
MongoDB Shell                         MongoDB.Shell                          2.2.15               2.4.2          winget&lt;br /&gt;
Intel(R) Serial IO                    ARP\Machine\X64\{9FD91C5C-44AE-4D9D-8… 30.100.2129.8&lt;br /&gt;
Microsoft Teams Meeting Add-in for M… ARP\Machine\X64\{A7AB73A3-CB10-4AA5-9… 1.24.31301&lt;br /&gt;
Wave                                  CommandLine.Wave                       0.9.3.0              0.11.2         winget&lt;br /&gt;
Adobe Acrobat (64-bit)                Adobe.Acrobat.Reader.64-bit            25.001.20435                        winget&lt;br /&gt;
RealVNC Viewer 7.13.1                 RealVNC.VNCViewer                      7.13.1.57                           winget&lt;br /&gt;
OpenHashTab version v3.0.4            namazso.OpenHashTab                    v3.0.4                              winget&lt;br /&gt;
Microsoft Update Health Tools         ARP\Machine\X64\{C6FD611E-7EFE-488C-A… 5.72.0.0&lt;br /&gt;
PowerShell 7-x64                      Microsoft.PowerShell                   7.5.0.0                             winget&lt;br /&gt;
PowerShell 7.4.6.0-x64                Microsoft.PowerShell                   7.4.6.0                             winget&lt;br /&gt;
GlobalProtect                         ARP\Machine\X64\{D69F9E89-516A-4543-9… 6.2.3&lt;br /&gt;
Slack (Machine)                       SlackTechnologies.Slack                4.42.120             4.43.49        winget&lt;br /&gt;
Paint.NET                             dotPDN.PaintDotNet                     5.1.4                5.1.7          winget&lt;br /&gt;
Microsoft Visual Studio Code          Microsoft.VisualStudioCode             1.98.2                              winget&lt;br /&gt;
Adobe Creative Cloud                  Adobe.CreativeCloud                    6.5.0.348                           winget&lt;br /&gt;
Citrix Workspace 2409                 ARP\Machine\X86\CitrixOnlinePluginPac… 24.9.10.28&lt;br /&gt;
GnuWin32: CoreUtils version 5.3.0     ARP\Machine\X86\CoreUtils-5.3.0_is1    5.3.0&lt;br /&gt;
FileZilla 3.68.1                      ARP\Machine\X86\FileZilla Client       3.68.1&lt;br /&gt;
Google Chrome Beta                    Google.Chrome.Beta.EXE                 135.0.7049.28                       winget&lt;br /&gt;
Microsoft Edge                        Microsoft.Edge                         134.0.3124.85                       winget&lt;br /&gt;
Prisma Access Browser                 ARP\Machine\X86\Palo Alto Networks Pr… 134.20.7.166&lt;br /&gt;
Windhawk v1.5.1                       RamenSoftware.Windhawk                 1.5.1                               winget&lt;br /&gt;
klogg                                 variar.klogg                           22.06.0.1289                        winget&lt;br /&gt;
WinSCP 6.3.7                          WinSCP.WinSCP                          6.3.7                               winget&lt;br /&gt;
YubiKey Manager                       Yubico.YubikeyManager                  1.2.6                               winget&lt;br /&gt;
Microsoft Visual C++ 2010  x86 Redis… Microsoft.VCRedist.2010.x86            10.0.30319           10.0.40219     winget&lt;br /&gt;
Intel(R) Chipset Device Software      ARP\Machine\X86\{2d8d3782-0c02-4681-8… 10.1.18838.8284&lt;br /&gt;
Microsoft Windows Desktop Runtime - … Microsoft.DotNet.DesktopRuntime.7      7.0.20                              winget&lt;br /&gt;
mControl                              ARP\Machine\X86\{64D959BF-0B83-4AD2-9… Unknown&lt;br /&gt;
Microsoft ASP.NET Core 7.0.20 - Shar… Microsoft.DotNet.AspNetCore.7          7.0.20                              winget&lt;br /&gt;
Python Launcher                       Python.Launcher                        &amp;gt; 3.12.0                            winget&lt;br /&gt;
Plantronics Hub Software              Poly.PlantronicsHub                    3.25.54307.37251                    winget&lt;br /&gt;
MobaXterm                             Mobatek.MobaXterm                      24.2.0.5220          25.1.0.5288    winget&lt;br /&gt;
Microsoft Search in Bing              ARP\Machine\X86\{C17F6DEF-D34C-4B75-9… 2.0.2&lt;br /&gt;
AI Suite 3                            ARP\Machine\X86\{CD36E28B-6023-469A-9… 3.03.36&lt;br /&gt;
Microsoft Teams VDI Citrix plugin     ARP\Machine\X86\{CF8A7E4B-3636-4E6B-9… 24.41.1.1&lt;br /&gt;
Microsoft Visual C++ 2015-2022 Redis… Microsoft.VCRedist.2015+.x64           14.42.34438.0                       winget&lt;br /&gt;
Microsoft Visual C++ 2015-2022 Redis… Microsoft.VCRedist.2015+.x86           14.42.34438.0                       winget&lt;br /&gt;
CrowdStrike Windows Sensor            ARP\Machine\X86\{d223a5fc-7936-4a58-8… 7.21.19205.0&lt;br /&gt;
Microsoft Windows Desktop Runtime - … Microsoft.DotNet.DesktopRuntime.8      8.0.14                              winget&lt;br /&gt;
Adobe Acrobat                         MSIX\AdobeAcrobatDCCoreApp_23.1.0.0_x… 23.1.0.0&lt;br /&gt;
Intel® Graphics Command Center        MSIX\AppUp.IntelGraphicsExperience_1.… 1.100.5688.0&lt;br /&gt;
Microsoft Clipchamp                   MSIX\Clipchamp.Clipchamp_4.1.10320.0_… 4.1.10320.0&lt;br /&gt;
Microsoft Teams                       Microsoft.Teams                        25044.2208.3471.2155                winget&lt;br /&gt;
AV1 Video Extension                   MSIX\Microsoft.AV1VideoExtension_1.3.… 1.3.4.0&lt;br /&gt;
AVC Encoder Video Extension           MSIX\Microsoft.AVCEncoderVideoExtensi… 1.1.13.0&lt;br /&gt;
Windows Application Compatibility En… MSIX\Microsoft.ApplicationCompatibili… 1.2411.16.0&lt;br /&gt;
News                                  MSIX\Microsoft.BingNews_4.56.242.0_x6… 4.56.242.0&lt;br /&gt;
Microsoft Bing                        MSIX\Microsoft.BingSearch_1.1.34.0_x6… 1.1.34.0&lt;br /&gt;
MSN Weather                           MSIX\Microsoft.BingWeather_4.54.63007… 4.54.63007.0&lt;br /&gt;
Copilot                               MSIX\Microsoft.Copilot_1.25024.146.0_… 1.25024.146.0&lt;br /&gt;
App Installer                         Microsoft.AppInstaller                 1.25.340.0                          winget&lt;br /&gt;
Xbox                                  MSIX\Microsoft.GamingApp_2501.1001.3.… 2501.1001.3.0&lt;br /&gt;
Get Help                              MSIX\Microsoft.GetHelp_10.2409.22951.… 10.2409.22951.0&lt;br /&gt;
HEIF Image Extensions                 MSIX\Microsoft.HEIFImageExtension_1.2… 1.2.3.0&lt;br /&gt;
HEVC Video Extensions from Device Ma… MSIX\Microsoft.HEVCVideoExtension_2.2… 2.2.9.0&lt;br /&gt;
MPEG-2 Video Extension                MSIX\Microsoft.MPEG2VideoExtension_1.… 1.0.61931.0&lt;br /&gt;
Microsoft Edge                        MSIX\Microsoft.MicrosoftEdge.Stable_1… 134.0.3124.66&lt;br /&gt;
Microsoft 365 (Office)                MSIX\Microsoft.MicrosoftOfficeHub_18.… 18.2405.1221.0&lt;br /&gt;
Solitaire &amp;amp; Casual Games              MSIX\Microsoft.MicrosoftSolitaireColl… 4.21.12110.0&lt;br /&gt;
Microsoft Sticky Notes                MSIX\Microsoft.MicrosoftStickyNotes_4… 4.0.6104.0&lt;br /&gt;
Microsoft .Net Native Framework Pack… MSIX\Microsoft.NET.Native.Framework.2… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Framework Pack… MSIX\Microsoft.NET.Native.Framework.2… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Runtime Packag… MSIX\Microsoft.NET.Native.Runtime.2.2… 2.2.28604.0&lt;br /&gt;
Microsoft .Net Native Runtime Packag… MSIX\Microsoft.NET.Native.Runtime.2.2… 2.2.28604.0&lt;br /&gt;
OfficePushNotificationsUtility        MSIX\Microsoft.OfficePushNotification… 16.0.18526.20168&lt;br /&gt;
OneDrive                              MSIX\Microsoft.OneDriveSync_25035.223… 25035.223.3.0&lt;br /&gt;
Outlook for Windows                   MSIX\Microsoft.OutlookForWindows_1.20… 1.2025.319.100&lt;br /&gt;
Paint                                 MSIX\Microsoft.Paint_11.2412.311.0_x6… 11.2412.311.0&lt;br /&gt;
Microsoft People                      MSIX\Microsoft.People_10.2202.100.0_x… 10.2202.100.0&lt;br /&gt;
Power Automate                        MSIX\Microsoft.PowerAutomateDesktop_1… 1.0.1394.0&lt;br /&gt;
Raw Image Extension                   MSIX\Microsoft.RawImageExtension_2.5.… 2.5.3.0&lt;br /&gt;
Snipping Tool                         MSIX\Microsoft.ScreenSketch_11.2501.7… 11.2501.7.0&lt;br /&gt;
Windows Security                      MSIX\Microsoft.SecHealthUI_1000.27703… 1000.27703.1006.0&lt;br /&gt;
Store Experience Host                 MSIX\Microsoft.StorePurchaseApp_22411… 22411.1401.1.0&lt;br /&gt;
Microsoft To Do                       MSIX\Microsoft.Todos_0.114.7122.0_x64… 0.114.7122.0&lt;br /&gt;
Microsoft.UI.Xaml.2.7                 Microsoft.UI.Xaml.2.7                  7.2409.9001.0                       winget&lt;br /&gt;
Microsoft.UI.Xaml.2.7                 Microsoft.UI.Xaml.2.7                  7.2409.9001.0                       winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                 Microsoft.UI.Xaml.2.8                  8.2501.31001.0                      winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                 Microsoft.UI.Xaml.2.8                  8.2501.31001.0                      winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Deskto… Microsoft.VCLibs.Desktop.14            14.0.33728.0                        winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Deskto… Microsoft.VCLibs.Desktop.14            14.0.33728.0                        winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtim… MSIX\Microsoft.VCLibs.140.00_14.0.335… 14.0.33519.0&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtim… MSIX\Microsoft.VCLibs.140.00_14.0.335… 14.0.33519.0&lt;br /&gt;
VP9 Video Extensions                  MSIX\Microsoft.VP9VideoExtensions_1.2… 1.2.2.0&lt;br /&gt;
Web Media Extensions                  MSIX\Microsoft.WebMediaExtensions_1.1… 1.1.1295.0&lt;br /&gt;
Webp Image Extensions                 MSIX\Microsoft.WebpImageExtension_1.1… 1.1.1711.0&lt;br /&gt;
Widgets Platform Runtime              MSIX\Microsoft.WidgetsPlatformRuntime… 1.6.8.0&lt;br /&gt;
Dev Home                              Microsoft.DevHome                      0.2000.758.0         0.2001.758.0   winget&lt;br /&gt;
Microsoft Photos                      MSIX\Microsoft.Windows.Photos_2025.11… 2025.11020.11001.0&lt;br /&gt;
Windows Clock                         MSIX\Microsoft.WindowsAlarms_11.2501.… 11.2501.7.0&lt;br /&gt;
WindowsAppRuntime.1.4                 MSIX\Microsoft.WindowsAppRuntime.1.4_… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.4                 MSIX\Microsoft.WindowsAppRuntime.1.4_… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.5                 MSIX\Microsoft.WindowsAppRuntime.1.5_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.5                 MSIX\Microsoft.WindowsAppRuntime.1.5_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.6                 MSIX\Microsoft.WindowsAppRuntime.1.6_… 6000.424.1611.0&lt;br /&gt;
WindowsAppRuntime.1.6                 MSIX\Microsoft.WindowsAppRuntime.1.6_… 6000.424.1611.0&lt;br /&gt;
Windows Calculator                    MSIX\Microsoft.WindowsCalculator_11.2… 11.2501.1.0&lt;br /&gt;
Windows Camera                        MSIX\Microsoft.WindowsCamera_2025.250… 2025.2501.1.0&lt;br /&gt;
Feedback Hub                          MSIX\Microsoft.WindowsFeedbackHub_1.2… 1.2411.17101.0&lt;br /&gt;
Windows Maps                          MSIX\Microsoft.WindowsMaps_1.0.64.0_x… 1.0.64.0&lt;br /&gt;
Windows Notepad                       MSIX\Microsoft.WindowsNotepad_11.2412… 11.2412.16.0&lt;br /&gt;
Windows Sound Recorder                MSIX\Microsoft.WindowsSoundRecorder_1… 1.0.80.0&lt;br /&gt;
Microsoft Store                       MSIX\Microsoft.WindowsStore_22502.140… 22502.1401.4.0&lt;br /&gt;
Windows Terminal                      Microsoft.WindowsTerminal              1.21.10351.0         1.22.10731.0   winget&lt;br /&gt;
Windows Package Manager Source (wing… MSIX\Microsoft.Winget.Source_2025.325… 2025.325.529.21&lt;br /&gt;
Xbox TCUI                             MSIX\Microsoft.Xbox.TCUI_1.24.10001.0… 1.24.10001.0&lt;br /&gt;
Xbox Game Bar Plugin                  MSIX\Microsoft.XboxGameOverlay_1.54.4… 1.54.4001.0&lt;br /&gt;
Game Bar                              MSIX\Microsoft.XboxGamingOverlay_7.22… 7.225.2131.0&lt;br /&gt;
Xbox Identity Provider                MSIX\Microsoft.XboxIdentityProvider_1… 12.115.1001.0&lt;br /&gt;
Game Speech Window                    MSIX\Microsoft.XboxSpeechToTextOverla… 1.97.17002.0&lt;br /&gt;
Phone Link                            MSIX\Microsoft.YourPhone_1.25022.70.0… 1.25022.70.0&lt;br /&gt;
Windows Media Player                  MSIX\Microsoft.ZuneMusic_11.2501.9.0_… 11.2501.9.0&lt;br /&gt;
Movies &amp;amp; TV                           MSIX\Microsoft.ZuneVideo_10.25011.100… 10.25011.10061.0&lt;br /&gt;
Quick Assist                          MSIX\MicrosoftCorporationII.QuickAssi… 2.0.32.0&lt;br /&gt;
Windows Subsystem for Linux           Microsoft.WSL                          2.3.26.0             2.4.12         winget&lt;br /&gt;
Windows Web Experience Pack           MSIX\MicrosoftWindows.Client.WebExper… 525.1301.30.0&lt;br /&gt;
Cross Device Experience Host          MSIX\MicrosoftWindows.CrossDevice_1.2… 1.25021.28.0&lt;br /&gt;
Mail and Calendar                     MSIX\microsoft.windowscommunicationsa… 16005.14326.22301.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\&amp;gt; winget list&lt;br /&gt;
Name                                                Id                                                     Version          Available Source&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
7-Zip 25.01 (x64)                                   7zip.7zip                                              25.01                      winget&lt;br /&gt;
Armoury Crate Service                               ARP\Machine\X64\Armoury Crate Service                  6.3.6.0&lt;br /&gt;
Audacity 3.7.6                                      XP8K0J757HHRDW                                         3.7.6                      msstore&lt;br /&gt;
Beyond Compare 4.4.7                                ScooterSoftware.BeyondCompare.4                        4.4.7.28397                winget&lt;br /&gt;
Docker Desktop                                      Docker.DockerDesktop                                   4.54.0                     winget&lt;br /&gt;
Git                                                 ARP\Machine\X64\Git_is1                                2.52.0&lt;br /&gt;
Greenshot 1.3.301                                   Greenshot.Greenshot                                    1.3.301          1.3.304   winget&lt;br /&gt;
HWiNFO® 64                                          REALiX.HWiNFO                                          8.34                       winget&lt;br /&gt;
IrfanView 4.73 (64-bit)                             IrfanSkiljan.IrfanView                                 4.73                       winget&lt;br /&gt;
Mozilla Firefox ESR (x64 en-US)                     Mozilla.Firefox.ESR                                    140.6.0                    winget&lt;br /&gt;
Mozilla Firefox ESR (x64 en-US)                     Mozilla.Firefox.ESR                                    140.5.0                    winget&lt;br /&gt;
Mozilla Maintenance Service                         ARP\Machine\X64\MozillaMaintenanceService              140.6.0&lt;br /&gt;
Notepad++ (64-bit x64)                              Notepad++.Notepad++                                    8.8.9                      winget&lt;br /&gt;
Microsoft 365 Apps for enterprise - en-us           Microsoft.Office                                       16.0.19328.20266           winget&lt;br /&gt;
Microsoft OneDrive                                  Microsoft.OneDrive                                     25.216.1104.0002           winget&lt;br /&gt;
OpenSSL 3.6.0 (64-bit)                              ShiningLight.OpenSSL.Dev                               3.6.0                      winget&lt;br /&gt;
Luma Island                                         ARP\Machine\X64\Steam App 2408820                      Unknown&lt;br /&gt;
VLC media player                                    VideoLAN.VLC                                           3.0.22                     winget&lt;br /&gt;
Vim 9.1 (x64)                                       ARP\Machine\X64\Vim 9.1                                9.1.1972&lt;br /&gt;
WinMerge x64                                        WinMerge.WinMerge                                      2.16.52.2                  winget&lt;br /&gt;
Webex                                               Cisco.Webex                                            45.12.0.33709              winget&lt;br /&gt;
Strawberry Perl (64-bit)                            StrawberryPerl.StrawberryPerl                          5.42.0.1                   winget&lt;br /&gt;
Microsoft Update Health Tools                       ARP\Machine\X64\{1FC1A6C2-576E-489A-9B4A-92D21F542136} 3.74.0.0&lt;br /&gt;
Synergy (64-bit)                                    Symless.Synergy                                        1.14.6           3.2.1     winget&lt;br /&gt;
ROG Live Service                                    ARP\Machine\X64\{2D87BFB6-C184-4A59-9BBE-3E20CE797631} 3.3.12.0&lt;br /&gt;
Paint.NET                                           dotPDN.PaintDotNet                                     5.1.11                     winget&lt;br /&gt;
Microsoft Defender for Endpoint plug-in for WSL     ARP\Machine\X64\{4BC7FC7C-21F9-4E26-9DBE-A6DEA45636FF} 1.25.825.2&lt;br /&gt;
Google Drive                                        Google.GoogleDrive                                     117.0.0.0                  winget&lt;br /&gt;
YubiKey Manager CLI                                 Yubico.YubiKeyManagerCLI                               5.8.0.0                    winget&lt;br /&gt;
Zoom Workplace (64-bit)                             Zoom.Zoom                                              6.6.23272                  winget&lt;br /&gt;
Microsoft Teams Meeting Add-in for Microsoft Office ARP\Machine\X64\{A7AB73A3-CB10-4AA5-9D38-6AEFFBDE4C91} 1.25.28902&lt;br /&gt;
Windows PC Health Check                             Microsoft.WindowsPCHealthCheck                         4.0.2410.23001             winget&lt;br /&gt;
AURA lighting effect add-on x64                     ARP\Machine\X64\{C5A4A164-4428-4931-B728-96EEF0FA3C44} 0.0.49&lt;br /&gt;
GlobalProtect                                       ARP\Machine\X64\{D69F9E89-516A-4543-9DE1-A4BD75CE851C} 6.2.3&lt;br /&gt;
PowerShell 7-x64                                    Microsoft.PowerShell                                   7.5.4.0                    winget&lt;br /&gt;
PowerShell 7.5.3.0-x64                              Microsoft.PowerShell                                   7.5.3.0                    winget&lt;br /&gt;
Microsoft Visual Studio Code                        Microsoft.VisualStudioCode                             1.107.0                    winget&lt;br /&gt;
OpenHashTab                                         namazso.OpenHashTab                                    3.1.1                      winget&lt;br /&gt;
Windows Subsystem for Linux Update                  ARP\Machine\X64\{F8474A47-8B5D-4466-ACE3-78EAB3BF21A8} 5.10.102.1&lt;br /&gt;
Citrix Workspace 2402                               ARP\Machine\X86\CitrixOnlinePluginPackWeb              24.2.3001.9&lt;br /&gt;
GnuWin32: CoreUtils version 5.3.0                   ARP\Machine\X86\CoreUtils-5.3.0_is1                    5.3.0&lt;br /&gt;
FileZilla 3.69.5                                    ARP\Machine\X86\FileZilla Client                       3.69.5&lt;br /&gt;
Google Chrome                                       Google.Chrome.EXE                                      143.0.7499.41              winget&lt;br /&gt;
Microsoft Edge                                      Microsoft.Edge                                         143.0.3650.80              winget&lt;br /&gt;
Steam                                               Valve.Steam                                            2.10.91.91                 winget&lt;br /&gt;
Dashboard                                           SanDisk.Dashboard                                      5.1.2.2                    winget&lt;br /&gt;
Windhawk v1.7.3                                     RamenSoftware.Windhawk                                 1.7.3                      winget&lt;br /&gt;
GameSDK Service                                     ARP\Machine\X86\{021d69c3-d686-4a94-8fb5-fd1ee782fb14} 1.0.5.0&lt;br /&gt;
Microsoft Visual C++ v14 Redistributable (x86) - 1… Microsoft.VCRedist.2015+.x86                           14.50.35719.0              winget&lt;br /&gt;
AURA lighting effect add-on                         ARP\Machine\X86\{1E2EA04B-FCA7-457E-B6F4-F33E1858E859} 0.0.49&lt;br /&gt;
Microsoft Intune Management Extension               ARP\Machine\X86\{262D9D60-DB70-49A1-9880-B5E140727909} 1.97.107.0&lt;br /&gt;
Microsoft Windows Desktop Runtime - 8.0.22 (x86)    Microsoft.DotNet.DesktopRuntime.8                      8.0.22                     winget&lt;br /&gt;
ASUS Framework Service                              ARP\Machine\X86\{339A6383-7862-46DA-8A9D-E84180EF9424} 4.2.4.7&lt;br /&gt;
Microsoft Purview Information Protection            Microsoft.PurviewInformationProtection                 3.1.310.0                  winget&lt;br /&gt;
Microsoft Visual C++ v14 Redistributable (x64) - 1… Microsoft.VCRedist.2015+.x64                           14.50.35719.0              winget&lt;br /&gt;
Microsoft .NET Runtime - 8.0.22 (x64)               Microsoft.DotNet.Runtime.8                             8.0.22                     winget&lt;br /&gt;
Printer Installer Client                            ARP\Machine\X86\{A9DE0858-9DDD-4E1B-B041-C2AA90DCBF74} 25.0.0.1074&lt;br /&gt;
Microsoft Windows Desktop Runtime - 6.0.36 (x86)    Microsoft.DotNet.DesktopRuntime.6                      6.0.36                     winget&lt;br /&gt;
AURA Service                                        ARP\Machine\X86\{cabfa89d-a59c-47ac-8d18-2032a1f72f20} 3.08.59&lt;br /&gt;
Signal 7.82.0                                       OpenWhisperSystems.Signal                              7.82.0                     winget&lt;br /&gt;
MongoDB Compass                                     MongoDB.Compass.Full                                   1.47.1           1.48.2.0  winget&lt;br /&gt;
Armoury Crate                                       MSIX\ASUSAmbientHAL64_1.0.0.3_neutral__ecvjzhf6c4w7r   1.0.0.3&lt;br /&gt;
Intel® Graphics Command Center                      MSIX\AppUp.IntelGraphicsExperience_1.100.5688.0_x64__… 1.100.5688.0&lt;br /&gt;
Intel® OptaneTM Memory and Storage Management       MSIX\AppUp.IntelOptaneMemoryandStorageManagement_18.1… 18.1.1042.0&lt;br /&gt;
Ubuntu 24.04.1 LTS                                  Canonical.Ubuntu.2404                                  2404.1.26.0                winget&lt;br /&gt;
Microsoft Clipchamp                                 MSIX\Clipchamp.Clipchamp_4.4.10420.0_x64__yxz26nhyzhs… 4.4.10420.0&lt;br /&gt;
Kali Linux                                          OffSec.KaliLinux                                       2025.3.0.0                 winget&lt;br /&gt;
Keeper® Password Manager                            KeeperSecurity.KeeperDesktop                           17.4.1.0                   winget&lt;br /&gt;
Microsoft Teams                                     Microsoft.Teams                                        25306.804.4102.…           winget&lt;br /&gt;
AV1 Video Extension                                 MSIX\Microsoft.AV1VideoExtension_2.0.6.0_x64__8wekyb3… 2.0.6.0&lt;br /&gt;
AVC Encoder Video Extension                         MSIX\Microsoft.AVCEncoderVideoExtension_1.1.21.0_x64_… 1.1.21.0&lt;br /&gt;
Windows Application Compatibility Enhancements      MSIX\Microsoft.ApplicationCompatibilityEnhancements_1… 1.2511.9.0&lt;br /&gt;
News                                                MSIX\Microsoft.BingNews_4.55.62231.0_x64__8wekyb3d8bb… 4.55.62231.0&lt;br /&gt;
Microsoft Bing                                      MSIX\Microsoft.BingSearch_1.1.40.0_x64__8wekyb3d8bbwe  1.1.40.0&lt;br /&gt;
MSN Weather                                         MSIX\Microsoft.BingWeather_4.54.63029.0_x64__8wekyb3d… 4.54.63029.0&lt;br /&gt;
Company Portal                                      MSIX\Microsoft.CompanyPortal_11.2.1672.0_x64__8wekyb3… 11.2.1672.0&lt;br /&gt;
Copilot                                             MSIX\Microsoft.Copilot_1.25114.55.0_x64__8wekyb3d8bbwe 1.25114.55.0&lt;br /&gt;
App Installer                                       Microsoft.AppInstaller                                 1.27.350.0                 winget&lt;br /&gt;
Microsoft Edge Game Assist                          MSIX\Microsoft.Edge.GameAssist_1.0.3456.0_x64__8wekyb… 1.0.3456.0&lt;br /&gt;
Xbox                                                MSIX\Microsoft.GamingApp_2512.1001.34.0_x64__8wekyb3d… 2512.1001.34.0&lt;br /&gt;
Get Help                                            MSIX\Microsoft.GetHelp_10.2409.32612.0_x64__8wekyb3d8… 10.2409.32612.0&lt;br /&gt;
HEIF Image Extension                                MSIX\Microsoft.HEIFImageExtension_1.2.23.0_x64__8weky… 1.2.23.0&lt;br /&gt;
HEVC Video Extensions from Device Manufacturer      MSIX\Microsoft.HEVCVideoExtension_2.4.39.0_x64__8weky… 2.4.39.0&lt;br /&gt;
MPEG-2 Video Extension                              MSIX\Microsoft.MPEG2VideoExtension_1.2.13.0_x64__8wek… 1.2.13.0&lt;br /&gt;
Paint 3D                                            MSIX\Microsoft.MSPaint_6.1907.29027.0_x64__8wekyb3d8b… 6.1907.29027.0&lt;br /&gt;
3D Viewer                                           MSIX\Microsoft.Microsoft3DViewer_1.0.125.0_x64__8weky… 1.0.125.0&lt;br /&gt;
Microsoft Edge                                      MSIX\Microsoft.MicrosoftEdge.Stable_140.0.3485.94_neu… 140.0.3485.94&lt;br /&gt;
Microsoft 365 Copilot                               MSIX\Microsoft.MicrosoftOfficeHub_19.2512.39051.0_x64… 19.2512.39051.0&lt;br /&gt;
Solitaire &amp;amp; Casual Games                            MSIX\Microsoft.MicrosoftSolitaireCollection_4.24.1204… 4.24.12040.0&lt;br /&gt;
Microsoft Sticky Notes                              MSIX\Microsoft.MicrosoftStickyNotes_4.0.6104.0_x64__8… 4.0.6104.0&lt;br /&gt;
Mixed Reality Portal                                MSIX\Microsoft.MixedReality.Portal_2000.21051.1282.0_… 2000.21051.1282…&lt;br /&gt;
Microsoft .Net Native Framework Package 1.7         MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x… 1.7.27413.0&lt;br /&gt;
Microsoft .Net Native Framework Package 1.7         MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x… 1.7.27413.0&lt;br /&gt;
Microsoft .Net Native Framework Package 2.2         MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Framework Package 2.2         MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 1.7           MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x64… 1.7.27422.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 1.7           MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x86… 1.7.27422.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 2.2           MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64… 2.2.28604.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 2.2           MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x86… 2.2.28604.0&lt;br /&gt;
Microsoft.Office.ActionsServer                      MSIX\Microsoft.Office.ActionsServer_16.0.19328.20266_… 16.0.19328.20266&lt;br /&gt;
OneNote for Windows 10                              MSIX\Microsoft.Office.OneNote_16.14326.22589.0_x64__8… 16.14326.22589.0&lt;br /&gt;
OfficePushNotificationsUtility                      MSIX\Microsoft.OfficePushNotificationUtility_16.0.193… 16.0.19328.20266&lt;br /&gt;
OneDrive                                            MSIX\Microsoft.OneDriveSync_25216.1104.2.0_neutral__8… 25216.1104.2.0&lt;br /&gt;
Outlook for Windows                                 MSIX\Microsoft.OutlookForWindows_1.2025.1121.100_x64_… 1.2025.1121.100&lt;br /&gt;
Paint                                               MSIX\Microsoft.Paint_11.2510.311.0_x64__8wekyb3d8bbwe  11.2510.311.0&lt;br /&gt;
Microsoft People                                    MSIX\Microsoft.People_10.2202.100.0_x64__8wekyb3d8bbwe 10.2202.100.0&lt;br /&gt;
Power Automate                                      MSIX\Microsoft.PowerAutomateDesktop_1.0.2046.0_x64__8… 1.0.2046.0&lt;br /&gt;
Raw Image Extension                                 MSIX\Microsoft.RawImageExtension_2.5.7.0_x64__8wekyb3… 2.5.7.0&lt;br /&gt;
Snipping Tool                                       MSIX\Microsoft.ScreenSketch_11.2510.31.0_x64__8wekyb3… 11.2510.31.0&lt;br /&gt;
Windows Security                                    MSIX\Microsoft.SecHealthUI_1000.29429.1000.0_x64__8we… 1000.29429.1000…&lt;br /&gt;
Microsoft Engagement Framework                      MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0… 10.0.23012.0&lt;br /&gt;
Microsoft Engagement Framework                      MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0… 10.0.23012.0&lt;br /&gt;
Skype                                               MSIX\Microsoft.SkypeApp_15.150.3125.0_x64__kzf8qxf38z… 15.150.3125.0&lt;br /&gt;
Start Experiences App                               MSIX\Microsoft.StartExperiencesApp_1.179.4.0_x64__8we… 1.179.4.0&lt;br /&gt;
Store Experience Host                               MSIX\Microsoft.StorePurchaseApp_22509.1401.1.0_x64__8… 22509.1401.1.0&lt;br /&gt;
Microsoft To Do                                     MSIX\Microsoft.Todos_0.148.3611.0_x64__8wekyb3d8bbwe   0.148.3611.0&lt;br /&gt;
Microsoft.UI.Xaml.2.0                               MSIX\Microsoft.UI.Xaml.2.0_2.1810.18004.0_x64__8wekyb… 2.1810.18004.0&lt;br /&gt;
Microsoft.UI.Xaml.2.3                               MSIX\Microsoft.UI.Xaml.2.3_2.32002.13001.0_x64__8weky… 2.32002.13001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.3                               MSIX\Microsoft.UI.Xaml.2.3_2.32002.13001.0_x86__8weky… 2.32002.13001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.4                               MSIX\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x64__8wekyb… 2.42007.9001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.4                               MSIX\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x86__8wekyb… 2.42007.9001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.7                               Microsoft.UI.Xaml.2.7                                  7.2409.9001.0              winget&lt;br /&gt;
Microsoft.UI.Xaml.2.7                               Microsoft.UI.Xaml.2.7                                  7.2409.9001.0              winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                               Microsoft.UI.Xaml.2.8                                  8.2501.31001.0             winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                               Microsoft.UI.Xaml.2.8                                  8.2501.31001.0             winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Desktop Runtime Pack… Microsoft.VCLibs.Desktop.14                            14.0.33728.0               winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Desktop Runtime Pack… Microsoft.VCLibs.Desktop.14                            14.0.33728.0               winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtime Package       MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x64__8wekyb… 14.0.33519.0&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtime Package       MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x86__8wekyb… 14.0.33519.0&lt;br /&gt;
VP9 Video Extensions                                MSIX\Microsoft.VP9VideoExtensions_1.2.12.0_x64__8weky… 1.2.12.0&lt;br /&gt;
Web Media Extensions                                MSIX\Microsoft.WebMediaExtensions_1.2.17.0_x64__8weky… 1.2.17.0&lt;br /&gt;
WebP Image Extension                                MSIX\Microsoft.WebpImageExtension_1.2.14.0_x64__8weky… 1.2.14.0&lt;br /&gt;
Widgets Platform Runtime                            MSIX\Microsoft.WidgetsPlatformRuntime_1.6.14.0_x64__8… 1.6.14.0&lt;br /&gt;
Microsoft Photos                                    MSIX\Microsoft.Windows.Photos_2025.11110.18001.0_x64_… 2025.11110.1800…&lt;br /&gt;
Windows Clock                                       MSIX\Microsoft.WindowsAlarms_11.2510.4.0_x64__8wekyb3… 11.2510.4.0&lt;br /&gt;
WindowsAppRuntime.1.4                               MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.4                               MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.5                               MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.5                               MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.6                               MSIX\Microsoft.WindowsAppRuntime.1.6_6000.519.329.0_x… 6000.519.329.0&lt;br /&gt;
WindowsAppRuntime.1.6                               MSIX\Microsoft.WindowsAppRuntime.1.6_6000.519.329.0_x… 6000.519.329.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.652.1806.0_… 7000.652.1806.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.676.1651.0_… 7000.676.1651.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.676.1651.0_… 7000.676.1651.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.642.119.0_x… 8000.642.119.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.675.1142.0_… 8000.675.1142.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.675.1142.0_… 8000.675.1142.0&lt;br /&gt;
Windows Calculator                                  MSIX\Microsoft.WindowsCalculator_11.2508.4.0_x64__8we… 11.2508.4.0&lt;br /&gt;
Windows Camera                                      MSIX\Microsoft.WindowsCamera_2025.2510.2.0_x64__8weky… 2025.2510.2.0&lt;br /&gt;
Feedback Hub                                        MSIX\Microsoft.WindowsFeedbackHub_1.2510.14102.0_x64_… 1.2510.14102.0&lt;br /&gt;
Windows Maps                                        MSIX\Microsoft.WindowsMaps_1.0.65.0_x64__8wekyb3d8bbwe 1.0.65.0&lt;br /&gt;
Windows Notepad                                     MSIX\Microsoft.WindowsNotepad_11.2508.38.0_x64__8weky… 11.2508.38.0&lt;br /&gt;
Windows Sound Recorder                              MSIX\Microsoft.WindowsSoundRecorder_1.1.47.0_x64__8we… 1.1.47.0&lt;br /&gt;
Microsoft Store                                     MSIX\Microsoft.WindowsStore_22510.1401.4.0_x64__8weky… 22510.1401.4.0&lt;br /&gt;
Windows Terminal                                    Microsoft.WindowsTerminal                              1.23.12811.0               winget&lt;br /&gt;
Windows Package Manager Source (winget) V2          MSIX\Microsoft.Winget.Source_2025.1213.819.46_neutral… 2025.1213.819.46&lt;br /&gt;
Xbox TCUI                                           MSIX\Microsoft.Xbox.TCUI_1.24.10001.0_x64__8wekyb3d8b… 1.24.10001.0&lt;br /&gt;
Xbox Console Companion                              MSIX\Microsoft.XboxApp_48.104.4001.0_x64__8wekyb3d8bb… 48.104.4001.0&lt;br /&gt;
Xbox Game Bar Plugin                                MSIX\Microsoft.XboxGameOverlay_1.54.4001.0_x64__8weky… 1.54.4001.0&lt;br /&gt;
Game Bar                                            MSIX\Microsoft.XboxGamingOverlay_7.325.11061.0_x64__8… 7.325.11061.0&lt;br /&gt;
Xbox Identity Provider                              MSIX\Microsoft.XboxIdentityProvider_12.130.16001.0_x6… 12.130.16001.0&lt;br /&gt;
Game Speech Window                                  MSIX\Microsoft.XboxSpeechToTextOverlay_1.97.17002.0_x… 1.97.17002.0&lt;br /&gt;
Phone Link                                          MSIX\Microsoft.YourPhone_1.25102.64.0_x64__8wekyb3d8b… 1.25102.64.0&lt;br /&gt;
Windows Media Player                                MSIX\Microsoft.ZuneMusic_11.2510.7.0_x64__8wekyb3d8bb… 11.2510.7.0&lt;br /&gt;
Movies &amp;amp; TV                                         MSIX\Microsoft.ZuneVideo_10.25101.10031.0_x64__8wekyb… 10.25101.10031.0&lt;br /&gt;
Quick Assist                                        MSIX\MicrosoftCorporationII.QuickAssist_2.0.29.0_x64_… 2.0.29.0&lt;br /&gt;
Windows Subsystem for Linux                         MSIX\MicrosoftCorporationII.WindowsSubsystemForLinux_… 2.5.9.0&lt;br /&gt;
Windows Web Experience Pack                         MSIX\MicrosoftWindows.Client.WebExperience_525.31002.… 525.31002.150.0&lt;br /&gt;
Cross Device Experience Host                        MSIX\MicrosoftWindows.CrossDevice_1.25102.46.0_x64__c… 1.25102.46.0&lt;br /&gt;
Notepad++                                           MSIX\NotepadPlusPlus_1.0.0.0_neutral__2247w0b46hfww    1.0.0.0&lt;br /&gt;
WinMerge                                            MSIX\WinMerge_1.0.7.0_neutral__83g614hpn1ttr           1.0.7.0&lt;br /&gt;
Local AI Manager for Microsoft 365                  MSIX\aimgr_0.20.29.0_x64__8wekyb3d8bbwe                0.20.29.0&lt;br /&gt;
Slack                                               SlackTechnologies.Slack                                4.47.59.0        4.47.65   winget&lt;br /&gt;
Mail and Calendar                                   MSIX\microsoft.windowscommunicationsapps_16005.14326.… 16005.14326.223…&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample winget ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name                                                Id                                                     Version          Available Source&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
PS C:\&amp;gt; winget list | findstr &amp;quot;winget&amp;quot;&lt;br /&gt;
7-Zip 25.01 (x64)                                   7zip.7zip                                              25.01                      winget&lt;br /&gt;
Beyond Compare 4.4.7                                ScooterSoftware.BeyondCompare.4                        4.4.7.28397                winget&lt;br /&gt;
Docker Desktop                                      Docker.DockerDesktop                                   4.54.0                     winget&lt;br /&gt;
Greenshot 1.3.301                                   Greenshot.Greenshot                                    1.3.301          1.3.304   winget&lt;br /&gt;
HWiNFO® 64                                          REALiX.HWiNFO                                          8.34                       winget&lt;br /&gt;
IrfanView 4.73 (64-bit)                             IrfanSkiljan.IrfanView                                 4.73                       winget&lt;br /&gt;
Mozilla Firefox ESR (x64 en-US)                     Mozilla.Firefox.ESR                                    140.6.0                    winget&lt;br /&gt;
Mozilla Firefox ESR (x64 en-US)                     Mozilla.Firefox.ESR                                    140.5.0                    winget&lt;br /&gt;
Notepad++ (64-bit x64)                              Notepad++.Notepad++                                    8.8.9                      winget&lt;br /&gt;
Microsoft 365 Apps for enterprise - en-us           Microsoft.Office                                       16.0.19328.20266           winget&lt;br /&gt;
Microsoft OneDrive                                  Microsoft.OneDrive                                     25.216.1104.0002           winget&lt;br /&gt;
OpenSSL 3.6.0 (64-bit)                              ShiningLight.OpenSSL.Dev                               3.6.0                      winget&lt;br /&gt;
VLC media player                                    VideoLAN.VLC                                           3.0.22                     winget&lt;br /&gt;
WinMerge x64                                        WinMerge.WinMerge                                      2.16.52.2                  winget&lt;br /&gt;
Webex                                               Cisco.Webex                                            45.12.0.33709              winget&lt;br /&gt;
Strawberry Perl (64-bit)                            StrawberryPerl.StrawberryPerl                          5.42.0.1                   winget&lt;br /&gt;
Synergy (64-bit)                                    Symless.Synergy                                        1.14.6           3.2.1     winget&lt;br /&gt;
Paint.NET                                           dotPDN.PaintDotNet                                     5.1.11                     winget&lt;br /&gt;
Google Drive                                        Google.GoogleDrive                                     117.0.0.0                  winget&lt;br /&gt;
YubiKey Manager CLI                                 Yubico.YubiKeyManagerCLI                               5.8.0.0                    winget&lt;br /&gt;
Zoom Workplace (64-bit)                             Zoom.Zoom                                              6.6.23272                  winget&lt;br /&gt;
Windows PC Health Check                             Microsoft.WindowsPCHealthCheck                         4.0.2410.23001             winget&lt;br /&gt;
PowerShell 7-x64                                    Microsoft.PowerShell                                   7.5.4.0                    winget&lt;br /&gt;
PowerShell 7.5.3.0-x64                              Microsoft.PowerShell                                   7.5.3.0                    winget&lt;br /&gt;
Microsoft Visual Studio Code                        Microsoft.VisualStudioCode                             1.107.0                    winget&lt;br /&gt;
OpenHashTab                                         namazso.OpenHashTab                                    3.1.1                      winget&lt;br /&gt;
Google Chrome                                       Google.Chrome.EXE                                      143.0.7499.41              winget&lt;br /&gt;
Microsoft Edge                                      Microsoft.Edge                                         143.0.3650.80              winget&lt;br /&gt;
Steam                                               Valve.Steam                                            2.10.91.91                 winget&lt;br /&gt;
Dashboard                                           SanDisk.Dashboard                                      5.1.2.2                    winget&lt;br /&gt;
Windhawk v1.7.3                                     RamenSoftware.Windhawk                                 1.7.3                      winget&lt;br /&gt;
Microsoft Visual C++ v14 Redistributable (x86) - 1… Microsoft.VCRedist.2015+.x86                           14.50.35719.0              winget&lt;br /&gt;
Microsoft Windows Desktop Runtime - 8.0.22 (x86)    Microsoft.DotNet.DesktopRuntime.8                      8.0.22                     winget&lt;br /&gt;
Microsoft Purview Information Protection            Microsoft.PurviewInformationProtection                 3.1.310.0                  winget&lt;br /&gt;
Microsoft Visual C++ v14 Redistributable (x64) - 1… Microsoft.VCRedist.2015+.x64                           14.50.35719.0              winget&lt;br /&gt;
Microsoft .NET Runtime - 8.0.22 (x64)               Microsoft.DotNet.Runtime.8                             8.0.22                     winget&lt;br /&gt;
Microsoft Windows Desktop Runtime - 6.0.36 (x86)    Microsoft.DotNet.DesktopRuntime.6                      6.0.36                     winget&lt;br /&gt;
Signal 7.82.0                                       OpenWhisperSystems.Signal                              7.82.0                     winget&lt;br /&gt;
MongoDB Compass                                     MongoDB.Compass.Full                                   1.47.1           1.48.2.0  winget&lt;br /&gt;
Ubuntu 24.04.1 LTS                                  Canonical.Ubuntu.2404                                  2404.1.26.0                winget&lt;br /&gt;
Kali Linux                                          OffSec.KaliLinux                                       2025.3.0.0                 winget&lt;br /&gt;
Keeper® Password Manager                            KeeperSecurity.KeeperDesktop                           17.4.1.0                   winget&lt;br /&gt;
Microsoft Teams                                     Microsoft.Teams                                        25306.804.4102.…           winget&lt;br /&gt;
App Installer                                       Microsoft.AppInstaller                                 1.27.350.0                 winget&lt;br /&gt;
Microsoft.UI.Xaml.2.7                               Microsoft.UI.Xaml.2.7                                  7.2409.9001.0              winget&lt;br /&gt;
Microsoft.UI.Xaml.2.7                               Microsoft.UI.Xaml.2.7                                  7.2409.9001.0              winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                               Microsoft.UI.Xaml.2.8                                  8.2501.31001.0             winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                               Microsoft.UI.Xaml.2.8                                  8.2501.31001.0             winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Desktop Runtime Pack… Microsoft.VCLibs.Desktop.14                            14.0.33728.0               winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Desktop Runtime Pack… Microsoft.VCLibs.Desktop.14                            14.0.33728.0               winget&lt;br /&gt;
Windows Terminal                                    Microsoft.WindowsTerminal                              1.23.12811.0               winget&lt;br /&gt;
Slack                                               SlackTechnologies.Slack                                4.47.59.0        4.47.65   winget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample winget ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name                                                Id                                                     Version          Available Source&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
PS C:\&amp;gt; winget list | findstr &amp;quot;msstore&amp;quot;&lt;br /&gt;
Audacity 3.7.6                                      XP8K0J757HHRDW                                         3.7.6                      msstore&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample NOT winget or msstore ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\&amp;gt; winget list | findstr -v &amp;quot;winget&amp;quot; | grep -v &amp;quot;msstore&amp;quot;&lt;br /&gt;
Name                                                Id                                                     Version          Available Source&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Armoury Crate Service                               ARP\Machine\X64\Armoury Crate Service                  6.3.6.0&lt;br /&gt;
Git                                                 ARP\Machine\X64\Git_is1                                2.52.0&lt;br /&gt;
Mozilla Maintenance Service                         ARP\Machine\X64\MozillaMaintenanceService              140.6.0&lt;br /&gt;
Luma Island                                         ARP\Machine\X64\Steam App 2408820                      Unknown&lt;br /&gt;
Vim 9.1 (x64)                                       ARP\Machine\X64\Vim 9.1                                9.1.1972&lt;br /&gt;
Microsoft Update Health Tools                       ARP\Machine\X64\{1FC1A6C2-576E-489A-9B4A-92D21F542136} 3.74.0.0&lt;br /&gt;
ROG Live Service                                    ARP\Machine\X64\{2D87BFB6-C184-4A59-9BBE-3E20CE797631} 3.3.12.0&lt;br /&gt;
Microsoft Defender for Endpoint plug-in for WSL     ARP\Machine\X64\{4BC7FC7C-21F9-4E26-9DBE-A6DEA45636FF} 1.25.825.2&lt;br /&gt;
Microsoft Teams Meeting Add-in for Microsoft Office ARP\Machine\X64\{A7AB73A3-CB10-4AA5-9D38-6AEFFBDE4C91} 1.25.28902&lt;br /&gt;
AURA lighting effect add-on x64                     ARP\Machine\X64\{C5A4A164-4428-4931-B728-96EEF0FA3C44} 0.0.49&lt;br /&gt;
GlobalProtect                                       ARP\Machine\X64\{D69F9E89-516A-4543-9DE1-A4BD75CE851C} 6.2.3&lt;br /&gt;
Windows Subsystem for Linux Update                  ARP\Machine\X64\{F8474A47-8B5D-4466-ACE3-78EAB3BF21A8} 5.10.102.1&lt;br /&gt;
Citrix Workspace 2402                               ARP\Machine\X86\CitrixOnlinePluginPackWeb              24.2.3001.9&lt;br /&gt;
GnuWin32: CoreUtils version 5.3.0                   ARP\Machine\X86\CoreUtils-5.3.0_is1                    5.3.0&lt;br /&gt;
FileZilla 3.69.5                                    ARP\Machine\X86\FileZilla Client                       3.69.5&lt;br /&gt;
GameSDK Service                                     ARP\Machine\X86\{021d69c3-d686-4a94-8fb5-fd1ee782fb14} 1.0.5.0&lt;br /&gt;
AURA lighting effect add-on                         ARP\Machine\X86\{1E2EA04B-FCA7-457E-B6F4-F33E1858E859} 0.0.49&lt;br /&gt;
Microsoft Intune Management Extension               ARP\Machine\X86\{262D9D60-DB70-49A1-9880-B5E140727909} 1.97.107.0&lt;br /&gt;
ASUS Framework Service                              ARP\Machine\X86\{339A6383-7862-46DA-8A9D-E84180EF9424} 4.2.4.7&lt;br /&gt;
Printer Installer Client                            ARP\Machine\X86\{A9DE0858-9DDD-4E1B-B041-C2AA90DCBF74} 25.0.0.1074&lt;br /&gt;
AURA Service                                        ARP\Machine\X86\{cabfa89d-a59c-47ac-8d18-2032a1f72f20} 3.08.59&lt;br /&gt;
Armoury Crate                                       MSIX\ASUSAmbientHAL64_1.0.0.3_neutral__ecvjzhf6c4w7r   1.0.0.3&lt;br /&gt;
Intel® Graphics Command Center                      MSIX\AppUp.IntelGraphicsExperience_1.100.5688.0_x64__… 1.100.5688.0&lt;br /&gt;
Intel® OptaneTM Memory and Storage Management       MSIX\AppUp.IntelOptaneMemoryandStorageManagement_18.1… 18.1.1042.0&lt;br /&gt;
Microsoft Clipchamp                                 MSIX\Clipchamp.Clipchamp_4.4.10420.0_x64__yxz26nhyzhs… 4.4.10420.0&lt;br /&gt;
AV1 Video Extension                                 MSIX\Microsoft.AV1VideoExtension_2.0.6.0_x64__8wekyb3… 2.0.6.0&lt;br /&gt;
AVC Encoder Video Extension                         MSIX\Microsoft.AVCEncoderVideoExtension_1.1.21.0_x64_… 1.1.21.0&lt;br /&gt;
Windows Application Compatibility Enhancements      MSIX\Microsoft.ApplicationCompatibilityEnhancements_1… 1.2511.9.0&lt;br /&gt;
News                                                MSIX\Microsoft.BingNews_4.55.62231.0_x64__8wekyb3d8bb… 4.55.62231.0&lt;br /&gt;
Microsoft Bing                                      MSIX\Microsoft.BingSearch_1.1.40.0_x64__8wekyb3d8bbwe  1.1.40.0&lt;br /&gt;
MSN Weather                                         MSIX\Microsoft.BingWeather_4.54.63029.0_x64__8wekyb3d… 4.54.63029.0&lt;br /&gt;
Company Portal                                      MSIX\Microsoft.CompanyPortal_11.2.1672.0_x64__8wekyb3… 11.2.1672.0&lt;br /&gt;
Copilot                                             MSIX\Microsoft.Copilot_1.25114.55.0_x64__8wekyb3d8bbwe 1.25114.55.0&lt;br /&gt;
Microsoft Edge Game Assist                          MSIX\Microsoft.Edge.GameAssist_1.0.3456.0_x64__8wekyb… 1.0.3456.0&lt;br /&gt;
Xbox                                                MSIX\Microsoft.GamingApp_2512.1001.34.0_x64__8wekyb3d… 2512.1001.34.0&lt;br /&gt;
Get Help                                            MSIX\Microsoft.GetHelp_10.2409.32612.0_x64__8wekyb3d8… 10.2409.32612.0&lt;br /&gt;
HEIF Image Extension                                MSIX\Microsoft.HEIFImageExtension_1.2.23.0_x64__8weky… 1.2.23.0&lt;br /&gt;
HEVC Video Extensions from Device Manufacturer      MSIX\Microsoft.HEVCVideoExtension_2.4.39.0_x64__8weky… 2.4.39.0&lt;br /&gt;
MPEG-2 Video Extension                              MSIX\Microsoft.MPEG2VideoExtension_1.2.13.0_x64__8wek… 1.2.13.0&lt;br /&gt;
Paint 3D                                            MSIX\Microsoft.MSPaint_6.1907.29027.0_x64__8wekyb3d8b… 6.1907.29027.0&lt;br /&gt;
3D Viewer                                           MSIX\Microsoft.Microsoft3DViewer_1.0.125.0_x64__8weky… 1.0.125.0&lt;br /&gt;
Microsoft Edge                                      MSIX\Microsoft.MicrosoftEdge.Stable_140.0.3485.94_neu… 140.0.3485.94&lt;br /&gt;
Microsoft 365 Copilot                               MSIX\Microsoft.MicrosoftOfficeHub_19.2512.39051.0_x64… 19.2512.39051.0&lt;br /&gt;
Solitaire &amp;amp; Casual Games                            MSIX\Microsoft.MicrosoftSolitaireCollection_4.24.1204… 4.24.12040.0&lt;br /&gt;
Microsoft Sticky Notes                              MSIX\Microsoft.MicrosoftStickyNotes_4.0.6104.0_x64__8… 4.0.6104.0&lt;br /&gt;
Mixed Reality Portal                                MSIX\Microsoft.MixedReality.Portal_2000.21051.1282.0_… 2000.21051.1282…&lt;br /&gt;
Microsoft .Net Native Framework Package 1.7         MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x… 1.7.27413.0&lt;br /&gt;
Microsoft .Net Native Framework Package 1.7         MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x… 1.7.27413.0&lt;br /&gt;
Microsoft .Net Native Framework Package 2.2         MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Framework Package 2.2         MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 1.7           MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x64… 1.7.27422.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 1.7           MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x86… 1.7.27422.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 2.2           MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64… 2.2.28604.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 2.2           MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x86… 2.2.28604.0&lt;br /&gt;
Microsoft.Office.ActionsServer                      MSIX\Microsoft.Office.ActionsServer_16.0.19328.20266_… 16.0.19328.20266&lt;br /&gt;
OneNote for Windows 10                              MSIX\Microsoft.Office.OneNote_16.14326.22589.0_x64__8… 16.14326.22589.0&lt;br /&gt;
OfficePushNotificationsUtility                      MSIX\Microsoft.OfficePushNotificationUtility_16.0.193… 16.0.19328.20266&lt;br /&gt;
OneDrive                                            MSIX\Microsoft.OneDriveSync_25216.1104.2.0_neutral__8… 25216.1104.2.0&lt;br /&gt;
Outlook for Windows                                 MSIX\Microsoft.OutlookForWindows_1.2025.1121.100_x64_… 1.2025.1121.100&lt;br /&gt;
Paint                                               MSIX\Microsoft.Paint_11.2510.311.0_x64__8wekyb3d8bbwe  11.2510.311.0&lt;br /&gt;
Microsoft People                                    MSIX\Microsoft.People_10.2202.100.0_x64__8wekyb3d8bbwe 10.2202.100.0&lt;br /&gt;
Power Automate                                      MSIX\Microsoft.PowerAutomateDesktop_1.0.2046.0_x64__8… 1.0.2046.0&lt;br /&gt;
Raw Image Extension                                 MSIX\Microsoft.RawImageExtension_2.5.7.0_x64__8wekyb3… 2.5.7.0&lt;br /&gt;
Snipping Tool                                       MSIX\Microsoft.ScreenSketch_11.2510.31.0_x64__8wekyb3… 11.2510.31.0&lt;br /&gt;
Windows Security                                    MSIX\Microsoft.SecHealthUI_1000.29429.1000.0_x64__8we… 1000.29429.1000…&lt;br /&gt;
Microsoft Engagement Framework                      MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0… 10.0.23012.0&lt;br /&gt;
Microsoft Engagement Framework                      MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0… 10.0.23012.0&lt;br /&gt;
Skype                                               MSIX\Microsoft.SkypeApp_15.150.3125.0_x64__kzf8qxf38z… 15.150.3125.0&lt;br /&gt;
Start Experiences App                               MSIX\Microsoft.StartExperiencesApp_1.179.4.0_x64__8we… 1.179.4.0&lt;br /&gt;
Store Experience Host                               MSIX\Microsoft.StorePurchaseApp_22509.1401.1.0_x64__8… 22509.1401.1.0&lt;br /&gt;
Microsoft To Do                                     MSIX\Microsoft.Todos_0.148.3611.0_x64__8wekyb3d8bbwe   0.148.3611.0&lt;br /&gt;
Microsoft.UI.Xaml.2.0                               MSIX\Microsoft.UI.Xaml.2.0_2.1810.18004.0_x64__8wekyb… 2.1810.18004.0&lt;br /&gt;
Microsoft.UI.Xaml.2.3                               MSIX\Microsoft.UI.Xaml.2.3_2.32002.13001.0_x64__8weky… 2.32002.13001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.3                               MSIX\Microsoft.UI.Xaml.2.3_2.32002.13001.0_x86__8weky… 2.32002.13001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.4                               MSIX\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x64__8wekyb… 2.42007.9001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.4                               MSIX\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x86__8wekyb… 2.42007.9001.0&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtime Package       MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x64__8wekyb… 14.0.33519.0&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtime Package       MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x86__8wekyb… 14.0.33519.0&lt;br /&gt;
VP9 Video Extensions                                MSIX\Microsoft.VP9VideoExtensions_1.2.12.0_x64__8weky… 1.2.12.0&lt;br /&gt;
Web Media Extensions                                MSIX\Microsoft.WebMediaExtensions_1.2.17.0_x64__8weky… 1.2.17.0&lt;br /&gt;
WebP Image Extension                                MSIX\Microsoft.WebpImageExtension_1.2.14.0_x64__8weky… 1.2.14.0&lt;br /&gt;
Widgets Platform Runtime                            MSIX\Microsoft.WidgetsPlatformRuntime_1.6.14.0_x64__8… 1.6.14.0&lt;br /&gt;
Microsoft Photos                                    MSIX\Microsoft.Windows.Photos_2025.11110.18001.0_x64_… 2025.11110.1800…&lt;br /&gt;
Windows Clock                                       MSIX\Microsoft.WindowsAlarms_11.2510.4.0_x64__8wekyb3… 11.2510.4.0&lt;br /&gt;
WindowsAppRuntime.1.4                               MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.4                               MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.5                               MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.5                               MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.6                               MSIX\Microsoft.WindowsAppRuntime.1.6_6000.519.329.0_x… 6000.519.329.0&lt;br /&gt;
WindowsAppRuntime.1.6                               MSIX\Microsoft.WindowsAppRuntime.1.6_6000.519.329.0_x… 6000.519.329.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.652.1806.0_… 7000.652.1806.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.676.1651.0_… 7000.676.1651.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.676.1651.0_… 7000.676.1651.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.642.119.0_x… 8000.642.119.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.675.1142.0_… 8000.675.1142.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.675.1142.0_… 8000.675.1142.0&lt;br /&gt;
Windows Calculator                                  MSIX\Microsoft.WindowsCalculator_11.2508.4.0_x64__8we… 11.2508.4.0&lt;br /&gt;
Windows Camera                                      MSIX\Microsoft.WindowsCamera_2025.2510.2.0_x64__8weky… 2025.2510.2.0&lt;br /&gt;
Feedback Hub                                        MSIX\Microsoft.WindowsFeedbackHub_1.2510.14102.0_x64_… 1.2510.14102.0&lt;br /&gt;
Windows Maps                                        MSIX\Microsoft.WindowsMaps_1.0.65.0_x64__8wekyb3d8bbwe 1.0.65.0&lt;br /&gt;
Windows Notepad                                     MSIX\Microsoft.WindowsNotepad_11.2508.38.0_x64__8weky… 11.2508.38.0&lt;br /&gt;
Windows Sound Recorder                              MSIX\Microsoft.WindowsSoundRecorder_1.1.47.0_x64__8we… 1.1.47.0&lt;br /&gt;
Microsoft Store                                     MSIX\Microsoft.WindowsStore_22510.1401.4.0_x64__8weky… 22510.1401.4.0&lt;br /&gt;
Xbox TCUI                                           MSIX\Microsoft.Xbox.TCUI_1.24.10001.0_x64__8wekyb3d8b… 1.24.10001.0&lt;br /&gt;
Xbox Console Companion                              MSIX\Microsoft.XboxApp_48.104.4001.0_x64__8wekyb3d8bb… 48.104.4001.0&lt;br /&gt;
Xbox Game Bar Plugin                                MSIX\Microsoft.XboxGameOverlay_1.54.4001.0_x64__8weky… 1.54.4001.0&lt;br /&gt;
Game Bar                                            MSIX\Microsoft.XboxGamingOverlay_7.325.11061.0_x64__8… 7.325.11061.0&lt;br /&gt;
Xbox Identity Provider                              MSIX\Microsoft.XboxIdentityProvider_12.130.16001.0_x6… 12.130.16001.0&lt;br /&gt;
Game Speech Window                                  MSIX\Microsoft.XboxSpeechToTextOverlay_1.97.17002.0_x… 1.97.17002.0&lt;br /&gt;
Phone Link                                          MSIX\Microsoft.YourPhone_1.25102.64.0_x64__8wekyb3d8b… 1.25102.64.0&lt;br /&gt;
Windows Media Player                                MSIX\Microsoft.ZuneMusic_11.2510.7.0_x64__8wekyb3d8bb… 11.2510.7.0&lt;br /&gt;
Movies &amp;amp; TV                                         MSIX\Microsoft.ZuneVideo_10.25101.10031.0_x64__8wekyb… 10.25101.10031.0&lt;br /&gt;
Quick Assist                                        MSIX\MicrosoftCorporationII.QuickAssist_2.0.29.0_x64_… 2.0.29.0&lt;br /&gt;
Windows Subsystem for Linux                         MSIX\MicrosoftCorporationII.WindowsSubsystemForLinux_… 2.5.9.0&lt;br /&gt;
Windows Web Experience Pack                         MSIX\MicrosoftWindows.Client.WebExperience_525.31002.… 525.31002.150.0&lt;br /&gt;
Cross Device Experience Host                        MSIX\MicrosoftWindows.CrossDevice_1.25102.46.0_x64__c… 1.25102.46.0&lt;br /&gt;
Notepad++                                           MSIX\NotepadPlusPlus_1.0.0.0_neutral__2247w0b46hfww    1.0.0.0&lt;br /&gt;
WinMerge                                            MSIX\WinMerge_1.0.7.0_neutral__83g614hpn1ttr           1.0.7.0&lt;br /&gt;
Local AI Manager for Microsoft 365                  MSIX\aimgr_0.20.29.0_x64__8wekyb3d8bbwe                0.20.29.0&lt;br /&gt;
Mail and Calendar                                   MSIX\microsoft.windowscommunicationsapps_16005.14326.… 16005.14326.223…&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows Package Management]]&lt;br /&gt;
[[Category:Windows Command Line Package Management]]&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10370</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10370"/>
		<updated>2026-09-22T21:41:34Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Install Ubuntu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-26.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10369</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10369"/>
		<updated>2026-09-22T21:09:26Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
=== WSL Status ===&lt;br /&gt;
&lt;br /&gt;
Show version of WSL (v2 or v1) and which distribution is default&lt;br /&gt;
 wsl --status&lt;br /&gt;
&lt;br /&gt;
=== List Instances ===&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
=== Start WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Stop WSL Instance ===&lt;br /&gt;
&lt;br /&gt;
 wsl --terminate &amp;lt;name&amp;gt;&lt;br /&gt;
 wsl -t &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== List Running ===&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10368</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10368"/>
		<updated>2026-09-22T21:04:47Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Create VDH */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
== List Instances ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
== Start WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List Running ==&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH: (as Admin)&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WSL&amp;diff=10367</id>
		<title>WSL</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WSL&amp;diff=10367"/>
		<updated>2026-09-22T21:00:26Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Basic Commands for WSL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Windows Subsystem for Linux ==&lt;br /&gt;
&lt;br /&gt;
NOTE: THERE IS TOO MUCH RAM OVERHEAD FOR WSL, DON&#039;T ENABLE, UNLESS YOU HAVE A TON OF RAM!&lt;br /&gt;
&lt;br /&gt;
== Enable ==&lt;br /&gt;
&lt;br /&gt;
 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Disable ==&lt;br /&gt;
&lt;br /&gt;
 Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux&lt;br /&gt;
&lt;br /&gt;
ref: https://www.tenforums.com/tutorials/46769-enable-disable-windows-subsystem-linux-wsl-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== List Available Install Options ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
&lt;br /&gt;
Online list as of 2025.07.04:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --list --online&lt;br /&gt;
The following is a list of valid distributions that can be installed.&lt;br /&gt;
Install using &#039;wsl.exe --install &amp;lt;Distro&amp;gt;&#039;.&lt;br /&gt;
&lt;br /&gt;
NAME                            FRIENDLY NAME&lt;br /&gt;
AlmaLinux-8                     AlmaLinux OS 8&lt;br /&gt;
AlmaLinux-9                     AlmaLinux OS 9&lt;br /&gt;
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10&lt;br /&gt;
AlmaLinux-10                    AlmaLinux OS 10&lt;br /&gt;
Debian                          Debian GNU/Linux&lt;br /&gt;
FedoraLinux-42                  Fedora Linux 42&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6&lt;br /&gt;
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7&lt;br /&gt;
Ubuntu                          Ubuntu&lt;br /&gt;
Ubuntu-24.04                    Ubuntu 24.04 LTS&lt;br /&gt;
archlinux                       Arch Linux&lt;br /&gt;
kali-linux                      Kali Linux Rolling&lt;br /&gt;
openSUSE-Tumbleweed             openSUSE Tumbleweed&lt;br /&gt;
openSUSE-Leap-15.6              openSUSE Leap 15.6&lt;br /&gt;
Ubuntu-18.04                    Ubuntu 18.04 LTS&lt;br /&gt;
Ubuntu-20.04                    Ubuntu 20.04 LTS&lt;br /&gt;
Ubuntu-22.04                    Ubuntu 22.04 LTS&lt;br /&gt;
OracleLinux_7_9                 Oracle Linux 7.9&lt;br /&gt;
OracleLinux_8_7                 Oracle Linux 8.7&lt;br /&gt;
OracleLinux_9_1                 Oracle Linux 9.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Ubuntu ==&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-22.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d Debian&lt;br /&gt;
&lt;br /&gt;
 wsl --install -d ubuntu&lt;br /&gt;
&lt;br /&gt;
Give the installation a non-default name (useful for having more than one copy of said distribution installed)&lt;br /&gt;
 wsl --install -d Debian --name MyDebian&lt;br /&gt;
&lt;br /&gt;
ref [https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10#3-download-ubuntu]&lt;br /&gt;
&lt;br /&gt;
== Basic Commands for WSL ==&lt;br /&gt;
&lt;br /&gt;
 Basic commands for WSL&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/basic-commands&lt;br /&gt;
&lt;br /&gt;
== List Instances ==&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
&lt;br /&gt;
== Start WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
 wsl -d &amp;lt;name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List Running ==&lt;br /&gt;
&lt;br /&gt;
List running&lt;br /&gt;
 wsl --list --running&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -l --running&lt;br /&gt;
&lt;br /&gt;
List all&lt;br /&gt;
 wsl --list --all&lt;br /&gt;
 wsl -l --all&lt;br /&gt;
&lt;br /&gt;
Also open File Explorer, and click on the &#039;&#039;&#039;Linux&#039;&#039;&#039; in the Navigation Pane.  &amp;lt;ref&amp;gt;https://www.tenforums.com/tutorials/127554-list-all-running-windows-subsystem-linux-distros-windows-10-a.html&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Convert WSL and Windows Paths ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath&lt;br /&gt;
Usage:&lt;br /&gt;
    -a    force result to absolute path format&lt;br /&gt;
    -u    translate from a Windows path to a WSL path (default)&lt;br /&gt;
    -w    translate from a WSL path to a Windows path&lt;br /&gt;
    -m    translate from a WSL path to a Windows path, with &#039;/&#039; instead of &#039;\&#039;&lt;br /&gt;
&lt;br /&gt;
EX: wslpath &#039;c:\users&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Windows path from WSL:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath &#039;c:\users&#039;&lt;br /&gt;
/mnt/c/users&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WSL path from Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ wslpath -w &#039;/&#039;&lt;br /&gt;
\\wsl.localhost\Ubuntu\&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set Default User for WSL ==&lt;br /&gt;
&lt;br /&gt;
Ubunutu:&lt;br /&gt;
 ubuntu config --default-user root&lt;br /&gt;
&lt;br /&gt;
Ubuntu18:&lt;br /&gt;
 ubuntu1804 config --default-user root&lt;br /&gt;
&lt;br /&gt;
 Set Default User for Windows Subsystem for Linux Distro in Windows 10 | Tutorials&lt;br /&gt;
 https://www.tenforums.com/tutorials/128152-set-default-user-windows-subsystem-linux-distro-windows-10-a.html&lt;br /&gt;
&lt;br /&gt;
== Create VDH ==&lt;br /&gt;
&lt;br /&gt;
Enable VDH commands (Install Hyper-V Module)&lt;br /&gt;
 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All -All -NoRestart&lt;br /&gt;
&lt;br /&gt;
Create VDH:&lt;br /&gt;
 New-VHD support.vhdx -SizeBytes 25GB -Dynamic -BlockSizeBytes 1MB&lt;br /&gt;
&lt;br /&gt;
 # Write-Output &amp;quot;\\.\PhysicalDrive$((Mount-VHD -Path support.vhdx -PassThru | Get-Disk).Number)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 # wsl --mount \\.\PhysicalDriveX --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-24.04 --mount --vhd C:\support.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
ref: https://gist.github.com/lseongjoo/d38b29fdbd5c082880576d0c34f7593e&lt;br /&gt;
&lt;br /&gt;
Alternative:&lt;br /&gt;
  Disk Management &amp;gt; Click Action &amp;gt; Create VHD&lt;br /&gt;
&lt;br /&gt;
NOTE: MAKE SURE TO ADD THE USER&#039;S PERMISSION AS THE DISK MANAGER DOES NOT ADD THE USER???&lt;br /&gt;
&lt;br /&gt;
== Mount VHDX or VHD in WSL ==&lt;br /&gt;
&lt;br /&gt;
 Install Docker Desktop WSL2 on Windows with allocated maximum size (virtual size) less then default 1TB - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/install-docker-desktop-wsl2-on-windows-with-allocated-maximum-size-virtual-size-less-then-default-1tb/135817/8&lt;br /&gt;
&lt;br /&gt;
 Is it possible to map a WSL mount into a docker container? Or use an EXT4 VHD with Docker in any other way? : r/docker&lt;br /&gt;
 https://www.reddit.com/r/docker/comments/112b10k/is_it_possible_to_map_a_wsl_mount_into_a_docker/&lt;br /&gt;
&lt;br /&gt;
 Moving docker-desktop &amp;quot;distro&amp;quot; vhdx file - Docker Desktop for Windows - Docker Community Forums&lt;br /&gt;
 https://forums.docker.com/t/moving-docker-desktop-distro-vhdx-file/137632/3&lt;br /&gt;
&lt;br /&gt;
 WSL2 mount VHDX virtual disk issue with Windows docker Volumes - Stack Overflow&lt;br /&gt;
 https://stackoverflow.com/questions/65548924/wsl2-mount-vhdx-virtual-disk-issue-with-windows-docker-volumes&lt;br /&gt;
&lt;br /&gt;
 Get started mounting a Linux disk in WSL 2 | Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk&lt;br /&gt;
&lt;br /&gt;
 How to Use Dedicated Disks in Wsl - Rouke&#039;s Blog&lt;br /&gt;
 https://broersma.dev/how-to-use-dedicated-disks-in-wsl/&lt;br /&gt;
&lt;br /&gt;
best:&lt;br /&gt;
 WSL2 How-to: Prepare and Attach Virtual Drives (VHD) | by Tony Tannous | Medium&lt;br /&gt;
 https://anthony-f-tannous.medium.com/wsl2-how-to-prepare-and-attach-virtual-drives-vhd-ac17b1fc7a61&lt;br /&gt;
&lt;br /&gt;
Misc:&lt;br /&gt;
 wsl --mount \\.\PHYSICALDRIVE2 --bare&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null&lt;br /&gt;
 wsl -d Ubuntu-20.04&lt;br /&gt;
&lt;br /&gt;
 wsl -d Ubuntu-20.04 --mount --vhd $env:USERPROFILE\wsl2-shared.vhdx --bare&lt;br /&gt;
&lt;br /&gt;
Mount VHD:&lt;br /&gt;
 pwsh.exe -Command &amp;quot;wsl.exe -d Ubuntu-20.04 --mount --vhd C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx --bare | out-null; wsl.exe -d Ubuntu-20.04&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inside WSL see mount:&lt;br /&gt;
 blkid&lt;br /&gt;
 lsblk -o NAME,LABEL,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT /dev/sdd&lt;br /&gt;
 sudo parted /dev/sdd print&lt;br /&gt;
 sudo parted -a optimal /dev/sdd mkpart primary ext4 0% 100%&lt;br /&gt;
 parted /dev/sdd mklabel msdos&lt;br /&gt;
 mount -l | grep vhd-part1&lt;br /&gt;
&lt;br /&gt;
Unmount&lt;br /&gt;
 wsl --unmount \\?\C:\Users\&amp;lt;username&amp;gt;\wsl2-shared.vhdx&lt;br /&gt;
&lt;br /&gt;
== NFS ==&lt;br /&gt;
&lt;br /&gt;
To mount an NFS share in WSL, you will need to mount it with &amp;quot;insecure&amp;quot;&lt;br /&gt;
&lt;br /&gt;
example /etc/exports&lt;br /&gt;
 /pub *(rw)&lt;br /&gt;
 /pub 10.0.0.101(insecure,rw)&lt;br /&gt;
&lt;br /&gt;
== Kali Linux ==&lt;br /&gt;
&lt;br /&gt;
Error installing Kali:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; wsl --install -d kali-linux --name kali&lt;br /&gt;
Downloading: Kali Linux Rolling&lt;br /&gt;
An error occurred in the secure channel support&lt;br /&gt;
Error code: Wsl/InstallDistro/0x80072f7d&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Same with:&lt;br /&gt;
 wsl --install -d kali-linux --name kali --web-download&lt;br /&gt;
&lt;br /&gt;
If you get the above, try downloading it from the MS Store:&lt;br /&gt;
 Kali Linux - Free download and install on Windows | Microsoft Store&lt;br /&gt;
 https://apps.microsoft.com/detail/9pkr34tncv07?hl=en-US&amp;amp;gl=US&lt;br /&gt;
&lt;br /&gt;
== Disable Automatic Generation of /etc/resolv.conf ==&lt;br /&gt;
&lt;br /&gt;
Sample&lt;br /&gt;
&lt;br /&gt;
/etc/resolv.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:&lt;br /&gt;
# [network]&lt;br /&gt;
# generateResolvConf = false&lt;br /&gt;
nameserver 10.255.255.254&lt;br /&gt;
search corp.com home.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
Disabling Automatic Generation: To permanently customize your DNS settings, you need to disable this automatic generation by adding generateResolvConf = false under the [network] section in /etc/wsl.conf. After making this change, you can then manually create or modify /etc/resolv.conf with your desired DNS servers.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/wsl.conf&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[user]&lt;br /&gt;
default=aznotuser&lt;br /&gt;
&lt;br /&gt;
[network]&lt;br /&gt;
generateResolvConf = false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat/etc/resolv.conf&lt;br /&gt;
nameserver 10.0.0.8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mount Drives with Correct Permissions ==&lt;br /&gt;
&lt;br /&gt;
 sudo ln -s /mnt/c /c&lt;br /&gt;
 sudo ln -s /mnt/d /d&lt;br /&gt;
 sudo mkdir /d/code&lt;br /&gt;
 sudo chwon USER:USER /d/code&lt;br /&gt;
 sudo ln -s /d/code /code&lt;br /&gt;
 cd ~&lt;br /&gt;
 ln -s /code code&lt;br /&gt;
&lt;br /&gt;
Add these automount settings to /etc/wsl.conf and restart wsl:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
inside wsl:&lt;br /&gt;
 sudo vim /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
From powershell/command prompt:&lt;br /&gt;
 wsl --terminate Ubuntu-24.04&lt;br /&gt;
 # or&lt;br /&gt;
 wsl -t Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Start ubuntu again:&lt;br /&gt;
 wsl -d Ubuntu-24.04&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
/etc/wsl.conf :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[boot]&lt;br /&gt;
systemd=true&lt;br /&gt;
&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/wsl/wsl-config&lt;br /&gt;
&lt;br /&gt;
Automount settings:&lt;br /&gt;
* enabled - true causes fixed drives (i.e C:/ or D:/) to be automatically mounted with DrvFs under /mnt. false means drives won&#039;t be mounted automatically, but you could still mount them manually or via fstab.&lt;br /&gt;
* options - comma-separated list of values, such as uid, gid, etc.&lt;br /&gt;
** metadata - Whether metadata is added to Windows files to support Linux system permissions&lt;br /&gt;
** umask - An octal mask of permissions to exclude for all files and directories&lt;br /&gt;
** fmask - An octal mask of permissions to exclude for all files&lt;br /&gt;
&lt;br /&gt;
You can optionally add more options to set default permissions, which is often recommended for better compatibility with Linux tools that expect standard file permissions (like SSH keys or git):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[automount]&lt;br /&gt;
enabled = true&lt;br /&gt;
options = &amp;quot;metadata,umask=22,fmask=11&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* metadata: This option enables the storage of Linux file metadata (like permissions and ownership) on Windows drives.&lt;br /&gt;
* umask and fmask: These set default octal masks to control file and directory permissions.&lt;br /&gt;
&lt;br /&gt;
== Move WSL Instance ==&lt;br /&gt;
&lt;br /&gt;
1. Terminate the running distribution&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Export the distribution to a temporary tar file.&lt;br /&gt;
 wsl --export &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
3. Unregister the original distribution from its default C: drive location. - Caution this is destructive&lt;br /&gt;
 wsl --unregister &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Create the new installation directory&lt;br /&gt;
 mkdir D:\wsl-instances\&amp;lt;DistroName&amp;gt;&lt;br /&gt;
 wsl --import &amp;lt;DistroName&amp;gt; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;&amp;quot; &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
5. (Optional) Set the default user if it changes to root after the import.&lt;br /&gt;
&lt;br /&gt;
5.1 Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.2 Inside new instance edit /etc/wsl.conf:&lt;br /&gt;
 sudo nano /etc/wsl.conf&lt;br /&gt;
&lt;br /&gt;
5.3 Change with username:&lt;br /&gt;
 [user]&lt;br /&gt;
 default=&amp;lt;your_username&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5.4 Save exit, and exit wsl instance&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
6. Terminate wsl again&lt;br /&gt;
 wsl --terminate &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
7. Clean up the temporary tar file and start your new instance.&lt;br /&gt;
 Remove-Item &amp;quot;D:\wsl-instances\&amp;lt;DistroName&amp;gt;.tar&amp;quot;&lt;br /&gt;
&lt;br /&gt;
8. Start new instance&lt;br /&gt;
 wsl -d &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # or just:&lt;br /&gt;
 wsl&lt;br /&gt;
 # if it was set as default with:&lt;br /&gt;
 wsl --set-default &amp;lt;DistroName&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Issues ==&lt;br /&gt;
&lt;br /&gt;
=== Update fails with Forbidden (403) ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
Forbidden (403).&lt;br /&gt;
Error code: Wsl/UpdatePackage/0x80190193&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Searches online indiate Defender (or other virus scanner may be to blame).&lt;br /&gt;
&lt;br /&gt;
One suggests using --web-download:&lt;br /&gt;
 wsl --update --web-download&lt;br /&gt;
&lt;br /&gt;
ref: [https://github.com/microsoft/WSL/issues/9039]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt;wsl --update&lt;br /&gt;
Checking for updates.&lt;br /&gt;
The most recent version of Windows Subsystem for Linux is already installed.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WinGet&amp;diff=10366</id>
		<title>WinGet</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WinGet&amp;diff=10366"/>
		<updated>2026-09-22T04:15:01Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WinGet ==&lt;br /&gt;
&lt;br /&gt;
 The &#039;&#039;&#039;Windows Package Manager&#039;&#039;&#039; (also known as &#039;&#039;&#039;winget&#039;&#039;&#039;) is a free and open-source package manager designed by Microsoft for Windows 10 and Windows 11. It consists of a command-line utility and a set of services for installing applications. Independent software vendors can use it as a distribution channel for their software packages. &amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Windows_Package_Manager&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Before deciding to develop Windows Package Manager, the team behind it explored Chocolatey, Scoop, Ninite, AppGet, Npackd and the PowerShell-based OneGet.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 The WinGet command line tool, which is the client interface to the Windows Package Manager service, requires Windows 10 version 1809 (build 17763) or later, or Windows 11.&lt;br /&gt;
&lt;br /&gt;
 WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).&lt;br /&gt;
&lt;br /&gt;
 The client requires Windows 10 1809 (build 17763) or later at this time. Windows Server 2019 is not supported as the Microsoft Store is not available nor are updated dependencies. It may be possible to install on Windows Server 2022, this should be considered experimental (not supported), and requires dependencies to be manually installed as well. &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-cli&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install WinGet ==&lt;br /&gt;
&lt;br /&gt;
=== Install WinGet from PowerShell 7 ===&lt;br /&gt;
&lt;br /&gt;
Quick:&lt;br /&gt;
 Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force&lt;br /&gt;
 Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery &lt;br /&gt;
 Repair-WinGetPackageManager -Force -Latest -AllUsers&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
Path to winget:&lt;br /&gt;
 %LOCALAPPDATA%\Microsoft\WindowsApps\winget&lt;br /&gt;
PATH ::&lt;br /&gt;
 %LOCALAPPDATA%\Microsoft\WindowsApps&lt;br /&gt;
&lt;br /&gt;
This seemed to work best on problematic systems:&lt;br /&gt;
&lt;br /&gt;
Run Powershell 7:&lt;br /&gt;
 pwsh&lt;br /&gt;
&lt;br /&gt;
Verify WinGet Module is not running:&lt;br /&gt;
 Get-Process | Where-Object { $_.Modules -ne $null -and $_.Modules.ModuleName -like &#039;*WinGet*&#039; } | Select-Object ProcessName, Id&lt;br /&gt;
&lt;br /&gt;
Install dependency&lt;br /&gt;
 *** BEST ***&lt;br /&gt;
 Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force&lt;br /&gt;
&lt;br /&gt;
Install Powershell Module: (Warns that PSGallery is Untrusted repository??)&lt;br /&gt;
 Install-Module -Name Microsoft.WinGet.Client&lt;br /&gt;
&lt;br /&gt;
 # If that doesn&#039;t work...&lt;br /&gt;
 # Install-Module -Name Microsoft.WinGet.Client -Force&lt;br /&gt;
 *** BEST ***&lt;br /&gt;
 Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery &lt;br /&gt;
&lt;br /&gt;
Repair Install: (This should work, but doesn&#039;t seem to)&lt;br /&gt;
 # Repair-WinGetPackageManager -AllUsers&lt;br /&gt;
&lt;br /&gt;
Force Repair Install:&lt;br /&gt;
 Repair-WinGetPackageManager -AllUsers&lt;br /&gt;
&lt;br /&gt;
 # If that doesn&#039;t work...&lt;br /&gt;
 # Repair-WinGetPackageManager -Force -Latest&lt;br /&gt;
 &lt;br /&gt;
 *** BEST ***&lt;br /&gt;
 Repair-WinGetPackageManager -Force -Latest -AllUsers&lt;br /&gt;
&lt;br /&gt;
Test Installing Windows Terminal:&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
 &lt;br /&gt;
 # winget install --scope user Microsoft.WindowsTerminal --source winget&lt;br /&gt;
 #(not supported) winget install --scope machine Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
=== Install from Microsoft Store ===&lt;br /&gt;
&lt;br /&gt;
Microsoft Store calls it App Installer (instead of WinGet??), and it is not searchable??  Have to find it on the online store here:&lt;br /&gt;
&lt;br /&gt;
 App Installer&lt;br /&gt;
 https://www.microsoft.com/p/app-installer/9nblggh4nns1&lt;br /&gt;
&lt;br /&gt;
AI says you can&#039;t find it in the Microsoft Store because:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Winget (Windows Package Manager) isn&#039;t directly searchable in the Microsoft Store because it&#039;s delivered as part of the App Installer package, which is often pre-installed but might be outdated or broken; the key is that the command-line tool winget handles app management, but its own core components need to be updated through the Store or command line when it&#039;s problematic, leading to a bit of a chicken-and-egg situation that requires manual updates or specific commands to fix. &lt;br /&gt;
&lt;br /&gt;
Why it seems missing or unsearchable:&lt;br /&gt;
* It&#039;s bundled: winget isn&#039;t a separate app in the Store; it&#039;s a feature of the &amp;quot;App Installer&amp;quot;.&lt;br /&gt;
* Outdated default: New Windows installs often have an old App Installer that can&#039;t update itself, requiring manual intervention.&lt;br /&gt;
* Async registration: It only becomes available after you&#039;ve logged into Windows once, triggering the Store to register it.&lt;br /&gt;
* Search issues: Sometimes, internal Store issues or ISV blocks prevent searching for the App Installer or packages within it. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install WinGet from AppxPackage ===&lt;br /&gt;
&lt;br /&gt;
 Install WinGet&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/package-manager/winget/&lt;br /&gt;
&lt;br /&gt;
 WinGet the Windows Package Manager is available on Windows 11, modern versions of Windows 10, and Windows Server 2025 as a part of the App Installer. The App Installer is a System Component delivered and updated by the Microsoft store on Windows Desktop versions, and via Updates on Windows Server 2025.&lt;br /&gt;
&lt;br /&gt;
 The WinGet command line tool is only supported on Windows 10 version 1809 (build 17763) or later. WinGet will not be available until you have logged into Windows as a user for the first time, triggering Microsoft Store to register the Windows Package Manager as part of an asynchronous process. If you have recently logged in as a user for the first time and find that WinGet is not yet available, you can open PowerShell and enter the following command to request this WinGet registration: [https://learn.microsoft.com/en-us/windows/package-manager/winget/]&lt;br /&gt;
&lt;br /&gt;
 Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe&lt;br /&gt;
&lt;br /&gt;
Direct Download: (as administrator powershell)&lt;br /&gt;
 wget.exe https://github.com/microsoft/winget-cli/releases/download/v1.29.290/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle&lt;br /&gt;
 Add-AppPackage -path .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle&lt;br /&gt;
&lt;br /&gt;
 winget update --all&lt;br /&gt;
 winget update --all -u&lt;br /&gt;
&lt;br /&gt;
=== Install WinGet from Chocolatey ===&lt;br /&gt;
&lt;br /&gt;
Hmmm This didn&#039;t work&lt;br /&gt;
 &amp;lt;s&amp;gt;choco install winget-cli&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== winget-cli GitHub ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/microsoft/winget-cli&lt;br /&gt;
&lt;br /&gt;
== Microsoft Store ==&lt;br /&gt;
&lt;br /&gt;
 https://www.microsoft.com/p/app-installer/9nblggh4nns1&lt;br /&gt;
&lt;br /&gt;
== Winget Version ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\&amp;gt; winget --version&lt;br /&gt;
v1.12.350&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List Installed Packages ==&lt;br /&gt;
&lt;br /&gt;
List Installed Packages:&lt;br /&gt;
 winget list&lt;br /&gt;
&lt;br /&gt;
List Installed Packages in User Scope:&lt;br /&gt;
 winget list --scope user&lt;br /&gt;
&lt;br /&gt;
List Installed Packages in Machine Scope:&lt;br /&gt;
 winget list --scope machine&lt;br /&gt;
&lt;br /&gt;
Get Package details, including scope:&lt;br /&gt;
 winget list &amp;lt;package&amp;gt; --details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; winget list github.cli --details&lt;br /&gt;
Failed when searching source; results will not be included: msstore&lt;br /&gt;
GitHub CLI [GitHub.cli]&lt;br /&gt;
Version: 2.96.0&lt;br /&gt;
Publisher: GitHub, Inc.&lt;br /&gt;
Local Identifier: ARP\Machine\X64\{B268D2DF-B30F-4883-8866-22B3CFCC2387}&lt;br /&gt;
Product Code: {b268d2df-b30f-4883-8866-22b3cfcc2387}&lt;br /&gt;
Upgrade Code: {8cfb9531-b959-4e1b-aa2e-4af0ffcc4af4}&lt;br /&gt;
Installer Category: msi&lt;br /&gt;
Installed Scope: Machine&lt;br /&gt;
Installed Architecture: X64&lt;br /&gt;
Installed Locale: en-US&lt;br /&gt;
Origin Source: winget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See if package installed in specific scope:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; winget list github.cli --scope user&lt;br /&gt;
Failed when searching source; results will not be included: msstore&lt;br /&gt;
No installed package found matching input criteria.&lt;br /&gt;
&lt;br /&gt;
C:\&amp;gt; winget list github.cli --scope machine&lt;br /&gt;
Failed when searching source; results will not be included: msstore&lt;br /&gt;
Name       Id         Version Source&lt;br /&gt;
-------------------------------------&lt;br /&gt;
GitHub CLI GitHub.cli 2.96.0  winget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Package ==&lt;br /&gt;
&lt;br /&gt;
 winget install &amp;lt;package&amp;gt;&lt;br /&gt;
 https://github.com/microsoft/winget-pkgs&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 winget install Microsoft.WindowsTerminal Microsoft.PowerToys Microsoft.VisualStudioCode&lt;br /&gt;
&lt;br /&gt;
=== Install Package to Install Scope ===&lt;br /&gt;
&lt;br /&gt;
Scope:&lt;br /&gt;
 #  --scope                              Select install scope (user or machine)&lt;br /&gt;
&lt;br /&gt;
NOTE: Default Scope is User Scope, if both scopes are available.  Some applications only have one scope, like WindowsTerminal (user scope only) and GitHub GH Client (machine scope only). GitHub GH Client will default to machine scope.&lt;br /&gt;
&lt;br /&gt;
User Scope&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget  --scope user&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget  --scope user&lt;br /&gt;
&lt;br /&gt;
 ## WARNING Only Machine Scope Supported with GitHub.cli&lt;br /&gt;
 #WRONG# winget install --id GitHub.cli --source winget&lt;br /&gt;
 #ERROR# winget install --id GitHub.cli --source winget  --scope user&lt;br /&gt;
&lt;br /&gt;
Machine Global Scope:&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget  --scope machine&lt;br /&gt;
&lt;br /&gt;
 ## Will not work (will throw error), as terminal machine global scope not supported!!&lt;br /&gt;
 #ERROR# winget install Microsoft.WindowsTerminal --source winget  --scope machine&lt;br /&gt;
&lt;br /&gt;
 # Only has machine scope, so all default will end up machine scope&lt;br /&gt;
 winget install --id GitHub.cli --source winget&lt;br /&gt;
 winget install --id GitHub.cli --source winget  --scope machine&lt;br /&gt;
&lt;br /&gt;
Verify:&lt;br /&gt;
 winget list --id GitHub.cli --details&lt;br /&gt;
&lt;br /&gt;
== Common Parameters ==&lt;br /&gt;
&lt;br /&gt;
Find package by exact ID:&lt;br /&gt;
 # -e, --exact           # Find package using exact match&lt;br /&gt;
 # --id &amp;lt;id&amp;gt;             # Filter results by id&lt;br /&gt;
 winget install -e --id Python.Python.3.14&lt;br /&gt;
&lt;br /&gt;
Specify Source:&lt;br /&gt;
 # -s, --source &amp;lt;src&amp;gt;    # Find package using the specified source (usually winget or msstore)&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget&lt;br /&gt;
&lt;br /&gt;
Install by Scope:&lt;br /&gt;
 # --scope user          # Install package user scope (default scope if manifest supports scopes)&lt;br /&gt;
 # --scope machine       # Install package machine scope&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
Install to a different location: (if manifest supports InstallLocation &amp;lt;INSTALLPATH&amp;gt;)&lt;br /&gt;
 # -l, --location &amp;lt;path&amp;gt; # Location to install to (if supported)&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget--scope machine --location c:\python314&lt;br /&gt;
&lt;br /&gt;
Short vs Long&lt;br /&gt;
 # -e, --exact           # Find package using exact match&lt;br /&gt;
 # --id &amp;lt;id&amp;gt;             # Filter results by id&lt;br /&gt;
 # -s, --source &amp;lt;src&amp;gt;    # Find package using the specified source (usually winget or msstore)&lt;br /&gt;
 # --scope user          # Install package user scope (default scope if manifest supports scopes)&lt;br /&gt;
 # --scope machine       # Install package machine scope&lt;br /&gt;
 # -l, --location &amp;lt;path&amp;gt; # Location to install to (if supported)&lt;br /&gt;
 winget install -e --id Python.Python.3.14 -s winget --scope machine -l c:\python314&lt;br /&gt;
 winget install --exact --id Python.Python.3.14 --source winget--scope machine --location c:\python314&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== List available update packages ===&lt;br /&gt;
&lt;br /&gt;
 winget update&lt;br /&gt;
&lt;br /&gt;
=== Update all Packages ===&lt;br /&gt;
&lt;br /&gt;
 winget update --all&lt;br /&gt;
&lt;br /&gt;
Other options:&lt;br /&gt;
  -u,--unknown,--include-unknown       Upgrade packages even if their current version cannot be determined&lt;br /&gt;
  --pinned,--include-pinned            Upgrade packages even if they have a non-blocking pin&lt;br /&gt;
&lt;br /&gt;
Upgrade all, including packages with unknown package versions:&lt;br /&gt;
 winget update --all --include-unknown&lt;br /&gt;
&lt;br /&gt;
== Upgrade All Packages ==&lt;br /&gt;
&lt;br /&gt;
Upgrade package:&lt;br /&gt;
 winget upgrade &amp;lt;package&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upgrade or Update&lt;br /&gt;
 ## &amp;gt; winget upgrade --help&lt;br /&gt;
 ##   The following command aliases are available:&lt;br /&gt;
 ##     update&lt;br /&gt;
 ## Note: winget will responde to both &#039;upgrade&#039; or &#039;update&#039; (alias for &#039;upgrade&#039;)&lt;br /&gt;
 winget upgrade &amp;lt;package&amp;gt;&lt;br /&gt;
 winget update &amp;lt;package&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upgrade all packages:&lt;br /&gt;
 # -r,--recurse,--all                   Upgrade all installed packages to latest if available&lt;br /&gt;
 winget upgrade --all&lt;br /&gt;
&lt;br /&gt;
Include unknown version packages:&lt;br /&gt;
 # -u,--unknown,--include-unknown       Upgrade packages even if their current version cannot be determined&lt;br /&gt;
 winget upgrade --all -u&lt;br /&gt;
&lt;br /&gt;
=== Exclude Package from Upgrade with Pin ===&lt;br /&gt;
&lt;br /&gt;
Example of Pinning Synergy (for example if you are still using Synergy Pro 1):&lt;br /&gt;
 winget pin add symless.synergy&lt;br /&gt;
&lt;br /&gt;
 winget pin remove symless.synergy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 winget pin list&lt;br /&gt;
 winget pin reset&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following sub-commands are available:&lt;br /&gt;
  add     Add a new pin&lt;br /&gt;
  remove  Remove a package pin&lt;br /&gt;
  list    List current pins&lt;br /&gt;
  reset   Reset pins&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Browse Winget Library ==&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/&lt;br /&gt;
&lt;br /&gt;
=== Winget Manifest Repository ===&lt;br /&gt;
&lt;br /&gt;
 https://github.com/microsoft/winget-pkgs/tree/master/manifests&lt;br /&gt;
&lt;br /&gt;
Sample Python 3.14 Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3/14/3.14.3&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.yaml&lt;br /&gt;
&lt;br /&gt;
== Manifest Package Structure ==&lt;br /&gt;
 Create your package manifest&lt;br /&gt;
 https://github.com/microsoft/winget-cli/blob/master/doc/windows/package-manager/package/manifest.md&lt;br /&gt;
&lt;br /&gt;
== Debugging Install Failures ==&lt;br /&gt;
&lt;br /&gt;
Debugging install failure: &amp;lt;ref&amp;gt;https://github.com/microsoft/terminal/issues/13676&amp;lt;/ref&amp;gt;&lt;br /&gt;
 # determine where logs are stored:&lt;br /&gt;
 winget --info&lt;br /&gt;
 # Install with extra logs enabled:&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --verbose-logs --source winget&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Winget Directories&lt;br /&gt;
-------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
=== Upgrade Winget ===&lt;br /&gt;
&lt;br /&gt;
OBVIOUSLY RUN IN ADMINISTRATOR WINDOW!!&lt;br /&gt;
&lt;br /&gt;
Winget appears to upgrade automatically - part of Windows upgrades, but if you need to force an upgrade...&lt;br /&gt;
&lt;br /&gt;
Winget upgrade with winget - this doesn&#039;t seem to work, but try it anyways: (admin window)&lt;br /&gt;
 winget upgrade Microsoft.AppInstaller --source winget --force&lt;br /&gt;
&lt;br /&gt;
If that fails, and needs a hard reset, try the hard install method, this always works: (Powershell Admin Window)&lt;br /&gt;
 ## Might be able to skip the first two steps?&lt;br /&gt;
 Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force&lt;br /&gt;
 Install-Module -Force -Repository PSGallery -Name Microsoft.WinGet.Client&lt;br /&gt;
 Repair-WinGetPackageManager -Force -Latest -AllUsers&lt;br /&gt;
&lt;br /&gt;
Verify version:&lt;br /&gt;
 winget --version&lt;br /&gt;
&lt;br /&gt;
Latest as of 2026.07.18:&lt;br /&gt;
 v1.29.280&lt;br /&gt;
&lt;br /&gt;
=== Install WindowsTerminal ===&lt;br /&gt;
 PackageIdentifier: Microsoft.WindowsTerminal  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: terminal  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Scope: user   &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
   - No machine scope!!! :-(&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget --force&lt;br /&gt;
&lt;br /&gt;
 ## SCOPE - default and only supported is user scope&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget --scope user&lt;br /&gt;
 #ERROR#  winget install Microsoft.WindowsTerminal --source winget --scope machine  # machine scope not supported (will say not found)&lt;br /&gt;
&lt;br /&gt;
Only Scope user is supported:&lt;br /&gt;
 winget install --scope user Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
Scope Machine is not supported:&lt;br /&gt;
 # (not supported - bad example) winget install --scope machine Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
Dep:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/UI/Xaml/2/8&lt;br /&gt;
** https://github.com/microsoft/microsoft-ui-xaml/releases/download/v2.8.6/Microsoft.UI.Xaml.2.8.x64.appx&lt;br /&gt;
&lt;br /&gt;
=== Install WindowsTerminal Preview ===&lt;br /&gt;
 PackageIdentifier: Microsoft.WindowsTerminal.Preview  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: terminal-preview  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Scope: NONE&lt;br /&gt;
  - No scopes defined at all!!  :-(&lt;br /&gt;
&lt;br /&gt;
Preview Version:&lt;br /&gt;
 winget install Microsoft.WindowsTerminal.Preview&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal.Preview --source winget&lt;br /&gt;
   #  Found Windows Terminal Preview [Microsoft.WindowsTerminal.Preview] Version 1.24.10212.0&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.yaml&lt;br /&gt;
&lt;br /&gt;
Preview Manifest:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.yaml&lt;br /&gt;
&lt;br /&gt;
=== Install Powershell ===&lt;br /&gt;
&lt;br /&gt;
Install version 7.5.4.0&lt;br /&gt;
 winget install Microsoft.PowerShell --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install --id Microsoft.PowerShell --source winget&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 winget upgrade --id Microsoft.PowerShell&lt;br /&gt;
&lt;br /&gt;
 winget upgrade --id Microsoft.PowerShell --source winget&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x64.msi&lt;br /&gt;
&lt;br /&gt;
=== Install OpenSSH ===&lt;br /&gt;
&lt;br /&gt;
Install OpenSSH Preview/Beta Version:&lt;br /&gt;
 # Preview version&lt;br /&gt;
 winget install Microsoft.OpenSSH.Preview&lt;br /&gt;
&lt;br /&gt;
 # Beta version&lt;br /&gt;
 winget install Microsoft.OpenSSH.Beta&lt;br /&gt;
&lt;br /&gt;
Install the Inbox Version: &amp;lt;ref&amp;gt;https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=powershell&amp;amp;pivots=windows-11&amp;lt;/ref&amp;gt;&lt;br /&gt;
 # In Admin window:&lt;br /&gt;
&lt;br /&gt;
 # Verify Admin&lt;br /&gt;
 (New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)&lt;br /&gt;
&lt;br /&gt;
 # Verify Capabilities&lt;br /&gt;
 Get-WindowsCapability -Online | Where-Object Name -like &#039;OpenSSH*&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Install the OpenSSH Client&lt;br /&gt;
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0&lt;br /&gt;
# alternative&lt;br /&gt;
Add-WindowsCapability -Online -Name OpenSSH.Client*&lt;br /&gt;
# alternative&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Install the OpenSSH Server&lt;br /&gt;
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0&lt;br /&gt;
# alternative&lt;br /&gt;
Add-WindowsCapability -Online -Name OpenSSH.Server*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the sshd service&lt;br /&gt;
 Start-Service sshd&lt;br /&gt;
&lt;br /&gt;
OPTIONAL but recommended, Set the service to start automatic:&lt;br /&gt;
 Set-Service -Name sshd -StartupType Automatic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify&lt;br /&gt;
if (!(Get-NetFirewallRule -Name &amp;quot;OpenSSH-Server-In-TCP&amp;quot; -ErrorAction SilentlyContinue)) {&lt;br /&gt;
    Write-Output &amp;quot;Firewall Rule &#039;OpenSSH-Server-In-TCP&#039; does not exist, creating it...&amp;quot;&lt;br /&gt;
    New-NetFirewallRule -Name &#039;OpenSSH-Server-In-TCP&#039; -DisplayName &#039;OpenSSH Server (sshd)&#039; -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22&lt;br /&gt;
} else {&lt;br /&gt;
    Write-Output &amp;quot;Firewall rule &#039;OpenSSH-Server-In-TCP&#039; has been created and exists.&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Open firewall:&lt;br /&gt;
 New-NetFirewallRule -Name sshd -DisplayName &#039;OpenSSH Server (sshd)&#039; -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22&lt;br /&gt;
&lt;br /&gt;
=== Install Git ===&lt;br /&gt;
 https://winget.run/pkg/Git/Git&lt;br /&gt;
  winget install -e --id Git.Git&lt;br /&gt;
 PackageIdentifier: Git.Git  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: git  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Scope: user/machine (seem identical)  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Location not supported&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 winget install git.git&lt;br /&gt;
 winget install git.git --source winget&lt;br /&gt;
 winget install git.git --scope machine --source winget  # seems identical to user scope&lt;br /&gt;
&lt;br /&gt;
Git install location:&lt;br /&gt;
 C:\Program Files\Git\cmd\git.exe&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget uninstall git --all&lt;br /&gt;
&lt;br /&gt;
Found:&lt;br /&gt;
 Found Git [Git.Git] Version 2.53.0&lt;br /&gt;
 Downloading https://github.com/git-for-windows/git/releases/download/v2.53.0.windows.1/Git-2.53.0-64-bit.exe&lt;br /&gt;
&lt;br /&gt;
Manifest:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/Git/Git&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.yaml&lt;br /&gt;
&lt;br /&gt;
==== Git-Bash ====&lt;br /&gt;
&lt;br /&gt;
git above includes git-bash&lt;br /&gt;
&lt;br /&gt;
==== GitHub GH Client ====&lt;br /&gt;
 &lt;br /&gt;
See [[GitHub/GH_Client]]&lt;br /&gt;
&lt;br /&gt;
Winget GH Repo Source:&lt;br /&gt;
 https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/GitHub/cli/&lt;br /&gt;
&lt;br /&gt;
Supported Scopes:&lt;br /&gt;
* machine&lt;br /&gt;
** default will install to machine scope&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 # By ID &amp;lt;ref&amp;gt;https://winget.run/pkg/GitHub/cli&amp;lt;/ref&amp;gt;&lt;br /&gt;
 winget install --id GitHub.cli&lt;br /&gt;
&lt;br /&gt;
 winget install --id GitHub.cli --source winget  # default to machine scope&lt;br /&gt;
 #ERROR# winget install --id GitHub.cli --scope user --source winget  # user scope not supported!&lt;br /&gt;
 winget install --id GitHub.cli --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install --id GitHub.cli --scope machine --source winget --version 2.87.2&lt;br /&gt;
&lt;br /&gt;
Upgrade&lt;br /&gt;
 winget upgrade --id GitHub.cli --source winget  # default to machine scope&lt;br /&gt;
 #ERROR# winget upgrade --id GitHub.cli --scope user --source winget  # user scope not supported!&lt;br /&gt;
 winget upgrade --id GitHub.cli --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
Configure for SSH as default:&lt;br /&gt;
 gh config set git_protocol ssh&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
 Found GitHub CLI [GitHub.cli] Version 2.87.2&lt;br /&gt;
 Found GitHub CLI [GitHub.cli] Version 2.96.0&lt;br /&gt;
&lt;br /&gt;
 Downloading https://github.com/cli/cli/releases/download/v2.87.2/gh_2.87.2_windows_amd64.msi&lt;br /&gt;
 Downloading https://github.com/cli/cli/releases/download/v2.96.0/gh_2.96.0_windows_amd64.msi&lt;br /&gt;
&lt;br /&gt;
Machine Scope Installs to:&lt;br /&gt;
 C:\Program Files\GitHub CLI\gh.exe&lt;br /&gt;
&lt;br /&gt;
Local Scope Installs to:&lt;br /&gt;
 n/a - user scope not supported&lt;br /&gt;
&lt;br /&gt;
Uninstall:&lt;br /&gt;
 winget uninstall --id GitHub.cli --all&lt;br /&gt;
&lt;br /&gt;
Package Reference:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GitHub/cli/2.96.0/GitHub.cli.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GitHub/cli/2.96.0/GitHub.cli.installer.yaml&lt;br /&gt;
&lt;br /&gt;
=== Install Strings ===&lt;br /&gt;
&lt;br /&gt;
Similar to the GNU Strings command.&lt;br /&gt;
 winget install -e --id Microsoft.Sysinternals.Strings&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id Microsoft.Sysinternals.Strings --scope machine&lt;br /&gt;
&lt;br /&gt;
 winget uninstall -e --id Microsoft.Sysinternals.Strings&lt;br /&gt;
&lt;br /&gt;
 Downloading https://download.sysinternals.com/files/Strings.zip&lt;br /&gt;
&lt;br /&gt;
Local scope:&lt;br /&gt;
 C:\Users\USER\AppData\Local\Microsoft\WinGet\Links\strings.ex&lt;br /&gt;
&lt;br /&gt;
Machine scope:&lt;br /&gt;
 C:\Program Files\WinGet\Links\strings.exe&lt;br /&gt;
&lt;br /&gt;
=== Install Notepad++ ===&lt;br /&gt;
&lt;br /&gt;
 winget install winget install notepad++&lt;br /&gt;
&lt;br /&gt;
Update Notepad++&lt;br /&gt;
 winget update Notepad++.Notepad++&lt;br /&gt;
&lt;br /&gt;
Notepad++ Install Location:&lt;br /&gt;
 &amp;quot;C:\Program Files\Notepad++\notepad++.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Downloading:&lt;br /&gt;
 https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.9/npp.8.9.Installer.x64.exe&lt;br /&gt;
&lt;br /&gt;
=== Install PowerToys ===&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.PowerToys&lt;br /&gt;
&lt;br /&gt;
=== Install VisualStudioCode ===&lt;br /&gt;
&lt;br /&gt;
User Install:&lt;br /&gt;
 winget install Microsoft.VisualStudioCode&lt;br /&gt;
&lt;br /&gt;
User Install Installed to:&lt;br /&gt;
 &amp;quot;C:\Users\USERNAME\AppData\Local\Programs\Microsoft VS Code\Code.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
User Install Download:&lt;br /&gt;
 https://vscode.download.prss.microsoft.com/dbazure/download/stable/94e8ae2b28cb5cc932b86e1070569c4463565c37/VSCodeUserSetup-x64-1.108.0.exe&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
System install:&lt;br /&gt;
 winget install Microsoft.VisualStudioCode --scope machine&lt;br /&gt;
&lt;br /&gt;
System Install Installed to:&lt;br /&gt;
 &amp;quot;C:\Program Files\Microsoft VS Code\Code.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
System Install Download:&lt;br /&gt;
 https://vscode.download.prss.microsoft.com/dbazure/download/stable/94e8ae2b28cb5cc932b86e1070569c4463565c37/VSCodeSetup-x64-1.108.0.exe&lt;br /&gt;
&lt;br /&gt;
=== Install Microsoft Store ===&lt;br /&gt;
&lt;br /&gt;
Should just be:&lt;br /&gt;
 winget install Microsoft.WindowsStore --source msstore&lt;br /&gt;
&lt;br /&gt;
But doesn&#039;t appear to be working?&lt;br /&gt;
&lt;br /&gt;
 winget source reset --force&lt;br /&gt;
 winget source update&lt;br /&gt;
&lt;br /&gt;
 winget settings --enable BypassCertificatePinningForMicrosoftStore&lt;br /&gt;
&lt;br /&gt;
=== Install Calculator ===&lt;br /&gt;
&lt;br /&gt;
 winget install Calculator --source msstore&lt;br /&gt;
  #  (Calculator&#039;s ID)&lt;br /&gt;
 winget install 9WZDNCRFHVN5 --source msstore&lt;br /&gt;
&lt;br /&gt;
=== Install WinDbg ===&lt;br /&gt;
&lt;br /&gt;
WinDbg [Microsoft.WinDbg] Version 1.2506.12002.0&lt;br /&gt;
&lt;br /&gt;
 winget install windbg --source winget&lt;br /&gt;
&lt;br /&gt;
=== Install SanDisk Dashboard ===&lt;br /&gt;
&lt;br /&gt;
For upgrade drive firmware:&lt;br /&gt;
 winget install SanDisk.Dashboard&lt;br /&gt;
&lt;br /&gt;
 winget install SanDisk.Dashboard --source winget&lt;br /&gt;
&lt;br /&gt;
 # Downloading https://sddashboarddownloads.sandisk.com/wdDashboard/DashboardSetupSA.exe&lt;br /&gt;
&lt;br /&gt;
=== Install RustDesk ===&lt;br /&gt;
&lt;br /&gt;
 winget install RustDesk.RustDesk&lt;br /&gt;
&lt;br /&gt;
 winget install RustDesk.RustDesk --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id RustDesk.RustDesk&lt;br /&gt;
&lt;br /&gt;
ref: https://winstall.app/apps/RustDesk.RustDesk&lt;br /&gt;
&lt;br /&gt;
 # Downloading https://github.com/rustdesk/rustdesk/releases/download/1.4.1/rustdesk-1.4.1-x86_64.exe&lt;br /&gt;
&lt;br /&gt;
Note: newer version 1.4.4 was available that winget did not detect!  :-(&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; winget list | findstr RustDesk&lt;br /&gt;
 RustDesk                                      RustDesk.RustDesk                             1.4.4              winget&lt;br /&gt;
&lt;br /&gt;
=== Install Discord ===&lt;br /&gt;
&lt;br /&gt;
 winget install Discord.Discord&lt;br /&gt;
&lt;br /&gt;
 winget install Discord.Discord --source winget&lt;br /&gt;
&lt;br /&gt;
=== Install HWiNFO ===&lt;br /&gt;
&lt;br /&gt;
 winget install hwinfo&lt;br /&gt;
&lt;br /&gt;
Start Menu -&amp;gt; HWiNFO 64 -&amp;gt; HWiNFO 64&lt;br /&gt;
 &amp;quot;C:\Program Files\HWiNFO64\HWiNFO64.EXE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 https://www.hwinfo.com/download/&lt;br /&gt;
&lt;br /&gt;
Downloading https://sourceforge.net/projects/hwinfo/files/Windows_Installer/hwi64_834.exe/download&lt;br /&gt;
&lt;br /&gt;
=== Install Synergy ===&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Symless.Synergy&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id=Symless.Synergy&lt;br /&gt;
&lt;br /&gt;
Upgrade:&lt;br /&gt;
 winget upgrade symless.synergy&lt;br /&gt;
&lt;br /&gt;
Example of Pinning Synergy (for example if you are still using Synergy Pro 1):&lt;br /&gt;
 winget pin add symless.synergy&lt;br /&gt;
&lt;br /&gt;
=== Install Wireshark ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id WiresharkFoundation.Wireshark --source winget&lt;br /&gt;
&lt;br /&gt;
Must install npcap capture device:&lt;br /&gt;
 https://npcap.com/#download&lt;br /&gt;
&lt;br /&gt;
=== OpenJDK ===&lt;br /&gt;
&lt;br /&gt;
 winget install openjdk --source winget&lt;br /&gt;
&lt;br /&gt;
Title:&lt;br /&gt;
 Microsoft Build of OpenJDK with Hotspot 17 [Microsoft.OpenJDK.17] Version 17.0.18.8&lt;br /&gt;
&lt;br /&gt;
Source:&lt;br /&gt;
 Downloading https://aka.ms/download-JDK/microsoft-JDK-17.0.18-windows-x64.msi#winget&lt;br /&gt;
&lt;br /&gt;
Installation location:&lt;br /&gt;
 C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot\&lt;br /&gt;
&lt;br /&gt;
Provides:&lt;br /&gt;
 java - C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot\bin\java.exe&lt;br /&gt;
 keytool - C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot\bin\keytool.exe&lt;br /&gt;
&lt;br /&gt;
=== Slack ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id SlackTechnologies.Slack&lt;br /&gt;
&lt;br /&gt;
 winget install SlackTechnologies.Slack --source winget&lt;br /&gt;
&lt;br /&gt;
=== Paint.net ===&lt;br /&gt;
&lt;br /&gt;
 winget install paint.net --source winget&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name      Id                 Source&lt;br /&gt;
-----------------------------------&lt;br /&gt;
paint.net dotPDN.PaintDotNet winget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IrfanView ===&lt;br /&gt;
&lt;br /&gt;
 https://winget.run/pkg/IrfanSkiljan/IrfanView&lt;br /&gt;
&lt;br /&gt;
  winget install -e --id IrfanSkiljan.IrfanView&lt;br /&gt;
&lt;br /&gt;
  winget install -e --id IrfanSkiljan.IrfanView --scope machine&lt;br /&gt;
&lt;br /&gt;
  winget install -e --id IrfanSkiljan.IrfanView --source winget --scope machine&lt;br /&gt;
  winget install -e --id IrfanSkiljan.IrfanView --source msstore --scope machine&lt;br /&gt;
&lt;br /&gt;
Both:&lt;br /&gt;
 winget install -e --id irfanview irfanview.plugins --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
==== IrfanView Plugins ====&lt;br /&gt;
&lt;br /&gt;
No &amp;quot;scope machine&amp;quot; for the plugins?&lt;br /&gt;
&lt;br /&gt;
 winget search irfanview.plugins&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id IrfanSkiljan.IrfanView.PlugIns&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id IrfanSkiljan.IrfanView.PlugIns --source winget&lt;br /&gt;
&lt;br /&gt;
Both:&lt;br /&gt;
 winget install -e --id irfanview irfanskiljan.irfanview.plugins --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
==== Python Install Manager (PIM) ====&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id Python.PythonInstallManager&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id Python.PythonInstallManager --scope machine&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id Python.PythonInstallManager --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
Installs to:&lt;br /&gt;
 C:\Program Files\PyManager\py.exe&lt;br /&gt;
&lt;br /&gt;
List installed python versions&lt;br /&gt;
 py --list&lt;br /&gt;
&lt;br /&gt;
Install Python 3.14 with PIM:&lt;br /&gt;
 py install 3.14&lt;br /&gt;
&lt;br /&gt;
Uninstall:&lt;br /&gt;
 winget uninstall Python.PythonInstallManager&lt;br /&gt;
&lt;br /&gt;
 winget uninstall Python.PythonInstallManager --all&lt;br /&gt;
 winget uninstall python.launcher --all-versions&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
 Found Python Install Manager [Python.PythonInstallManager] Version 25.2.240.0&lt;br /&gt;
 Downloading https://www.python.org/ftp/python/pymanager/python-manager-25.2.msi&lt;br /&gt;
&lt;br /&gt;
==== Python Launcher ====&lt;br /&gt;
&lt;br /&gt;
Use Python Install Manager version instead!&lt;br /&gt;
&lt;br /&gt;
NOTE: BAD WINGET PACKAGE - DOES NOT SUPPORT GLOBAL SCOPE&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Python.Launcher&lt;br /&gt;
 PackageIdentifier: Python.Launcher&lt;br /&gt;
 moniker: python-launcher &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Does NOT support install path &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Does NOT support scoped installs &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WARNING: AS YOU CAN SEE FROM THE MANIFEST, THE PYTHON LAUNCHER DOES NOT SUPPORT SCOPED INSTALLS - AND LOOKS LIKE A LOCAL SCOPE INSTALL&lt;br /&gt;
 &amp;lt;s&amp;gt;winget install python.launcher --source winget --scope machine&amp;lt;/s&amp;gt;&lt;br /&gt;
 &amp;lt;s&amp;gt; winget install python.launcher --source winget --scope user&amp;lt;/s&amp;gt;&lt;br /&gt;
 Error: No applicable installer found; see logs for more details.&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 winget install python.launcher --source winget&lt;br /&gt;
&lt;br /&gt;
 # Installs to: C:\Users\USER\AppData\Local\Programs\Python\Launcher\py.exe&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget remove python.launcher&lt;br /&gt;
&lt;br /&gt;
Remove all versions:&lt;br /&gt;
 winget remove python.launcher --all-versions&lt;br /&gt;
&lt;br /&gt;
Downloading: Downloading https://www.python.org/ftp/python/3.13.5/win32/launcher.msi&lt;br /&gt;
 Found Python Launcher [Python.Launcher] Version 3.13.5&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Launcher/3.13.5&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.yaml&lt;br /&gt;
&lt;br /&gt;
==== Python 3.14 ====&lt;br /&gt;
&lt;br /&gt;
 winget install python.python.3.14 --source winget --scope machine --location C:\python314&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Python.Python.3.14&lt;br /&gt;
 PackageVersion: 3.14.3 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: python3 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports install path &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports scoped installs &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install by direct ID:&lt;br /&gt;
 winget install -e --id Python.Python.3.14&lt;br /&gt;
&lt;br /&gt;
Install by Moniker:&lt;br /&gt;
 winget install python3&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
Install Globally:&lt;br /&gt;
 winget install python.python.3.14 --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
 Installs to: C:\Program Files\Python314\python.exe&lt;br /&gt;
&lt;br /&gt;
Install to C:\python314:&lt;br /&gt;
 winget install python.python.3.14 --source winget --scope machine --location C:\python314&lt;br /&gt;
 winget install python.python.3.14 -s winget --scope machine -l C:\python314&lt;br /&gt;
&lt;br /&gt;
 # hack:&lt;br /&gt;
 cp c:\python314\python.exe c:\python314\python314.exe&lt;br /&gt;
 cp c:\python314\python.exe c:\python314\python3.14.exe&lt;br /&gt;
&lt;br /&gt;
Install for User:&lt;br /&gt;
 winget install python.python.3.14 --source winget --scope User&lt;br /&gt;
 # or just&lt;br /&gt;
 winget install python.python.3.14 --source winget&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget remove python.python.3.14&lt;br /&gt;
&lt;br /&gt;
 # if you did the hack:&lt;br /&gt;
 del c:\python314\python314.exe&lt;br /&gt;
 del c:\python314\python3.14.exe&lt;br /&gt;
 rmdir c:\python314&lt;br /&gt;
&lt;br /&gt;
Remove all doesn&#039;t seem to be working: (not working???)&lt;br /&gt;
 winget list | grep -i python&lt;br /&gt;
 winget remove Python.Python --all-versions&lt;br /&gt;
 winget remove --id python.python.3 --all-versions&lt;br /&gt;
&lt;br /&gt;
Downloading: Downloading https://www.python.org/ftp/python/3.14.3/python-3.14.3-amd64.exe&lt;br /&gt;
 Found Python 3.14 [Python.Python.3.14] Version 3.14.3&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3/14/3.14.3&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.yaml&lt;br /&gt;
&lt;br /&gt;
==== Python 3.12 ====&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Python.Python.3.12&lt;br /&gt;
 PackageIdentifier: Python.Python.3.12 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: python3.12 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports install path &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports scoped installs &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install by direct ID:&lt;br /&gt;
 winget install -e --id Python.Python.3.12&lt;br /&gt;
&lt;br /&gt;
Install by Moniker:&lt;br /&gt;
 winget install python3.12&lt;br /&gt;
&lt;br /&gt;
Install Globally:&lt;br /&gt;
 winget install python.python.3.12 --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
 Installs to: C:\Program Files\Python312\python.exe&lt;br /&gt;
&lt;br /&gt;
Install to C:\python312:&lt;br /&gt;
 winget install python.python.3.12 --source winget --scope machine --location C:\python314&lt;br /&gt;
 winget install python.python.3.12 -s winget --scope machine -l C:\python312&lt;br /&gt;
&lt;br /&gt;
Install for User:&lt;br /&gt;
 winget install python.python.3.12 --source winget --scope User&lt;br /&gt;
 # or just&lt;br /&gt;
 winget install python.python.3.12 --source winget&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget remove python.python.3.12&lt;br /&gt;
&lt;br /&gt;
Downloading: Downloading https://www.python.org/ftp/python/3.12.10/python-3.12.10-amd64.exe&lt;br /&gt;
 Found Python 3.12 [Python.Python.3.12] Version 3.12.10&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3/12/3.12.10&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.yaml&lt;br /&gt;
&lt;br /&gt;
==== Python 3.8 ====&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Python.Python.3.8&lt;br /&gt;
 PackageIdentifier: Python.Python.3.8 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: python3.8 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports install path &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports scopped installs &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install by direct ID:&lt;br /&gt;
 winget install -e --id Python.Python.3.8&lt;br /&gt;
&lt;br /&gt;
Install by Moniker:&lt;br /&gt;
 winget install python3.8&lt;br /&gt;
&lt;br /&gt;
Install Globally:&lt;br /&gt;
 winget install python.python3.8 --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
Install to C:\python38:&lt;br /&gt;
 winget install python.python.3.8 --source winget --scope machine --location C:\python38&lt;br /&gt;
 winget install python.python.3.8 -s winget --scope machine -l C:\python38&lt;br /&gt;
&lt;br /&gt;
Install for User:&lt;br /&gt;
 winget install python.python3.8 --source winget --scope User&lt;br /&gt;
 # or just&lt;br /&gt;
 winget install python.python3.8 --source winget&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget remove python.python.3.8&lt;br /&gt;
&lt;br /&gt;
Downloading: https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe&lt;br /&gt;
 Found Python 3.8 [Python.Python.3.8] Version 3.8.10&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3/8/3.8.10&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.yaml&lt;br /&gt;
&lt;br /&gt;
=== GnuWin32 Tools ===&lt;br /&gt;
 https://winget.run/search?query=GnuWin32&lt;br /&gt;
&lt;br /&gt;
* GetText&lt;br /&gt;
* Make&lt;br /&gt;
* Zip&lt;br /&gt;
* Grep&lt;br /&gt;
* UnZip&lt;br /&gt;
* Tree&lt;br /&gt;
* FindUtils&lt;br /&gt;
* Tar&lt;br /&gt;
&lt;br /&gt;
==== GnuWin32.Grep ====&lt;br /&gt;
 https://winget.run/pkg/GnuWin32/Grep&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id GnuWin32.Grep&lt;br /&gt;
&lt;br /&gt;
 winget install GnuWin32.Grep --source winget&lt;br /&gt;
&lt;br /&gt;
Interactive: (even interactive does not auto add to path)&lt;br /&gt;
 # -i,--interactive&lt;br /&gt;
 winget install GnuWin32.Grep -i --source winget&lt;br /&gt;
&lt;br /&gt;
Uninstall:&lt;br /&gt;
 winget uninstall GnuWin32.Grep&lt;br /&gt;
&lt;br /&gt;
Installs to: (not included in path)&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32\bin&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32\bin\grep.exe&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32\bin\egrep.exe&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32\bin\fgrep.exe&lt;br /&gt;
&lt;br /&gt;
 Found GnuWin32: Grep [GnuWin32.Grep] Version 2.5.4&lt;br /&gt;
 Downloading https://sourceforge.net/projects/gnuwin32/files/grep/2.5.4/grep-2.5.4-setup.exe/download&lt;br /&gt;
&lt;br /&gt;
Manifest:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/GnuWin32/Grep&lt;br /&gt;
-&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GnuWin32/Grep/2.5.4/GnuWin32.Grep.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GnuWin32/Grep/2.5.4/GnuWin32.Grep.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GnuWin32/Grep/2.5.4/GnuWin32.Grep.yaml&lt;br /&gt;
&lt;br /&gt;
=== Thunderbird ===&lt;br /&gt;
&lt;br /&gt;
 winget install Mozilla.Thunderbird&lt;br /&gt;
&lt;br /&gt;
=== rsync ===&lt;br /&gt;
&lt;br /&gt;
Have not found a Windows rsync through winget directly yet, but there is two MSYS2 options:&lt;br /&gt;
&lt;br /&gt;
see [[Windows/rsync]]&lt;br /&gt;
&lt;br /&gt;
 winget install MSYS2.MSYS2 --source winget&lt;br /&gt;
 pacman -S rsync&lt;br /&gt;
&lt;br /&gt;
=== dig ===&lt;br /&gt;
&lt;br /&gt;
 winget install ISC.BIND&lt;br /&gt;
&lt;br /&gt;
 winget install ISC.BIND --scope machine&lt;br /&gt;
&lt;br /&gt;
 winget uninstall ISC.BIND&lt;br /&gt;
&lt;br /&gt;
 Found Bind 9 [ISC.Bind] Version 9.17.12&lt;br /&gt;
 Downloading https://downloads.isc.org/isc/bind9/9.17.12/BIND9.17.12.x64.zip&lt;br /&gt;
&lt;br /&gt;
 where dig:&lt;br /&gt;
   # scope machine:&lt;br /&gt;
   C:\Program Files\WinGet\Packages\ISC.Bind_Microsoft.Winget.Source_8wekyb3d8bbwe\dig.exe&lt;br /&gt;
   # scope default:&lt;br /&gt;
   C:\Users\USER\AppData\Local\Microsoft\WinGet\Packages\ISC.Bind_Microsoft.Winget.Source_8wekyb3d8bbwe\dig.exe&lt;br /&gt;
&lt;br /&gt;
==== dig app ====&lt;br /&gt;
&lt;br /&gt;
 winget uninstall dig&lt;br /&gt;
&lt;br /&gt;
NOTE: this is NOT the command line tool!!&lt;br /&gt;
&lt;br /&gt;
 winget install dig&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;DNS Lookup - dig nslookup&amp;quot;&lt;br /&gt;
 publisher: Publisher: Wuhan Bami Technology Co., Ltd.&lt;br /&gt;
 license: ms-windows-store://pdp/?ProductId=9MW6QQ8J0V6T&lt;br /&gt;
&lt;br /&gt;
 winget show dig&lt;br /&gt;
&lt;br /&gt;
=== MSYS2 ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id MSYS2.MSYS2&lt;br /&gt;
&lt;br /&gt;
 winget install MSYS2.MSYS2 --source winget&lt;br /&gt;
&lt;br /&gt;
 Found MSYS2 Installer [MSYS2.MSYS2] Version 20251213&lt;br /&gt;
 Downloading https://github.com/msys2/msys2-installer/releases/download/2025-12-13/msys2-x86_64-20251213.exe&lt;br /&gt;
&lt;br /&gt;
# Launch an MSYS2 terminal from the Start Menu (e.g., &amp;quot;MSYS2 UCRT64&amp;quot;)&lt;br /&gt;
# Update the core packages by running the following command in the MSYS2 terminal:&lt;br /&gt;
#* pacman -Syu&lt;br /&gt;
&lt;br /&gt;
=== Copilot ===&lt;br /&gt;
&lt;br /&gt;
 winget install GitHub.Copilot --source winget&lt;br /&gt;
&lt;br /&gt;
=== Copilot CLI ===&lt;br /&gt;
&lt;br /&gt;
 winget install GitHub.cli&lt;br /&gt;
&lt;br /&gt;
=== Keeper ===&lt;br /&gt;
&lt;br /&gt;
 # throwing access denied??&lt;br /&gt;
 winget install KeeperSecurity.KeeperDesktop --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install KeeperSecurity.KeeperDesktop --source winget&lt;br /&gt;
&lt;br /&gt;
 winget update KeeperSecurity.KeeperDesktop&lt;br /&gt;
&lt;br /&gt;
 winget uninstall KeeperSecurity.KeeperDesktop --all&lt;br /&gt;
&lt;br /&gt;
=== openssl client ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id ShiningLight.OpenSSL.Dev --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
 openssl s_client -connect api.github.com:443 -showcerts&lt;br /&gt;
 openssl s_client -connect api.github.com:443 -showcerts &amp;lt;/dev/null | grep issuer&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\OpenSSL-Win64\bin&lt;br /&gt;
&lt;br /&gt;
 fix path (powershell):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$oldPath = [Environment]::GetEnvironmentVariable(&amp;quot;Path&amp;quot;, &amp;quot;User&amp;quot;)&lt;br /&gt;
$newPath = $oldPath + &amp;quot;;C:\Program Files\OpenSSL-Win64\bin&amp;quot;&lt;br /&gt;
[Environment]::SetEnvironmentVariable(&amp;quot;Path&amp;quot;, $newPath, &amp;quot;User&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fix path (cmd) - tends to break things:&lt;br /&gt;
 setx PATH &amp;quot;%PATH%;C:\Program Files\OpenSSL-Win64\bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Found OpenSSL [ShiningLight.OpenSSL.Dev] Version 4.0.1&lt;br /&gt;
 Downloading https://slproweb.com/download/Win64OpenSSL-4_0_1.msi&lt;br /&gt;
&lt;br /&gt;
=== Windhawk ===&lt;br /&gt;
&lt;br /&gt;
 winget install RamenSoftware.Windhawk --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install RamenSoftware.Windhawk --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
See [[Windhawk]]&lt;br /&gt;
&lt;br /&gt;
=== ActiveState Perl ===&lt;br /&gt;
&lt;br /&gt;
No longer on Winget - use Strawberry Perl Instead&lt;br /&gt;
&lt;br /&gt;
=== StrawberryPerl ===&lt;br /&gt;
&lt;br /&gt;
 winget install StrawberryPerl.StrawberryPerl&lt;br /&gt;
&lt;br /&gt;
 https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54221_64bit/strawberry-perl-5.42.2.1-64bit.msi&lt;br /&gt;
&lt;br /&gt;
=== wget ===&lt;br /&gt;
&lt;br /&gt;
Alias for JernejSimoncic.Wget&lt;br /&gt;
 winget install wget&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id JernejSimoncic.Wget&lt;br /&gt;
&lt;br /&gt;
 winget install wget --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
User scope:&lt;br /&gt;
 C:\Users\USER\AppData\Local\Microsoft\WinGet\Links\wget.exe&lt;br /&gt;
&lt;br /&gt;
Machine scope:&lt;br /&gt;
 C:\Program Files\WinGet\Links\wget.exe&lt;br /&gt;
&lt;br /&gt;
 Downloading https://eternallybored.org/misc/wget/1.21.4/64/wget.exe&lt;br /&gt;
 Path environment variable modified; restart your shell to use the new value.&lt;br /&gt;
&lt;br /&gt;
=== Heavy Load ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id JAMSoftware.HeavyLoad&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id JAMSoftware.HeavyLoad --scope machine&lt;br /&gt;
&lt;br /&gt;
=== CPU-Z ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id CPUID.CPU-Z&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id CPUID.CPU-Z --scope machine&lt;br /&gt;
&lt;br /&gt;
 winget upgrade -e --id CPUID.CPU-Z&lt;br /&gt;
&lt;br /&gt;
=== HWMonitor ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id CPUID.HWMonitor --scope machine&lt;br /&gt;
&lt;br /&gt;
== Download and Redeploy ==&lt;br /&gt;
&lt;br /&gt;
Download Package on one System:&lt;br /&gt;
 winget download Calculator -s msstore&lt;br /&gt;
 winget download Calculator -s msstore --skip-license&lt;br /&gt;
&lt;br /&gt;
Copy folder to other system&lt;br /&gt;
 Microsoft Store package downloaded: C:\path\9WZDNCRFHVN5\Microsoft.WindowsCalculator_2019.603.2248.0_Universal.Desktop_X86.Arm.X64.appxbundle&lt;br /&gt;
&lt;br /&gt;
Redeploy it on another system:&lt;br /&gt;
 Add-AppxPackage -Path C:\path\9WZDNCRFHVN5\Calculator.appx&lt;br /&gt;
&lt;br /&gt;
Reference: &amp;lt;ref&amp;gt;https://techcommunity.microsoft.com/blog/windows-itpro-blog/use-winget-1-8-to-download-microsoft-store-apps/4204522&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WinGet Community Packages ==&lt;br /&gt;
&lt;br /&gt;
 Repology&lt;br /&gt;
 https://repology.org/&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
 Windows Package Manager Community Repository&lt;br /&gt;
 https://github.com/microsoft/winget-pkgs&lt;br /&gt;
&lt;br /&gt;
== Explore Windows Package Manager Tool ==&lt;br /&gt;
&lt;br /&gt;
 Explore the Windows Package Manager tool - Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/training/modules/explore-windows-package-manager-tool/?WT.mc_id=AZ-MVP-5004737&lt;br /&gt;
&lt;br /&gt;
== PowerShell ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS &amp;gt; import-module Microsoft.WinGet.Client -verbose&lt;br /&gt;
VERBOSE: Loading module from path &#039;C:\Program Files\WindowsPowerShell\Modules\Microsoft.WinGet.Client\1.8.1911\Microsoft.WinGet.Client.psd1&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Add-WinGetSource&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Assert-WinGetPackageManager&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Disable-WinGetSetting&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Enable-WinGetSetting&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Export-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Find-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetSettings&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetSource&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetUserSettings&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetVersion&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Install-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Remove-WinGetSource&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Repair-WinGetPackageManager&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Reset-WinGetSource&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Set-WinGetUserSettings&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Test-WinGetUserSettings&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Uninstall-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Update-WinGetPackage&#039;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Package List Command ==&lt;br /&gt;
&lt;br /&gt;
 winget list - The list command of the winget tool displays a list of the applications currently installed on your computer. The list command will show apps that were installed through the Windows Package Manager as well as apps that were installed by other means. &amp;lt;ref&amp;gt;https://learn.microsoft.com/en-us/windows/package-manager/winget/list&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example list:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\&amp;gt; winget list&lt;br /&gt;
Name                                  Id                                     Version              Available      Source&lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Windows Driver Package - Plantronics… ARP\Machine\X64\07AFE62D73C8799E9E568… 04/21/2009 5.1&lt;br /&gt;
Windows Driver Package - Cambridge S… ARP\Machine\X64\452AADC6DA7150831AEE7… 11/19/2021 4.0.2.0&lt;br /&gt;
7-Zip 24.09 (x64)                     7zip.7zip                              24.09                               winget&lt;br /&gt;
Windows Driver Package - Silicon Lab… ARP\Machine\X64\9E2C239D42290B984A9E2… 09/19/2016 6.7.4.261&lt;br /&gt;
CPUID CPU-Z 2.13                      CPUID.CPU-Z                            2.13                 2.15           winget&lt;br /&gt;
Firefox Developer Edition (x64 en-US) Mozilla.Firefox.DeveloperEdition       137.0                               winget&lt;br /&gt;
Git                                   Git.Git                                2.47.1.2             2.49.0         winget&lt;br /&gt;
Greenshot 1.2.10.6                    Greenshot.Greenshot                    1.2.10.6                            winget&lt;br /&gt;
IrfanView 4.70 (64-bit)               IrfanSkiljan.IrfanView                 4.70                                winget&lt;br /&gt;
Mozilla Firefox (x64 en-US)           Mozilla.Firefox                        136.0.2                             winget&lt;br /&gt;
Mozilla Thunderbird (x64 en-US)       Mozilla.Thunderbird.ESR                128.2.3              128.8.0        winget&lt;br /&gt;
Mozilla Maintenance Service           ARP\Machine\X64\MozillaMaintenanceSer… 136.0&lt;br /&gt;
Notepad++ (64-bit x64)                Notepad++.Notepad++                    8.7.7                8.7.8          winget&lt;br /&gt;
Microsoft 365 Apps for enterprise - … Microsoft.Office                       16.0.18526.20168                    winget&lt;br /&gt;
Microsoft OneDrive                    Microsoft.OneDrive                     25.035.0223.0003                    winget&lt;br /&gt;
VLC media player                      VideoLAN.VLC                           3.0.21                              winget&lt;br /&gt;
WinMerge 2.16.46.0 x64                WinMerge.WinMerge                      2.16.46.0                           winget&lt;br /&gt;
Synergy (64-bit)                      Symless.Synergy                        &amp;lt; 3.0.80.1-rc3       3.0.80.1-rc3   winget&lt;br /&gt;
Google Chrome                         Google.Chrome                          134.0.6998.165       134.0.6998.166 winget&lt;br /&gt;
Beyond Compare 4                      ScooterSoftware.BeyondCompare.4        4.4.7.28397                         winget&lt;br /&gt;
YubiKey Manager CLI                   Yubico.YubiKeyManagerCLI               5.5.0.0              5.6.1          winget&lt;br /&gt;
MongoDB Compass                       MongoDB.Compass.Full                   1.43.4.0             1.45.4.0       winget&lt;br /&gt;
Google Drive                          Google.GoogleDrive                     105.0.1.0                           winget&lt;br /&gt;
Microsoft SQL Server Compact 4.0 SP1… ARP\Machine\X64\{78909610-D229-459C-A… 4.0.8876.1&lt;br /&gt;
MongoDB Shell                         MongoDB.Shell                          2.2.15               2.4.2          winget&lt;br /&gt;
Intel(R) Serial IO                    ARP\Machine\X64\{9FD91C5C-44AE-4D9D-8… 30.100.2129.8&lt;br /&gt;
Microsoft Teams Meeting Add-in for M… ARP\Machine\X64\{A7AB73A3-CB10-4AA5-9… 1.24.31301&lt;br /&gt;
Wave                                  CommandLine.Wave                       0.9.3.0              0.11.2         winget&lt;br /&gt;
Adobe Acrobat (64-bit)                Adobe.Acrobat.Reader.64-bit            25.001.20435                        winget&lt;br /&gt;
RealVNC Viewer 7.13.1                 RealVNC.VNCViewer                      7.13.1.57                           winget&lt;br /&gt;
OpenHashTab version v3.0.4            namazso.OpenHashTab                    v3.0.4                              winget&lt;br /&gt;
Microsoft Update Health Tools         ARP\Machine\X64\{C6FD611E-7EFE-488C-A… 5.72.0.0&lt;br /&gt;
PowerShell 7-x64                      Microsoft.PowerShell                   7.5.0.0                             winget&lt;br /&gt;
PowerShell 7.4.6.0-x64                Microsoft.PowerShell                   7.4.6.0                             winget&lt;br /&gt;
GlobalProtect                         ARP\Machine\X64\{D69F9E89-516A-4543-9… 6.2.3&lt;br /&gt;
Slack (Machine)                       SlackTechnologies.Slack                4.42.120             4.43.49        winget&lt;br /&gt;
Paint.NET                             dotPDN.PaintDotNet                     5.1.4                5.1.7          winget&lt;br /&gt;
Microsoft Visual Studio Code          Microsoft.VisualStudioCode             1.98.2                              winget&lt;br /&gt;
Adobe Creative Cloud                  Adobe.CreativeCloud                    6.5.0.348                           winget&lt;br /&gt;
Citrix Workspace 2409                 ARP\Machine\X86\CitrixOnlinePluginPac… 24.9.10.28&lt;br /&gt;
GnuWin32: CoreUtils version 5.3.0     ARP\Machine\X86\CoreUtils-5.3.0_is1    5.3.0&lt;br /&gt;
FileZilla 3.68.1                      ARP\Machine\X86\FileZilla Client       3.68.1&lt;br /&gt;
Google Chrome Beta                    Google.Chrome.Beta.EXE                 135.0.7049.28                       winget&lt;br /&gt;
Microsoft Edge                        Microsoft.Edge                         134.0.3124.85                       winget&lt;br /&gt;
Prisma Access Browser                 ARP\Machine\X86\Palo Alto Networks Pr… 134.20.7.166&lt;br /&gt;
Windhawk v1.5.1                       RamenSoftware.Windhawk                 1.5.1                               winget&lt;br /&gt;
klogg                                 variar.klogg                           22.06.0.1289                        winget&lt;br /&gt;
WinSCP 6.3.7                          WinSCP.WinSCP                          6.3.7                               winget&lt;br /&gt;
YubiKey Manager                       Yubico.YubikeyManager                  1.2.6                               winget&lt;br /&gt;
Microsoft Visual C++ 2010  x86 Redis… Microsoft.VCRedist.2010.x86            10.0.30319           10.0.40219     winget&lt;br /&gt;
Intel(R) Chipset Device Software      ARP\Machine\X86\{2d8d3782-0c02-4681-8… 10.1.18838.8284&lt;br /&gt;
Microsoft Windows Desktop Runtime - … Microsoft.DotNet.DesktopRuntime.7      7.0.20                              winget&lt;br /&gt;
mControl                              ARP\Machine\X86\{64D959BF-0B83-4AD2-9… Unknown&lt;br /&gt;
Microsoft ASP.NET Core 7.0.20 - Shar… Microsoft.DotNet.AspNetCore.7          7.0.20                              winget&lt;br /&gt;
Python Launcher                       Python.Launcher                        &amp;gt; 3.12.0                            winget&lt;br /&gt;
Plantronics Hub Software              Poly.PlantronicsHub                    3.25.54307.37251                    winget&lt;br /&gt;
MobaXterm                             Mobatek.MobaXterm                      24.2.0.5220          25.1.0.5288    winget&lt;br /&gt;
Microsoft Search in Bing              ARP\Machine\X86\{C17F6DEF-D34C-4B75-9… 2.0.2&lt;br /&gt;
AI Suite 3                            ARP\Machine\X86\{CD36E28B-6023-469A-9… 3.03.36&lt;br /&gt;
Microsoft Teams VDI Citrix plugin     ARP\Machine\X86\{CF8A7E4B-3636-4E6B-9… 24.41.1.1&lt;br /&gt;
Microsoft Visual C++ 2015-2022 Redis… Microsoft.VCRedist.2015+.x64           14.42.34438.0                       winget&lt;br /&gt;
Microsoft Visual C++ 2015-2022 Redis… Microsoft.VCRedist.2015+.x86           14.42.34438.0                       winget&lt;br /&gt;
CrowdStrike Windows Sensor            ARP\Machine\X86\{d223a5fc-7936-4a58-8… 7.21.19205.0&lt;br /&gt;
Microsoft Windows Desktop Runtime - … Microsoft.DotNet.DesktopRuntime.8      8.0.14                              winget&lt;br /&gt;
Adobe Acrobat                         MSIX\AdobeAcrobatDCCoreApp_23.1.0.0_x… 23.1.0.0&lt;br /&gt;
Intel® Graphics Command Center        MSIX\AppUp.IntelGraphicsExperience_1.… 1.100.5688.0&lt;br /&gt;
Microsoft Clipchamp                   MSIX\Clipchamp.Clipchamp_4.1.10320.0_… 4.1.10320.0&lt;br /&gt;
Microsoft Teams                       Microsoft.Teams                        25044.2208.3471.2155                winget&lt;br /&gt;
AV1 Video Extension                   MSIX\Microsoft.AV1VideoExtension_1.3.… 1.3.4.0&lt;br /&gt;
AVC Encoder Video Extension           MSIX\Microsoft.AVCEncoderVideoExtensi… 1.1.13.0&lt;br /&gt;
Windows Application Compatibility En… MSIX\Microsoft.ApplicationCompatibili… 1.2411.16.0&lt;br /&gt;
News                                  MSIX\Microsoft.BingNews_4.56.242.0_x6… 4.56.242.0&lt;br /&gt;
Microsoft Bing                        MSIX\Microsoft.BingSearch_1.1.34.0_x6… 1.1.34.0&lt;br /&gt;
MSN Weather                           MSIX\Microsoft.BingWeather_4.54.63007… 4.54.63007.0&lt;br /&gt;
Copilot                               MSIX\Microsoft.Copilot_1.25024.146.0_… 1.25024.146.0&lt;br /&gt;
App Installer                         Microsoft.AppInstaller                 1.25.340.0                          winget&lt;br /&gt;
Xbox                                  MSIX\Microsoft.GamingApp_2501.1001.3.… 2501.1001.3.0&lt;br /&gt;
Get Help                              MSIX\Microsoft.GetHelp_10.2409.22951.… 10.2409.22951.0&lt;br /&gt;
HEIF Image Extensions                 MSIX\Microsoft.HEIFImageExtension_1.2… 1.2.3.0&lt;br /&gt;
HEVC Video Extensions from Device Ma… MSIX\Microsoft.HEVCVideoExtension_2.2… 2.2.9.0&lt;br /&gt;
MPEG-2 Video Extension                MSIX\Microsoft.MPEG2VideoExtension_1.… 1.0.61931.0&lt;br /&gt;
Microsoft Edge                        MSIX\Microsoft.MicrosoftEdge.Stable_1… 134.0.3124.66&lt;br /&gt;
Microsoft 365 (Office)                MSIX\Microsoft.MicrosoftOfficeHub_18.… 18.2405.1221.0&lt;br /&gt;
Solitaire &amp;amp; Casual Games              MSIX\Microsoft.MicrosoftSolitaireColl… 4.21.12110.0&lt;br /&gt;
Microsoft Sticky Notes                MSIX\Microsoft.MicrosoftStickyNotes_4… 4.0.6104.0&lt;br /&gt;
Microsoft .Net Native Framework Pack… MSIX\Microsoft.NET.Native.Framework.2… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Framework Pack… MSIX\Microsoft.NET.Native.Framework.2… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Runtime Packag… MSIX\Microsoft.NET.Native.Runtime.2.2… 2.2.28604.0&lt;br /&gt;
Microsoft .Net Native Runtime Packag… MSIX\Microsoft.NET.Native.Runtime.2.2… 2.2.28604.0&lt;br /&gt;
OfficePushNotificationsUtility        MSIX\Microsoft.OfficePushNotification… 16.0.18526.20168&lt;br /&gt;
OneDrive                              MSIX\Microsoft.OneDriveSync_25035.223… 25035.223.3.0&lt;br /&gt;
Outlook for Windows                   MSIX\Microsoft.OutlookForWindows_1.20… 1.2025.319.100&lt;br /&gt;
Paint                                 MSIX\Microsoft.Paint_11.2412.311.0_x6… 11.2412.311.0&lt;br /&gt;
Microsoft People                      MSIX\Microsoft.People_10.2202.100.0_x… 10.2202.100.0&lt;br /&gt;
Power Automate                        MSIX\Microsoft.PowerAutomateDesktop_1… 1.0.1394.0&lt;br /&gt;
Raw Image Extension                   MSIX\Microsoft.RawImageExtension_2.5.… 2.5.3.0&lt;br /&gt;
Snipping Tool                         MSIX\Microsoft.ScreenSketch_11.2501.7… 11.2501.7.0&lt;br /&gt;
Windows Security                      MSIX\Microsoft.SecHealthUI_1000.27703… 1000.27703.1006.0&lt;br /&gt;
Store Experience Host                 MSIX\Microsoft.StorePurchaseApp_22411… 22411.1401.1.0&lt;br /&gt;
Microsoft To Do                       MSIX\Microsoft.Todos_0.114.7122.0_x64… 0.114.7122.0&lt;br /&gt;
Microsoft.UI.Xaml.2.7                 Microsoft.UI.Xaml.2.7                  7.2409.9001.0                       winget&lt;br /&gt;
Microsoft.UI.Xaml.2.7                 Microsoft.UI.Xaml.2.7                  7.2409.9001.0                       winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                 Microsoft.UI.Xaml.2.8                  8.2501.31001.0                      winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                 Microsoft.UI.Xaml.2.8                  8.2501.31001.0                      winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Deskto… Microsoft.VCLibs.Desktop.14            14.0.33728.0                        winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Deskto… Microsoft.VCLibs.Desktop.14            14.0.33728.0                        winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtim… MSIX\Microsoft.VCLibs.140.00_14.0.335… 14.0.33519.0&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtim… MSIX\Microsoft.VCLibs.140.00_14.0.335… 14.0.33519.0&lt;br /&gt;
VP9 Video Extensions                  MSIX\Microsoft.VP9VideoExtensions_1.2… 1.2.2.0&lt;br /&gt;
Web Media Extensions                  MSIX\Microsoft.WebMediaExtensions_1.1… 1.1.1295.0&lt;br /&gt;
Webp Image Extensions                 MSIX\Microsoft.WebpImageExtension_1.1… 1.1.1711.0&lt;br /&gt;
Widgets Platform Runtime              MSIX\Microsoft.WidgetsPlatformRuntime… 1.6.8.0&lt;br /&gt;
Dev Home                              Microsoft.DevHome                      0.2000.758.0         0.2001.758.0   winget&lt;br /&gt;
Microsoft Photos                      MSIX\Microsoft.Windows.Photos_2025.11… 2025.11020.11001.0&lt;br /&gt;
Windows Clock                         MSIX\Microsoft.WindowsAlarms_11.2501.… 11.2501.7.0&lt;br /&gt;
WindowsAppRuntime.1.4                 MSIX\Microsoft.WindowsAppRuntime.1.4_… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.4                 MSIX\Microsoft.WindowsAppRuntime.1.4_… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.5                 MSIX\Microsoft.WindowsAppRuntime.1.5_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.5                 MSIX\Microsoft.WindowsAppRuntime.1.5_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.6                 MSIX\Microsoft.WindowsAppRuntime.1.6_… 6000.424.1611.0&lt;br /&gt;
WindowsAppRuntime.1.6                 MSIX\Microsoft.WindowsAppRuntime.1.6_… 6000.424.1611.0&lt;br /&gt;
Windows Calculator                    MSIX\Microsoft.WindowsCalculator_11.2… 11.2501.1.0&lt;br /&gt;
Windows Camera                        MSIX\Microsoft.WindowsCamera_2025.250… 2025.2501.1.0&lt;br /&gt;
Feedback Hub                          MSIX\Microsoft.WindowsFeedbackHub_1.2… 1.2411.17101.0&lt;br /&gt;
Windows Maps                          MSIX\Microsoft.WindowsMaps_1.0.64.0_x… 1.0.64.0&lt;br /&gt;
Windows Notepad                       MSIX\Microsoft.WindowsNotepad_11.2412… 11.2412.16.0&lt;br /&gt;
Windows Sound Recorder                MSIX\Microsoft.WindowsSoundRecorder_1… 1.0.80.0&lt;br /&gt;
Microsoft Store                       MSIX\Microsoft.WindowsStore_22502.140… 22502.1401.4.0&lt;br /&gt;
Windows Terminal                      Microsoft.WindowsTerminal              1.21.10351.0         1.22.10731.0   winget&lt;br /&gt;
Windows Package Manager Source (wing… MSIX\Microsoft.Winget.Source_2025.325… 2025.325.529.21&lt;br /&gt;
Xbox TCUI                             MSIX\Microsoft.Xbox.TCUI_1.24.10001.0… 1.24.10001.0&lt;br /&gt;
Xbox Game Bar Plugin                  MSIX\Microsoft.XboxGameOverlay_1.54.4… 1.54.4001.0&lt;br /&gt;
Game Bar                              MSIX\Microsoft.XboxGamingOverlay_7.22… 7.225.2131.0&lt;br /&gt;
Xbox Identity Provider                MSIX\Microsoft.XboxIdentityProvider_1… 12.115.1001.0&lt;br /&gt;
Game Speech Window                    MSIX\Microsoft.XboxSpeechToTextOverla… 1.97.17002.0&lt;br /&gt;
Phone Link                            MSIX\Microsoft.YourPhone_1.25022.70.0… 1.25022.70.0&lt;br /&gt;
Windows Media Player                  MSIX\Microsoft.ZuneMusic_11.2501.9.0_… 11.2501.9.0&lt;br /&gt;
Movies &amp;amp; TV                           MSIX\Microsoft.ZuneVideo_10.25011.100… 10.25011.10061.0&lt;br /&gt;
Quick Assist                          MSIX\MicrosoftCorporationII.QuickAssi… 2.0.32.0&lt;br /&gt;
Windows Subsystem for Linux           Microsoft.WSL                          2.3.26.0             2.4.12         winget&lt;br /&gt;
Windows Web Experience Pack           MSIX\MicrosoftWindows.Client.WebExper… 525.1301.30.0&lt;br /&gt;
Cross Device Experience Host          MSIX\MicrosoftWindows.CrossDevice_1.2… 1.25021.28.0&lt;br /&gt;
Mail and Calendar                     MSIX\microsoft.windowscommunicationsa… 16005.14326.22301.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\&amp;gt; winget list&lt;br /&gt;
Name                                                Id                                                     Version          Available Source&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
7-Zip 25.01 (x64)                                   7zip.7zip                                              25.01                      winget&lt;br /&gt;
Armoury Crate Service                               ARP\Machine\X64\Armoury Crate Service                  6.3.6.0&lt;br /&gt;
Audacity 3.7.6                                      XP8K0J757HHRDW                                         3.7.6                      msstore&lt;br /&gt;
Beyond Compare 4.4.7                                ScooterSoftware.BeyondCompare.4                        4.4.7.28397                winget&lt;br /&gt;
Docker Desktop                                      Docker.DockerDesktop                                   4.54.0                     winget&lt;br /&gt;
Git                                                 ARP\Machine\X64\Git_is1                                2.52.0&lt;br /&gt;
Greenshot 1.3.301                                   Greenshot.Greenshot                                    1.3.301          1.3.304   winget&lt;br /&gt;
HWiNFO® 64                                          REALiX.HWiNFO                                          8.34                       winget&lt;br /&gt;
IrfanView 4.73 (64-bit)                             IrfanSkiljan.IrfanView                                 4.73                       winget&lt;br /&gt;
Mozilla Firefox ESR (x64 en-US)                     Mozilla.Firefox.ESR                                    140.6.0                    winget&lt;br /&gt;
Mozilla Firefox ESR (x64 en-US)                     Mozilla.Firefox.ESR                                    140.5.0                    winget&lt;br /&gt;
Mozilla Maintenance Service                         ARP\Machine\X64\MozillaMaintenanceService              140.6.0&lt;br /&gt;
Notepad++ (64-bit x64)                              Notepad++.Notepad++                                    8.8.9                      winget&lt;br /&gt;
Microsoft 365 Apps for enterprise - en-us           Microsoft.Office                                       16.0.19328.20266           winget&lt;br /&gt;
Microsoft OneDrive                                  Microsoft.OneDrive                                     25.216.1104.0002           winget&lt;br /&gt;
OpenSSL 3.6.0 (64-bit)                              ShiningLight.OpenSSL.Dev                               3.6.0                      winget&lt;br /&gt;
Luma Island                                         ARP\Machine\X64\Steam App 2408820                      Unknown&lt;br /&gt;
VLC media player                                    VideoLAN.VLC                                           3.0.22                     winget&lt;br /&gt;
Vim 9.1 (x64)                                       ARP\Machine\X64\Vim 9.1                                9.1.1972&lt;br /&gt;
WinMerge x64                                        WinMerge.WinMerge                                      2.16.52.2                  winget&lt;br /&gt;
Webex                                               Cisco.Webex                                            45.12.0.33709              winget&lt;br /&gt;
Strawberry Perl (64-bit)                            StrawberryPerl.StrawberryPerl                          5.42.0.1                   winget&lt;br /&gt;
Microsoft Update Health Tools                       ARP\Machine\X64\{1FC1A6C2-576E-489A-9B4A-92D21F542136} 3.74.0.0&lt;br /&gt;
Synergy (64-bit)                                    Symless.Synergy                                        1.14.6           3.2.1     winget&lt;br /&gt;
ROG Live Service                                    ARP\Machine\X64\{2D87BFB6-C184-4A59-9BBE-3E20CE797631} 3.3.12.0&lt;br /&gt;
Paint.NET                                           dotPDN.PaintDotNet                                     5.1.11                     winget&lt;br /&gt;
Microsoft Defender for Endpoint plug-in for WSL     ARP\Machine\X64\{4BC7FC7C-21F9-4E26-9DBE-A6DEA45636FF} 1.25.825.2&lt;br /&gt;
Google Drive                                        Google.GoogleDrive                                     117.0.0.0                  winget&lt;br /&gt;
YubiKey Manager CLI                                 Yubico.YubiKeyManagerCLI                               5.8.0.0                    winget&lt;br /&gt;
Zoom Workplace (64-bit)                             Zoom.Zoom                                              6.6.23272                  winget&lt;br /&gt;
Microsoft Teams Meeting Add-in for Microsoft Office ARP\Machine\X64\{A7AB73A3-CB10-4AA5-9D38-6AEFFBDE4C91} 1.25.28902&lt;br /&gt;
Windows PC Health Check                             Microsoft.WindowsPCHealthCheck                         4.0.2410.23001             winget&lt;br /&gt;
AURA lighting effect add-on x64                     ARP\Machine\X64\{C5A4A164-4428-4931-B728-96EEF0FA3C44} 0.0.49&lt;br /&gt;
GlobalProtect                                       ARP\Machine\X64\{D69F9E89-516A-4543-9DE1-A4BD75CE851C} 6.2.3&lt;br /&gt;
PowerShell 7-x64                                    Microsoft.PowerShell                                   7.5.4.0                    winget&lt;br /&gt;
PowerShell 7.5.3.0-x64                              Microsoft.PowerShell                                   7.5.3.0                    winget&lt;br /&gt;
Microsoft Visual Studio Code                        Microsoft.VisualStudioCode                             1.107.0                    winget&lt;br /&gt;
OpenHashTab                                         namazso.OpenHashTab                                    3.1.1                      winget&lt;br /&gt;
Windows Subsystem for Linux Update                  ARP\Machine\X64\{F8474A47-8B5D-4466-ACE3-78EAB3BF21A8} 5.10.102.1&lt;br /&gt;
Citrix Workspace 2402                               ARP\Machine\X86\CitrixOnlinePluginPackWeb              24.2.3001.9&lt;br /&gt;
GnuWin32: CoreUtils version 5.3.0                   ARP\Machine\X86\CoreUtils-5.3.0_is1                    5.3.0&lt;br /&gt;
FileZilla 3.69.5                                    ARP\Machine\X86\FileZilla Client                       3.69.5&lt;br /&gt;
Google Chrome                                       Google.Chrome.EXE                                      143.0.7499.41              winget&lt;br /&gt;
Microsoft Edge                                      Microsoft.Edge                                         143.0.3650.80              winget&lt;br /&gt;
Steam                                               Valve.Steam                                            2.10.91.91                 winget&lt;br /&gt;
Dashboard                                           SanDisk.Dashboard                                      5.1.2.2                    winget&lt;br /&gt;
Windhawk v1.7.3                                     RamenSoftware.Windhawk                                 1.7.3                      winget&lt;br /&gt;
GameSDK Service                                     ARP\Machine\X86\{021d69c3-d686-4a94-8fb5-fd1ee782fb14} 1.0.5.0&lt;br /&gt;
Microsoft Visual C++ v14 Redistributable (x86) - 1… Microsoft.VCRedist.2015+.x86                           14.50.35719.0              winget&lt;br /&gt;
AURA lighting effect add-on                         ARP\Machine\X86\{1E2EA04B-FCA7-457E-B6F4-F33E1858E859} 0.0.49&lt;br /&gt;
Microsoft Intune Management Extension               ARP\Machine\X86\{262D9D60-DB70-49A1-9880-B5E140727909} 1.97.107.0&lt;br /&gt;
Microsoft Windows Desktop Runtime - 8.0.22 (x86)    Microsoft.DotNet.DesktopRuntime.8                      8.0.22                     winget&lt;br /&gt;
ASUS Framework Service                              ARP\Machine\X86\{339A6383-7862-46DA-8A9D-E84180EF9424} 4.2.4.7&lt;br /&gt;
Microsoft Purview Information Protection            Microsoft.PurviewInformationProtection                 3.1.310.0                  winget&lt;br /&gt;
Microsoft Visual C++ v14 Redistributable (x64) - 1… Microsoft.VCRedist.2015+.x64                           14.50.35719.0              winget&lt;br /&gt;
Microsoft .NET Runtime - 8.0.22 (x64)               Microsoft.DotNet.Runtime.8                             8.0.22                     winget&lt;br /&gt;
Printer Installer Client                            ARP\Machine\X86\{A9DE0858-9DDD-4E1B-B041-C2AA90DCBF74} 25.0.0.1074&lt;br /&gt;
Microsoft Windows Desktop Runtime - 6.0.36 (x86)    Microsoft.DotNet.DesktopRuntime.6                      6.0.36                     winget&lt;br /&gt;
AURA Service                                        ARP\Machine\X86\{cabfa89d-a59c-47ac-8d18-2032a1f72f20} 3.08.59&lt;br /&gt;
Signal 7.82.0                                       OpenWhisperSystems.Signal                              7.82.0                     winget&lt;br /&gt;
MongoDB Compass                                     MongoDB.Compass.Full                                   1.47.1           1.48.2.0  winget&lt;br /&gt;
Armoury Crate                                       MSIX\ASUSAmbientHAL64_1.0.0.3_neutral__ecvjzhf6c4w7r   1.0.0.3&lt;br /&gt;
Intel® Graphics Command Center                      MSIX\AppUp.IntelGraphicsExperience_1.100.5688.0_x64__… 1.100.5688.0&lt;br /&gt;
Intel® OptaneTM Memory and Storage Management       MSIX\AppUp.IntelOptaneMemoryandStorageManagement_18.1… 18.1.1042.0&lt;br /&gt;
Ubuntu 24.04.1 LTS                                  Canonical.Ubuntu.2404                                  2404.1.26.0                winget&lt;br /&gt;
Microsoft Clipchamp                                 MSIX\Clipchamp.Clipchamp_4.4.10420.0_x64__yxz26nhyzhs… 4.4.10420.0&lt;br /&gt;
Kali Linux                                          OffSec.KaliLinux                                       2025.3.0.0                 winget&lt;br /&gt;
Keeper® Password Manager                            KeeperSecurity.KeeperDesktop                           17.4.1.0                   winget&lt;br /&gt;
Microsoft Teams                                     Microsoft.Teams                                        25306.804.4102.…           winget&lt;br /&gt;
AV1 Video Extension                                 MSIX\Microsoft.AV1VideoExtension_2.0.6.0_x64__8wekyb3… 2.0.6.0&lt;br /&gt;
AVC Encoder Video Extension                         MSIX\Microsoft.AVCEncoderVideoExtension_1.1.21.0_x64_… 1.1.21.0&lt;br /&gt;
Windows Application Compatibility Enhancements      MSIX\Microsoft.ApplicationCompatibilityEnhancements_1… 1.2511.9.0&lt;br /&gt;
News                                                MSIX\Microsoft.BingNews_4.55.62231.0_x64__8wekyb3d8bb… 4.55.62231.0&lt;br /&gt;
Microsoft Bing                                      MSIX\Microsoft.BingSearch_1.1.40.0_x64__8wekyb3d8bbwe  1.1.40.0&lt;br /&gt;
MSN Weather                                         MSIX\Microsoft.BingWeather_4.54.63029.0_x64__8wekyb3d… 4.54.63029.0&lt;br /&gt;
Company Portal                                      MSIX\Microsoft.CompanyPortal_11.2.1672.0_x64__8wekyb3… 11.2.1672.0&lt;br /&gt;
Copilot                                             MSIX\Microsoft.Copilot_1.25114.55.0_x64__8wekyb3d8bbwe 1.25114.55.0&lt;br /&gt;
App Installer                                       Microsoft.AppInstaller                                 1.27.350.0                 winget&lt;br /&gt;
Microsoft Edge Game Assist                          MSIX\Microsoft.Edge.GameAssist_1.0.3456.0_x64__8wekyb… 1.0.3456.0&lt;br /&gt;
Xbox                                                MSIX\Microsoft.GamingApp_2512.1001.34.0_x64__8wekyb3d… 2512.1001.34.0&lt;br /&gt;
Get Help                                            MSIX\Microsoft.GetHelp_10.2409.32612.0_x64__8wekyb3d8… 10.2409.32612.0&lt;br /&gt;
HEIF Image Extension                                MSIX\Microsoft.HEIFImageExtension_1.2.23.0_x64__8weky… 1.2.23.0&lt;br /&gt;
HEVC Video Extensions from Device Manufacturer      MSIX\Microsoft.HEVCVideoExtension_2.4.39.0_x64__8weky… 2.4.39.0&lt;br /&gt;
MPEG-2 Video Extension                              MSIX\Microsoft.MPEG2VideoExtension_1.2.13.0_x64__8wek… 1.2.13.0&lt;br /&gt;
Paint 3D                                            MSIX\Microsoft.MSPaint_6.1907.29027.0_x64__8wekyb3d8b… 6.1907.29027.0&lt;br /&gt;
3D Viewer                                           MSIX\Microsoft.Microsoft3DViewer_1.0.125.0_x64__8weky… 1.0.125.0&lt;br /&gt;
Microsoft Edge                                      MSIX\Microsoft.MicrosoftEdge.Stable_140.0.3485.94_neu… 140.0.3485.94&lt;br /&gt;
Microsoft 365 Copilot                               MSIX\Microsoft.MicrosoftOfficeHub_19.2512.39051.0_x64… 19.2512.39051.0&lt;br /&gt;
Solitaire &amp;amp; Casual Games                            MSIX\Microsoft.MicrosoftSolitaireCollection_4.24.1204… 4.24.12040.0&lt;br /&gt;
Microsoft Sticky Notes                              MSIX\Microsoft.MicrosoftStickyNotes_4.0.6104.0_x64__8… 4.0.6104.0&lt;br /&gt;
Mixed Reality Portal                                MSIX\Microsoft.MixedReality.Portal_2000.21051.1282.0_… 2000.21051.1282…&lt;br /&gt;
Microsoft .Net Native Framework Package 1.7         MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x… 1.7.27413.0&lt;br /&gt;
Microsoft .Net Native Framework Package 1.7         MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x… 1.7.27413.0&lt;br /&gt;
Microsoft .Net Native Framework Package 2.2         MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Framework Package 2.2         MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 1.7           MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x64… 1.7.27422.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 1.7           MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x86… 1.7.27422.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 2.2           MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64… 2.2.28604.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 2.2           MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x86… 2.2.28604.0&lt;br /&gt;
Microsoft.Office.ActionsServer                      MSIX\Microsoft.Office.ActionsServer_16.0.19328.20266_… 16.0.19328.20266&lt;br /&gt;
OneNote for Windows 10                              MSIX\Microsoft.Office.OneNote_16.14326.22589.0_x64__8… 16.14326.22589.0&lt;br /&gt;
OfficePushNotificationsUtility                      MSIX\Microsoft.OfficePushNotificationUtility_16.0.193… 16.0.19328.20266&lt;br /&gt;
OneDrive                                            MSIX\Microsoft.OneDriveSync_25216.1104.2.0_neutral__8… 25216.1104.2.0&lt;br /&gt;
Outlook for Windows                                 MSIX\Microsoft.OutlookForWindows_1.2025.1121.100_x64_… 1.2025.1121.100&lt;br /&gt;
Paint                                               MSIX\Microsoft.Paint_11.2510.311.0_x64__8wekyb3d8bbwe  11.2510.311.0&lt;br /&gt;
Microsoft People                                    MSIX\Microsoft.People_10.2202.100.0_x64__8wekyb3d8bbwe 10.2202.100.0&lt;br /&gt;
Power Automate                                      MSIX\Microsoft.PowerAutomateDesktop_1.0.2046.0_x64__8… 1.0.2046.0&lt;br /&gt;
Raw Image Extension                                 MSIX\Microsoft.RawImageExtension_2.5.7.0_x64__8wekyb3… 2.5.7.0&lt;br /&gt;
Snipping Tool                                       MSIX\Microsoft.ScreenSketch_11.2510.31.0_x64__8wekyb3… 11.2510.31.0&lt;br /&gt;
Windows Security                                    MSIX\Microsoft.SecHealthUI_1000.29429.1000.0_x64__8we… 1000.29429.1000…&lt;br /&gt;
Microsoft Engagement Framework                      MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0… 10.0.23012.0&lt;br /&gt;
Microsoft Engagement Framework                      MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0… 10.0.23012.0&lt;br /&gt;
Skype                                               MSIX\Microsoft.SkypeApp_15.150.3125.0_x64__kzf8qxf38z… 15.150.3125.0&lt;br /&gt;
Start Experiences App                               MSIX\Microsoft.StartExperiencesApp_1.179.4.0_x64__8we… 1.179.4.0&lt;br /&gt;
Store Experience Host                               MSIX\Microsoft.StorePurchaseApp_22509.1401.1.0_x64__8… 22509.1401.1.0&lt;br /&gt;
Microsoft To Do                                     MSIX\Microsoft.Todos_0.148.3611.0_x64__8wekyb3d8bbwe   0.148.3611.0&lt;br /&gt;
Microsoft.UI.Xaml.2.0                               MSIX\Microsoft.UI.Xaml.2.0_2.1810.18004.0_x64__8wekyb… 2.1810.18004.0&lt;br /&gt;
Microsoft.UI.Xaml.2.3                               MSIX\Microsoft.UI.Xaml.2.3_2.32002.13001.0_x64__8weky… 2.32002.13001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.3                               MSIX\Microsoft.UI.Xaml.2.3_2.32002.13001.0_x86__8weky… 2.32002.13001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.4                               MSIX\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x64__8wekyb… 2.42007.9001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.4                               MSIX\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x86__8wekyb… 2.42007.9001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.7                               Microsoft.UI.Xaml.2.7                                  7.2409.9001.0              winget&lt;br /&gt;
Microsoft.UI.Xaml.2.7                               Microsoft.UI.Xaml.2.7                                  7.2409.9001.0              winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                               Microsoft.UI.Xaml.2.8                                  8.2501.31001.0             winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                               Microsoft.UI.Xaml.2.8                                  8.2501.31001.0             winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Desktop Runtime Pack… Microsoft.VCLibs.Desktop.14                            14.0.33728.0               winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Desktop Runtime Pack… Microsoft.VCLibs.Desktop.14                            14.0.33728.0               winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtime Package       MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x64__8wekyb… 14.0.33519.0&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtime Package       MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x86__8wekyb… 14.0.33519.0&lt;br /&gt;
VP9 Video Extensions                                MSIX\Microsoft.VP9VideoExtensions_1.2.12.0_x64__8weky… 1.2.12.0&lt;br /&gt;
Web Media Extensions                                MSIX\Microsoft.WebMediaExtensions_1.2.17.0_x64__8weky… 1.2.17.0&lt;br /&gt;
WebP Image Extension                                MSIX\Microsoft.WebpImageExtension_1.2.14.0_x64__8weky… 1.2.14.0&lt;br /&gt;
Widgets Platform Runtime                            MSIX\Microsoft.WidgetsPlatformRuntime_1.6.14.0_x64__8… 1.6.14.0&lt;br /&gt;
Microsoft Photos                                    MSIX\Microsoft.Windows.Photos_2025.11110.18001.0_x64_… 2025.11110.1800…&lt;br /&gt;
Windows Clock                                       MSIX\Microsoft.WindowsAlarms_11.2510.4.0_x64__8wekyb3… 11.2510.4.0&lt;br /&gt;
WindowsAppRuntime.1.4                               MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.4                               MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.5                               MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.5                               MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.6                               MSIX\Microsoft.WindowsAppRuntime.1.6_6000.519.329.0_x… 6000.519.329.0&lt;br /&gt;
WindowsAppRuntime.1.6                               MSIX\Microsoft.WindowsAppRuntime.1.6_6000.519.329.0_x… 6000.519.329.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.652.1806.0_… 7000.652.1806.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.676.1651.0_… 7000.676.1651.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.676.1651.0_… 7000.676.1651.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.642.119.0_x… 8000.642.119.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.675.1142.0_… 8000.675.1142.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.675.1142.0_… 8000.675.1142.0&lt;br /&gt;
Windows Calculator                                  MSIX\Microsoft.WindowsCalculator_11.2508.4.0_x64__8we… 11.2508.4.0&lt;br /&gt;
Windows Camera                                      MSIX\Microsoft.WindowsCamera_2025.2510.2.0_x64__8weky… 2025.2510.2.0&lt;br /&gt;
Feedback Hub                                        MSIX\Microsoft.WindowsFeedbackHub_1.2510.14102.0_x64_… 1.2510.14102.0&lt;br /&gt;
Windows Maps                                        MSIX\Microsoft.WindowsMaps_1.0.65.0_x64__8wekyb3d8bbwe 1.0.65.0&lt;br /&gt;
Windows Notepad                                     MSIX\Microsoft.WindowsNotepad_11.2508.38.0_x64__8weky… 11.2508.38.0&lt;br /&gt;
Windows Sound Recorder                              MSIX\Microsoft.WindowsSoundRecorder_1.1.47.0_x64__8we… 1.1.47.0&lt;br /&gt;
Microsoft Store                                     MSIX\Microsoft.WindowsStore_22510.1401.4.0_x64__8weky… 22510.1401.4.0&lt;br /&gt;
Windows Terminal                                    Microsoft.WindowsTerminal                              1.23.12811.0               winget&lt;br /&gt;
Windows Package Manager Source (winget) V2          MSIX\Microsoft.Winget.Source_2025.1213.819.46_neutral… 2025.1213.819.46&lt;br /&gt;
Xbox TCUI                                           MSIX\Microsoft.Xbox.TCUI_1.24.10001.0_x64__8wekyb3d8b… 1.24.10001.0&lt;br /&gt;
Xbox Console Companion                              MSIX\Microsoft.XboxApp_48.104.4001.0_x64__8wekyb3d8bb… 48.104.4001.0&lt;br /&gt;
Xbox Game Bar Plugin                                MSIX\Microsoft.XboxGameOverlay_1.54.4001.0_x64__8weky… 1.54.4001.0&lt;br /&gt;
Game Bar                                            MSIX\Microsoft.XboxGamingOverlay_7.325.11061.0_x64__8… 7.325.11061.0&lt;br /&gt;
Xbox Identity Provider                              MSIX\Microsoft.XboxIdentityProvider_12.130.16001.0_x6… 12.130.16001.0&lt;br /&gt;
Game Speech Window                                  MSIX\Microsoft.XboxSpeechToTextOverlay_1.97.17002.0_x… 1.97.17002.0&lt;br /&gt;
Phone Link                                          MSIX\Microsoft.YourPhone_1.25102.64.0_x64__8wekyb3d8b… 1.25102.64.0&lt;br /&gt;
Windows Media Player                                MSIX\Microsoft.ZuneMusic_11.2510.7.0_x64__8wekyb3d8bb… 11.2510.7.0&lt;br /&gt;
Movies &amp;amp; TV                                         MSIX\Microsoft.ZuneVideo_10.25101.10031.0_x64__8wekyb… 10.25101.10031.0&lt;br /&gt;
Quick Assist                                        MSIX\MicrosoftCorporationII.QuickAssist_2.0.29.0_x64_… 2.0.29.0&lt;br /&gt;
Windows Subsystem for Linux                         MSIX\MicrosoftCorporationII.WindowsSubsystemForLinux_… 2.5.9.0&lt;br /&gt;
Windows Web Experience Pack                         MSIX\MicrosoftWindows.Client.WebExperience_525.31002.… 525.31002.150.0&lt;br /&gt;
Cross Device Experience Host                        MSIX\MicrosoftWindows.CrossDevice_1.25102.46.0_x64__c… 1.25102.46.0&lt;br /&gt;
Notepad++                                           MSIX\NotepadPlusPlus_1.0.0.0_neutral__2247w0b46hfww    1.0.0.0&lt;br /&gt;
WinMerge                                            MSIX\WinMerge_1.0.7.0_neutral__83g614hpn1ttr           1.0.7.0&lt;br /&gt;
Local AI Manager for Microsoft 365                  MSIX\aimgr_0.20.29.0_x64__8wekyb3d8bbwe                0.20.29.0&lt;br /&gt;
Slack                                               SlackTechnologies.Slack                                4.47.59.0        4.47.65   winget&lt;br /&gt;
Mail and Calendar                                   MSIX\microsoft.windowscommunicationsapps_16005.14326.… 16005.14326.223…&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample winget ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name                                                Id                                                     Version          Available Source&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
PS C:\&amp;gt; winget list | findstr &amp;quot;winget&amp;quot;&lt;br /&gt;
7-Zip 25.01 (x64)                                   7zip.7zip                                              25.01                      winget&lt;br /&gt;
Beyond Compare 4.4.7                                ScooterSoftware.BeyondCompare.4                        4.4.7.28397                winget&lt;br /&gt;
Docker Desktop                                      Docker.DockerDesktop                                   4.54.0                     winget&lt;br /&gt;
Greenshot 1.3.301                                   Greenshot.Greenshot                                    1.3.301          1.3.304   winget&lt;br /&gt;
HWiNFO® 64                                          REALiX.HWiNFO                                          8.34                       winget&lt;br /&gt;
IrfanView 4.73 (64-bit)                             IrfanSkiljan.IrfanView                                 4.73                       winget&lt;br /&gt;
Mozilla Firefox ESR (x64 en-US)                     Mozilla.Firefox.ESR                                    140.6.0                    winget&lt;br /&gt;
Mozilla Firefox ESR (x64 en-US)                     Mozilla.Firefox.ESR                                    140.5.0                    winget&lt;br /&gt;
Notepad++ (64-bit x64)                              Notepad++.Notepad++                                    8.8.9                      winget&lt;br /&gt;
Microsoft 365 Apps for enterprise - en-us           Microsoft.Office                                       16.0.19328.20266           winget&lt;br /&gt;
Microsoft OneDrive                                  Microsoft.OneDrive                                     25.216.1104.0002           winget&lt;br /&gt;
OpenSSL 3.6.0 (64-bit)                              ShiningLight.OpenSSL.Dev                               3.6.0                      winget&lt;br /&gt;
VLC media player                                    VideoLAN.VLC                                           3.0.22                     winget&lt;br /&gt;
WinMerge x64                                        WinMerge.WinMerge                                      2.16.52.2                  winget&lt;br /&gt;
Webex                                               Cisco.Webex                                            45.12.0.33709              winget&lt;br /&gt;
Strawberry Perl (64-bit)                            StrawberryPerl.StrawberryPerl                          5.42.0.1                   winget&lt;br /&gt;
Synergy (64-bit)                                    Symless.Synergy                                        1.14.6           3.2.1     winget&lt;br /&gt;
Paint.NET                                           dotPDN.PaintDotNet                                     5.1.11                     winget&lt;br /&gt;
Google Drive                                        Google.GoogleDrive                                     117.0.0.0                  winget&lt;br /&gt;
YubiKey Manager CLI                                 Yubico.YubiKeyManagerCLI                               5.8.0.0                    winget&lt;br /&gt;
Zoom Workplace (64-bit)                             Zoom.Zoom                                              6.6.23272                  winget&lt;br /&gt;
Windows PC Health Check                             Microsoft.WindowsPCHealthCheck                         4.0.2410.23001             winget&lt;br /&gt;
PowerShell 7-x64                                    Microsoft.PowerShell                                   7.5.4.0                    winget&lt;br /&gt;
PowerShell 7.5.3.0-x64                              Microsoft.PowerShell                                   7.5.3.0                    winget&lt;br /&gt;
Microsoft Visual Studio Code                        Microsoft.VisualStudioCode                             1.107.0                    winget&lt;br /&gt;
OpenHashTab                                         namazso.OpenHashTab                                    3.1.1                      winget&lt;br /&gt;
Google Chrome                                       Google.Chrome.EXE                                      143.0.7499.41              winget&lt;br /&gt;
Microsoft Edge                                      Microsoft.Edge                                         143.0.3650.80              winget&lt;br /&gt;
Steam                                               Valve.Steam                                            2.10.91.91                 winget&lt;br /&gt;
Dashboard                                           SanDisk.Dashboard                                      5.1.2.2                    winget&lt;br /&gt;
Windhawk v1.7.3                                     RamenSoftware.Windhawk                                 1.7.3                      winget&lt;br /&gt;
Microsoft Visual C++ v14 Redistributable (x86) - 1… Microsoft.VCRedist.2015+.x86                           14.50.35719.0              winget&lt;br /&gt;
Microsoft Windows Desktop Runtime - 8.0.22 (x86)    Microsoft.DotNet.DesktopRuntime.8                      8.0.22                     winget&lt;br /&gt;
Microsoft Purview Information Protection            Microsoft.PurviewInformationProtection                 3.1.310.0                  winget&lt;br /&gt;
Microsoft Visual C++ v14 Redistributable (x64) - 1… Microsoft.VCRedist.2015+.x64                           14.50.35719.0              winget&lt;br /&gt;
Microsoft .NET Runtime - 8.0.22 (x64)               Microsoft.DotNet.Runtime.8                             8.0.22                     winget&lt;br /&gt;
Microsoft Windows Desktop Runtime - 6.0.36 (x86)    Microsoft.DotNet.DesktopRuntime.6                      6.0.36                     winget&lt;br /&gt;
Signal 7.82.0                                       OpenWhisperSystems.Signal                              7.82.0                     winget&lt;br /&gt;
MongoDB Compass                                     MongoDB.Compass.Full                                   1.47.1           1.48.2.0  winget&lt;br /&gt;
Ubuntu 24.04.1 LTS                                  Canonical.Ubuntu.2404                                  2404.1.26.0                winget&lt;br /&gt;
Kali Linux                                          OffSec.KaliLinux                                       2025.3.0.0                 winget&lt;br /&gt;
Keeper® Password Manager                            KeeperSecurity.KeeperDesktop                           17.4.1.0                   winget&lt;br /&gt;
Microsoft Teams                                     Microsoft.Teams                                        25306.804.4102.…           winget&lt;br /&gt;
App Installer                                       Microsoft.AppInstaller                                 1.27.350.0                 winget&lt;br /&gt;
Microsoft.UI.Xaml.2.7                               Microsoft.UI.Xaml.2.7                                  7.2409.9001.0              winget&lt;br /&gt;
Microsoft.UI.Xaml.2.7                               Microsoft.UI.Xaml.2.7                                  7.2409.9001.0              winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                               Microsoft.UI.Xaml.2.8                                  8.2501.31001.0             winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                               Microsoft.UI.Xaml.2.8                                  8.2501.31001.0             winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Desktop Runtime Pack… Microsoft.VCLibs.Desktop.14                            14.0.33728.0               winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Desktop Runtime Pack… Microsoft.VCLibs.Desktop.14                            14.0.33728.0               winget&lt;br /&gt;
Windows Terminal                                    Microsoft.WindowsTerminal                              1.23.12811.0               winget&lt;br /&gt;
Slack                                               SlackTechnologies.Slack                                4.47.59.0        4.47.65   winget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample winget ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name                                                Id                                                     Version          Available Source&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
PS C:\&amp;gt; winget list | findstr &amp;quot;msstore&amp;quot;&lt;br /&gt;
Audacity 3.7.6                                      XP8K0J757HHRDW                                         3.7.6                      msstore&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample NOT winget or msstore ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\&amp;gt; winget list | findstr -v &amp;quot;winget&amp;quot; | grep -v &amp;quot;msstore&amp;quot;&lt;br /&gt;
Name                                                Id                                                     Version          Available Source&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Armoury Crate Service                               ARP\Machine\X64\Armoury Crate Service                  6.3.6.0&lt;br /&gt;
Git                                                 ARP\Machine\X64\Git_is1                                2.52.0&lt;br /&gt;
Mozilla Maintenance Service                         ARP\Machine\X64\MozillaMaintenanceService              140.6.0&lt;br /&gt;
Luma Island                                         ARP\Machine\X64\Steam App 2408820                      Unknown&lt;br /&gt;
Vim 9.1 (x64)                                       ARP\Machine\X64\Vim 9.1                                9.1.1972&lt;br /&gt;
Microsoft Update Health Tools                       ARP\Machine\X64\{1FC1A6C2-576E-489A-9B4A-92D21F542136} 3.74.0.0&lt;br /&gt;
ROG Live Service                                    ARP\Machine\X64\{2D87BFB6-C184-4A59-9BBE-3E20CE797631} 3.3.12.0&lt;br /&gt;
Microsoft Defender for Endpoint plug-in for WSL     ARP\Machine\X64\{4BC7FC7C-21F9-4E26-9DBE-A6DEA45636FF} 1.25.825.2&lt;br /&gt;
Microsoft Teams Meeting Add-in for Microsoft Office ARP\Machine\X64\{A7AB73A3-CB10-4AA5-9D38-6AEFFBDE4C91} 1.25.28902&lt;br /&gt;
AURA lighting effect add-on x64                     ARP\Machine\X64\{C5A4A164-4428-4931-B728-96EEF0FA3C44} 0.0.49&lt;br /&gt;
GlobalProtect                                       ARP\Machine\X64\{D69F9E89-516A-4543-9DE1-A4BD75CE851C} 6.2.3&lt;br /&gt;
Windows Subsystem for Linux Update                  ARP\Machine\X64\{F8474A47-8B5D-4466-ACE3-78EAB3BF21A8} 5.10.102.1&lt;br /&gt;
Citrix Workspace 2402                               ARP\Machine\X86\CitrixOnlinePluginPackWeb              24.2.3001.9&lt;br /&gt;
GnuWin32: CoreUtils version 5.3.0                   ARP\Machine\X86\CoreUtils-5.3.0_is1                    5.3.0&lt;br /&gt;
FileZilla 3.69.5                                    ARP\Machine\X86\FileZilla Client                       3.69.5&lt;br /&gt;
GameSDK Service                                     ARP\Machine\X86\{021d69c3-d686-4a94-8fb5-fd1ee782fb14} 1.0.5.0&lt;br /&gt;
AURA lighting effect add-on                         ARP\Machine\X86\{1E2EA04B-FCA7-457E-B6F4-F33E1858E859} 0.0.49&lt;br /&gt;
Microsoft Intune Management Extension               ARP\Machine\X86\{262D9D60-DB70-49A1-9880-B5E140727909} 1.97.107.0&lt;br /&gt;
ASUS Framework Service                              ARP\Machine\X86\{339A6383-7862-46DA-8A9D-E84180EF9424} 4.2.4.7&lt;br /&gt;
Printer Installer Client                            ARP\Machine\X86\{A9DE0858-9DDD-4E1B-B041-C2AA90DCBF74} 25.0.0.1074&lt;br /&gt;
AURA Service                                        ARP\Machine\X86\{cabfa89d-a59c-47ac-8d18-2032a1f72f20} 3.08.59&lt;br /&gt;
Armoury Crate                                       MSIX\ASUSAmbientHAL64_1.0.0.3_neutral__ecvjzhf6c4w7r   1.0.0.3&lt;br /&gt;
Intel® Graphics Command Center                      MSIX\AppUp.IntelGraphicsExperience_1.100.5688.0_x64__… 1.100.5688.0&lt;br /&gt;
Intel® OptaneTM Memory and Storage Management       MSIX\AppUp.IntelOptaneMemoryandStorageManagement_18.1… 18.1.1042.0&lt;br /&gt;
Microsoft Clipchamp                                 MSIX\Clipchamp.Clipchamp_4.4.10420.0_x64__yxz26nhyzhs… 4.4.10420.0&lt;br /&gt;
AV1 Video Extension                                 MSIX\Microsoft.AV1VideoExtension_2.0.6.0_x64__8wekyb3… 2.0.6.0&lt;br /&gt;
AVC Encoder Video Extension                         MSIX\Microsoft.AVCEncoderVideoExtension_1.1.21.0_x64_… 1.1.21.0&lt;br /&gt;
Windows Application Compatibility Enhancements      MSIX\Microsoft.ApplicationCompatibilityEnhancements_1… 1.2511.9.0&lt;br /&gt;
News                                                MSIX\Microsoft.BingNews_4.55.62231.0_x64__8wekyb3d8bb… 4.55.62231.0&lt;br /&gt;
Microsoft Bing                                      MSIX\Microsoft.BingSearch_1.1.40.0_x64__8wekyb3d8bbwe  1.1.40.0&lt;br /&gt;
MSN Weather                                         MSIX\Microsoft.BingWeather_4.54.63029.0_x64__8wekyb3d… 4.54.63029.0&lt;br /&gt;
Company Portal                                      MSIX\Microsoft.CompanyPortal_11.2.1672.0_x64__8wekyb3… 11.2.1672.0&lt;br /&gt;
Copilot                                             MSIX\Microsoft.Copilot_1.25114.55.0_x64__8wekyb3d8bbwe 1.25114.55.0&lt;br /&gt;
Microsoft Edge Game Assist                          MSIX\Microsoft.Edge.GameAssist_1.0.3456.0_x64__8wekyb… 1.0.3456.0&lt;br /&gt;
Xbox                                                MSIX\Microsoft.GamingApp_2512.1001.34.0_x64__8wekyb3d… 2512.1001.34.0&lt;br /&gt;
Get Help                                            MSIX\Microsoft.GetHelp_10.2409.32612.0_x64__8wekyb3d8… 10.2409.32612.0&lt;br /&gt;
HEIF Image Extension                                MSIX\Microsoft.HEIFImageExtension_1.2.23.0_x64__8weky… 1.2.23.0&lt;br /&gt;
HEVC Video Extensions from Device Manufacturer      MSIX\Microsoft.HEVCVideoExtension_2.4.39.0_x64__8weky… 2.4.39.0&lt;br /&gt;
MPEG-2 Video Extension                              MSIX\Microsoft.MPEG2VideoExtension_1.2.13.0_x64__8wek… 1.2.13.0&lt;br /&gt;
Paint 3D                                            MSIX\Microsoft.MSPaint_6.1907.29027.0_x64__8wekyb3d8b… 6.1907.29027.0&lt;br /&gt;
3D Viewer                                           MSIX\Microsoft.Microsoft3DViewer_1.0.125.0_x64__8weky… 1.0.125.0&lt;br /&gt;
Microsoft Edge                                      MSIX\Microsoft.MicrosoftEdge.Stable_140.0.3485.94_neu… 140.0.3485.94&lt;br /&gt;
Microsoft 365 Copilot                               MSIX\Microsoft.MicrosoftOfficeHub_19.2512.39051.0_x64… 19.2512.39051.0&lt;br /&gt;
Solitaire &amp;amp; Casual Games                            MSIX\Microsoft.MicrosoftSolitaireCollection_4.24.1204… 4.24.12040.0&lt;br /&gt;
Microsoft Sticky Notes                              MSIX\Microsoft.MicrosoftStickyNotes_4.0.6104.0_x64__8… 4.0.6104.0&lt;br /&gt;
Mixed Reality Portal                                MSIX\Microsoft.MixedReality.Portal_2000.21051.1282.0_… 2000.21051.1282…&lt;br /&gt;
Microsoft .Net Native Framework Package 1.7         MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x… 1.7.27413.0&lt;br /&gt;
Microsoft .Net Native Framework Package 1.7         MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x… 1.7.27413.0&lt;br /&gt;
Microsoft .Net Native Framework Package 2.2         MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Framework Package 2.2         MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 1.7           MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x64… 1.7.27422.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 1.7           MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x86… 1.7.27422.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 2.2           MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64… 2.2.28604.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 2.2           MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x86… 2.2.28604.0&lt;br /&gt;
Microsoft.Office.ActionsServer                      MSIX\Microsoft.Office.ActionsServer_16.0.19328.20266_… 16.0.19328.20266&lt;br /&gt;
OneNote for Windows 10                              MSIX\Microsoft.Office.OneNote_16.14326.22589.0_x64__8… 16.14326.22589.0&lt;br /&gt;
OfficePushNotificationsUtility                      MSIX\Microsoft.OfficePushNotificationUtility_16.0.193… 16.0.19328.20266&lt;br /&gt;
OneDrive                                            MSIX\Microsoft.OneDriveSync_25216.1104.2.0_neutral__8… 25216.1104.2.0&lt;br /&gt;
Outlook for Windows                                 MSIX\Microsoft.OutlookForWindows_1.2025.1121.100_x64_… 1.2025.1121.100&lt;br /&gt;
Paint                                               MSIX\Microsoft.Paint_11.2510.311.0_x64__8wekyb3d8bbwe  11.2510.311.0&lt;br /&gt;
Microsoft People                                    MSIX\Microsoft.People_10.2202.100.0_x64__8wekyb3d8bbwe 10.2202.100.0&lt;br /&gt;
Power Automate                                      MSIX\Microsoft.PowerAutomateDesktop_1.0.2046.0_x64__8… 1.0.2046.0&lt;br /&gt;
Raw Image Extension                                 MSIX\Microsoft.RawImageExtension_2.5.7.0_x64__8wekyb3… 2.5.7.0&lt;br /&gt;
Snipping Tool                                       MSIX\Microsoft.ScreenSketch_11.2510.31.0_x64__8wekyb3… 11.2510.31.0&lt;br /&gt;
Windows Security                                    MSIX\Microsoft.SecHealthUI_1000.29429.1000.0_x64__8we… 1000.29429.1000…&lt;br /&gt;
Microsoft Engagement Framework                      MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0… 10.0.23012.0&lt;br /&gt;
Microsoft Engagement Framework                      MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0… 10.0.23012.0&lt;br /&gt;
Skype                                               MSIX\Microsoft.SkypeApp_15.150.3125.0_x64__kzf8qxf38z… 15.150.3125.0&lt;br /&gt;
Start Experiences App                               MSIX\Microsoft.StartExperiencesApp_1.179.4.0_x64__8we… 1.179.4.0&lt;br /&gt;
Store Experience Host                               MSIX\Microsoft.StorePurchaseApp_22509.1401.1.0_x64__8… 22509.1401.1.0&lt;br /&gt;
Microsoft To Do                                     MSIX\Microsoft.Todos_0.148.3611.0_x64__8wekyb3d8bbwe   0.148.3611.0&lt;br /&gt;
Microsoft.UI.Xaml.2.0                               MSIX\Microsoft.UI.Xaml.2.0_2.1810.18004.0_x64__8wekyb… 2.1810.18004.0&lt;br /&gt;
Microsoft.UI.Xaml.2.3                               MSIX\Microsoft.UI.Xaml.2.3_2.32002.13001.0_x64__8weky… 2.32002.13001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.3                               MSIX\Microsoft.UI.Xaml.2.3_2.32002.13001.0_x86__8weky… 2.32002.13001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.4                               MSIX\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x64__8wekyb… 2.42007.9001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.4                               MSIX\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x86__8wekyb… 2.42007.9001.0&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtime Package       MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x64__8wekyb… 14.0.33519.0&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtime Package       MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x86__8wekyb… 14.0.33519.0&lt;br /&gt;
VP9 Video Extensions                                MSIX\Microsoft.VP9VideoExtensions_1.2.12.0_x64__8weky… 1.2.12.0&lt;br /&gt;
Web Media Extensions                                MSIX\Microsoft.WebMediaExtensions_1.2.17.0_x64__8weky… 1.2.17.0&lt;br /&gt;
WebP Image Extension                                MSIX\Microsoft.WebpImageExtension_1.2.14.0_x64__8weky… 1.2.14.0&lt;br /&gt;
Widgets Platform Runtime                            MSIX\Microsoft.WidgetsPlatformRuntime_1.6.14.0_x64__8… 1.6.14.0&lt;br /&gt;
Microsoft Photos                                    MSIX\Microsoft.Windows.Photos_2025.11110.18001.0_x64_… 2025.11110.1800…&lt;br /&gt;
Windows Clock                                       MSIX\Microsoft.WindowsAlarms_11.2510.4.0_x64__8wekyb3… 11.2510.4.0&lt;br /&gt;
WindowsAppRuntime.1.4                               MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.4                               MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.5                               MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.5                               MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.6                               MSIX\Microsoft.WindowsAppRuntime.1.6_6000.519.329.0_x… 6000.519.329.0&lt;br /&gt;
WindowsAppRuntime.1.6                               MSIX\Microsoft.WindowsAppRuntime.1.6_6000.519.329.0_x… 6000.519.329.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.652.1806.0_… 7000.652.1806.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.676.1651.0_… 7000.676.1651.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.676.1651.0_… 7000.676.1651.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.642.119.0_x… 8000.642.119.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.675.1142.0_… 8000.675.1142.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.675.1142.0_… 8000.675.1142.0&lt;br /&gt;
Windows Calculator                                  MSIX\Microsoft.WindowsCalculator_11.2508.4.0_x64__8we… 11.2508.4.0&lt;br /&gt;
Windows Camera                                      MSIX\Microsoft.WindowsCamera_2025.2510.2.0_x64__8weky… 2025.2510.2.0&lt;br /&gt;
Feedback Hub                                        MSIX\Microsoft.WindowsFeedbackHub_1.2510.14102.0_x64_… 1.2510.14102.0&lt;br /&gt;
Windows Maps                                        MSIX\Microsoft.WindowsMaps_1.0.65.0_x64__8wekyb3d8bbwe 1.0.65.0&lt;br /&gt;
Windows Notepad                                     MSIX\Microsoft.WindowsNotepad_11.2508.38.0_x64__8weky… 11.2508.38.0&lt;br /&gt;
Windows Sound Recorder                              MSIX\Microsoft.WindowsSoundRecorder_1.1.47.0_x64__8we… 1.1.47.0&lt;br /&gt;
Microsoft Store                                     MSIX\Microsoft.WindowsStore_22510.1401.4.0_x64__8weky… 22510.1401.4.0&lt;br /&gt;
Xbox TCUI                                           MSIX\Microsoft.Xbox.TCUI_1.24.10001.0_x64__8wekyb3d8b… 1.24.10001.0&lt;br /&gt;
Xbox Console Companion                              MSIX\Microsoft.XboxApp_48.104.4001.0_x64__8wekyb3d8bb… 48.104.4001.0&lt;br /&gt;
Xbox Game Bar Plugin                                MSIX\Microsoft.XboxGameOverlay_1.54.4001.0_x64__8weky… 1.54.4001.0&lt;br /&gt;
Game Bar                                            MSIX\Microsoft.XboxGamingOverlay_7.325.11061.0_x64__8… 7.325.11061.0&lt;br /&gt;
Xbox Identity Provider                              MSIX\Microsoft.XboxIdentityProvider_12.130.16001.0_x6… 12.130.16001.0&lt;br /&gt;
Game Speech Window                                  MSIX\Microsoft.XboxSpeechToTextOverlay_1.97.17002.0_x… 1.97.17002.0&lt;br /&gt;
Phone Link                                          MSIX\Microsoft.YourPhone_1.25102.64.0_x64__8wekyb3d8b… 1.25102.64.0&lt;br /&gt;
Windows Media Player                                MSIX\Microsoft.ZuneMusic_11.2510.7.0_x64__8wekyb3d8bb… 11.2510.7.0&lt;br /&gt;
Movies &amp;amp; TV                                         MSIX\Microsoft.ZuneVideo_10.25101.10031.0_x64__8wekyb… 10.25101.10031.0&lt;br /&gt;
Quick Assist                                        MSIX\MicrosoftCorporationII.QuickAssist_2.0.29.0_x64_… 2.0.29.0&lt;br /&gt;
Windows Subsystem for Linux                         MSIX\MicrosoftCorporationII.WindowsSubsystemForLinux_… 2.5.9.0&lt;br /&gt;
Windows Web Experience Pack                         MSIX\MicrosoftWindows.Client.WebExperience_525.31002.… 525.31002.150.0&lt;br /&gt;
Cross Device Experience Host                        MSIX\MicrosoftWindows.CrossDevice_1.25102.46.0_x64__c… 1.25102.46.0&lt;br /&gt;
Notepad++                                           MSIX\NotepadPlusPlus_1.0.0.0_neutral__2247w0b46hfww    1.0.0.0&lt;br /&gt;
WinMerge                                            MSIX\WinMerge_1.0.7.0_neutral__83g614hpn1ttr           1.0.7.0&lt;br /&gt;
Local AI Manager for Microsoft 365                  MSIX\aimgr_0.20.29.0_x64__8wekyb3d8bbwe                0.20.29.0&lt;br /&gt;
Mail and Calendar                                   MSIX\microsoft.windowscommunicationsapps_16005.14326.… 16005.14326.223…&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows Package Management]]&lt;br /&gt;
[[Category:Windows Command Line Package Management]]&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
	<entry>
		<id>https://aznot.com/index.php?title=WinGet&amp;diff=10365</id>
		<title>WinGet</title>
		<link rel="alternate" type="text/html" href="https://aznot.com/index.php?title=WinGet&amp;diff=10365"/>
		<updated>2026-09-22T04:14:36Z</updated>

		<summary type="html">&lt;p&gt;Kenneth: /* Heavy Load */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== WinGet ==&lt;br /&gt;
&lt;br /&gt;
 The &#039;&#039;&#039;Windows Package Manager&#039;&#039;&#039; (also known as &#039;&#039;&#039;winget&#039;&#039;&#039;) is a free and open-source package manager designed by Microsoft for Windows 10 and Windows 11. It consists of a command-line utility and a set of services for installing applications. Independent software vendors can use it as a distribution channel for their software packages. &amp;lt;ref&amp;gt;https://en.wikipedia.org/wiki/Windows_Package_Manager&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Before deciding to develop Windows Package Manager, the team behind it explored Chocolatey, Scoop, Ninite, AppGet, Npackd and the PowerShell-based OneGet.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 The WinGet command line tool, which is the client interface to the Windows Package Manager service, requires Windows 10 version 1809 (build 17763) or later, or Windows 11.&lt;br /&gt;
&lt;br /&gt;
 WinGet is the Windows Package Manager. This project includes a CLI (Command Line Interface), PowerShell modules, and a COM (Component Object Model) API (Application Programming Interface).&lt;br /&gt;
&lt;br /&gt;
 The client requires Windows 10 1809 (build 17763) or later at this time. Windows Server 2019 is not supported as the Microsoft Store is not available nor are updated dependencies. It may be possible to install on Windows Server 2022, this should be considered experimental (not supported), and requires dependencies to be manually installed as well. &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-cli&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install WinGet ==&lt;br /&gt;
&lt;br /&gt;
=== Install WinGet from PowerShell 7 ===&lt;br /&gt;
&lt;br /&gt;
Quick:&lt;br /&gt;
 Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force&lt;br /&gt;
 Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery &lt;br /&gt;
 Repair-WinGetPackageManager -Force -Latest -AllUsers&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
Path to winget:&lt;br /&gt;
 %LOCALAPPDATA%\Microsoft\WindowsApps\winget&lt;br /&gt;
PATH ::&lt;br /&gt;
 %LOCALAPPDATA%\Microsoft\WindowsApps&lt;br /&gt;
&lt;br /&gt;
This seemed to work best on problematic systems:&lt;br /&gt;
&lt;br /&gt;
Run Powershell 7:&lt;br /&gt;
 pwsh&lt;br /&gt;
&lt;br /&gt;
Verify WinGet Module is not running:&lt;br /&gt;
 Get-Process | Where-Object { $_.Modules -ne $null -and $_.Modules.ModuleName -like &#039;*WinGet*&#039; } | Select-Object ProcessName, Id&lt;br /&gt;
&lt;br /&gt;
Install dependency&lt;br /&gt;
 *** BEST ***&lt;br /&gt;
 Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force&lt;br /&gt;
&lt;br /&gt;
Install Powershell Module: (Warns that PSGallery is Untrusted repository??)&lt;br /&gt;
 Install-Module -Name Microsoft.WinGet.Client&lt;br /&gt;
&lt;br /&gt;
 # If that doesn&#039;t work...&lt;br /&gt;
 # Install-Module -Name Microsoft.WinGet.Client -Force&lt;br /&gt;
 *** BEST ***&lt;br /&gt;
 Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery &lt;br /&gt;
&lt;br /&gt;
Repair Install: (This should work, but doesn&#039;t seem to)&lt;br /&gt;
 # Repair-WinGetPackageManager -AllUsers&lt;br /&gt;
&lt;br /&gt;
Force Repair Install:&lt;br /&gt;
 Repair-WinGetPackageManager -AllUsers&lt;br /&gt;
&lt;br /&gt;
 # If that doesn&#039;t work...&lt;br /&gt;
 # Repair-WinGetPackageManager -Force -Latest&lt;br /&gt;
 &lt;br /&gt;
 *** BEST ***&lt;br /&gt;
 Repair-WinGetPackageManager -Force -Latest -AllUsers&lt;br /&gt;
&lt;br /&gt;
Test Installing Windows Terminal:&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
 &lt;br /&gt;
 # winget install --scope user Microsoft.WindowsTerminal --source winget&lt;br /&gt;
 #(not supported) winget install --scope machine Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
=== Install from Microsoft Store ===&lt;br /&gt;
&lt;br /&gt;
Microsoft Store calls it App Installer (instead of WinGet??), and it is not searchable??  Have to find it on the online store here:&lt;br /&gt;
&lt;br /&gt;
 App Installer&lt;br /&gt;
 https://www.microsoft.com/p/app-installer/9nblggh4nns1&lt;br /&gt;
&lt;br /&gt;
AI says you can&#039;t find it in the Microsoft Store because:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Winget (Windows Package Manager) isn&#039;t directly searchable in the Microsoft Store because it&#039;s delivered as part of the App Installer package, which is often pre-installed but might be outdated or broken; the key is that the command-line tool winget handles app management, but its own core components need to be updated through the Store or command line when it&#039;s problematic, leading to a bit of a chicken-and-egg situation that requires manual updates or specific commands to fix. &lt;br /&gt;
&lt;br /&gt;
Why it seems missing or unsearchable:&lt;br /&gt;
* It&#039;s bundled: winget isn&#039;t a separate app in the Store; it&#039;s a feature of the &amp;quot;App Installer&amp;quot;.&lt;br /&gt;
* Outdated default: New Windows installs often have an old App Installer that can&#039;t update itself, requiring manual intervention.&lt;br /&gt;
* Async registration: It only becomes available after you&#039;ve logged into Windows once, triggering the Store to register it.&lt;br /&gt;
* Search issues: Sometimes, internal Store issues or ISV blocks prevent searching for the App Installer or packages within it. &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install WinGet from AppxPackage ===&lt;br /&gt;
&lt;br /&gt;
 Install WinGet&lt;br /&gt;
 https://learn.microsoft.com/en-us/windows/package-manager/winget/&lt;br /&gt;
&lt;br /&gt;
 WinGet the Windows Package Manager is available on Windows 11, modern versions of Windows 10, and Windows Server 2025 as a part of the App Installer. The App Installer is a System Component delivered and updated by the Microsoft store on Windows Desktop versions, and via Updates on Windows Server 2025.&lt;br /&gt;
&lt;br /&gt;
 The WinGet command line tool is only supported on Windows 10 version 1809 (build 17763) or later. WinGet will not be available until you have logged into Windows as a user for the first time, triggering Microsoft Store to register the Windows Package Manager as part of an asynchronous process. If you have recently logged in as a user for the first time and find that WinGet is not yet available, you can open PowerShell and enter the following command to request this WinGet registration: [https://learn.microsoft.com/en-us/windows/package-manager/winget/]&lt;br /&gt;
&lt;br /&gt;
 Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe&lt;br /&gt;
&lt;br /&gt;
Direct Download: (as administrator powershell)&lt;br /&gt;
 wget.exe https://github.com/microsoft/winget-cli/releases/download/v1.29.290/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle&lt;br /&gt;
 Add-AppPackage -path .\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle&lt;br /&gt;
&lt;br /&gt;
 winget update --all&lt;br /&gt;
 winget update --all -u&lt;br /&gt;
&lt;br /&gt;
=== Install WinGet from Chocolatey ===&lt;br /&gt;
&lt;br /&gt;
Hmmm This didn&#039;t work&lt;br /&gt;
 &amp;lt;s&amp;gt;choco install winget-cli&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== winget-cli GitHub ==&lt;br /&gt;
&lt;br /&gt;
 https://github.com/microsoft/winget-cli&lt;br /&gt;
&lt;br /&gt;
== Microsoft Store ==&lt;br /&gt;
&lt;br /&gt;
 https://www.microsoft.com/p/app-installer/9nblggh4nns1&lt;br /&gt;
&lt;br /&gt;
== Winget Version ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\&amp;gt; winget --version&lt;br /&gt;
v1.12.350&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== List Installed Packages ==&lt;br /&gt;
&lt;br /&gt;
List Installed Packages:&lt;br /&gt;
 winget list&lt;br /&gt;
&lt;br /&gt;
List Installed Packages in User Scope:&lt;br /&gt;
 winget list --scope user&lt;br /&gt;
&lt;br /&gt;
List Installed Packages in Machine Scope:&lt;br /&gt;
 winget list --scope machine&lt;br /&gt;
&lt;br /&gt;
Get Package details, including scope:&lt;br /&gt;
 winget list &amp;lt;package&amp;gt; --details&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt; winget list github.cli --details&lt;br /&gt;
Failed when searching source; results will not be included: msstore&lt;br /&gt;
GitHub CLI [GitHub.cli]&lt;br /&gt;
Version: 2.96.0&lt;br /&gt;
Publisher: GitHub, Inc.&lt;br /&gt;
Local Identifier: ARP\Machine\X64\{B268D2DF-B30F-4883-8866-22B3CFCC2387}&lt;br /&gt;
Product Code: {b268d2df-b30f-4883-8866-22b3cfcc2387}&lt;br /&gt;
Upgrade Code: {8cfb9531-b959-4e1b-aa2e-4af0ffcc4af4}&lt;br /&gt;
Installer Category: msi&lt;br /&gt;
Installed Scope: Machine&lt;br /&gt;
Installed Architecture: X64&lt;br /&gt;
Installed Locale: en-US&lt;br /&gt;
Origin Source: winget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See if package installed in specific scope:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
C:\&amp;gt; winget list github.cli --scope user&lt;br /&gt;
Failed when searching source; results will not be included: msstore&lt;br /&gt;
No installed package found matching input criteria.&lt;br /&gt;
&lt;br /&gt;
C:\&amp;gt; winget list github.cli --scope machine&lt;br /&gt;
Failed when searching source; results will not be included: msstore&lt;br /&gt;
Name       Id         Version Source&lt;br /&gt;
-------------------------------------&lt;br /&gt;
GitHub CLI GitHub.cli 2.96.0  winget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install Package ==&lt;br /&gt;
&lt;br /&gt;
 winget install &amp;lt;package&amp;gt;&lt;br /&gt;
 https://github.com/microsoft/winget-pkgs&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
 winget install Microsoft.WindowsTerminal Microsoft.PowerToys Microsoft.VisualStudioCode&lt;br /&gt;
&lt;br /&gt;
=== Install Package to Install Scope ===&lt;br /&gt;
&lt;br /&gt;
Scope:&lt;br /&gt;
 #  --scope                              Select install scope (user or machine)&lt;br /&gt;
&lt;br /&gt;
NOTE: Default Scope is User Scope, if both scopes are available.  Some applications only have one scope, like WindowsTerminal (user scope only) and GitHub GH Client (machine scope only). GitHub GH Client will default to machine scope.&lt;br /&gt;
&lt;br /&gt;
User Scope&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget  --scope user&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget  --scope user&lt;br /&gt;
&lt;br /&gt;
 ## WARNING Only Machine Scope Supported with GitHub.cli&lt;br /&gt;
 #WRONG# winget install --id GitHub.cli --source winget&lt;br /&gt;
 #ERROR# winget install --id GitHub.cli --source winget  --scope user&lt;br /&gt;
&lt;br /&gt;
Machine Global Scope:&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget  --scope machine&lt;br /&gt;
&lt;br /&gt;
 ## Will not work (will throw error), as terminal machine global scope not supported!!&lt;br /&gt;
 #ERROR# winget install Microsoft.WindowsTerminal --source winget  --scope machine&lt;br /&gt;
&lt;br /&gt;
 # Only has machine scope, so all default will end up machine scope&lt;br /&gt;
 winget install --id GitHub.cli --source winget&lt;br /&gt;
 winget install --id GitHub.cli --source winget  --scope machine&lt;br /&gt;
&lt;br /&gt;
Verify:&lt;br /&gt;
 winget list --id GitHub.cli --details&lt;br /&gt;
&lt;br /&gt;
== Common Parameters ==&lt;br /&gt;
&lt;br /&gt;
Find package by exact ID:&lt;br /&gt;
 # -e, --exact           # Find package using exact match&lt;br /&gt;
 # --id &amp;lt;id&amp;gt;             # Filter results by id&lt;br /&gt;
 winget install -e --id Python.Python.3.14&lt;br /&gt;
&lt;br /&gt;
Specify Source:&lt;br /&gt;
 # -s, --source &amp;lt;src&amp;gt;    # Find package using the specified source (usually winget or msstore)&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget&lt;br /&gt;
&lt;br /&gt;
Install by Scope:&lt;br /&gt;
 # --scope user          # Install package user scope (default scope if manifest supports scopes)&lt;br /&gt;
 # --scope machine       # Install package machine scope&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
Install to a different location: (if manifest supports InstallLocation &amp;lt;INSTALLPATH&amp;gt;)&lt;br /&gt;
 # -l, --location &amp;lt;path&amp;gt; # Location to install to (if supported)&lt;br /&gt;
 winget install -e --id Python.Python.3.14 --source winget--scope machine --location c:\python314&lt;br /&gt;
&lt;br /&gt;
Short vs Long&lt;br /&gt;
 # -e, --exact           # Find package using exact match&lt;br /&gt;
 # --id &amp;lt;id&amp;gt;             # Filter results by id&lt;br /&gt;
 # -s, --source &amp;lt;src&amp;gt;    # Find package using the specified source (usually winget or msstore)&lt;br /&gt;
 # --scope user          # Install package user scope (default scope if manifest supports scopes)&lt;br /&gt;
 # --scope machine       # Install package machine scope&lt;br /&gt;
 # -l, --location &amp;lt;path&amp;gt; # Location to install to (if supported)&lt;br /&gt;
 winget install -e --id Python.Python.3.14 -s winget --scope machine -l c:\python314&lt;br /&gt;
 winget install --exact --id Python.Python.3.14 --source winget--scope machine --location c:\python314&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== List available update packages ===&lt;br /&gt;
&lt;br /&gt;
 winget update&lt;br /&gt;
&lt;br /&gt;
=== Update all Packages ===&lt;br /&gt;
&lt;br /&gt;
 winget update --all&lt;br /&gt;
&lt;br /&gt;
Other options:&lt;br /&gt;
  -u,--unknown,--include-unknown       Upgrade packages even if their current version cannot be determined&lt;br /&gt;
  --pinned,--include-pinned            Upgrade packages even if they have a non-blocking pin&lt;br /&gt;
&lt;br /&gt;
Upgrade all, including packages with unknown package versions:&lt;br /&gt;
 winget update --all --include-unknown&lt;br /&gt;
&lt;br /&gt;
== Upgrade All Packages ==&lt;br /&gt;
&lt;br /&gt;
Upgrade package:&lt;br /&gt;
 winget upgrade &amp;lt;package&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upgrade or Update&lt;br /&gt;
 ## &amp;gt; winget upgrade --help&lt;br /&gt;
 ##   The following command aliases are available:&lt;br /&gt;
 ##     update&lt;br /&gt;
 ## Note: winget will responde to both &#039;upgrade&#039; or &#039;update&#039; (alias for &#039;upgrade&#039;)&lt;br /&gt;
 winget upgrade &amp;lt;package&amp;gt;&lt;br /&gt;
 winget update &amp;lt;package&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upgrade all packages:&lt;br /&gt;
 # -r,--recurse,--all                   Upgrade all installed packages to latest if available&lt;br /&gt;
 winget upgrade --all&lt;br /&gt;
&lt;br /&gt;
Include unknown version packages:&lt;br /&gt;
 # -u,--unknown,--include-unknown       Upgrade packages even if their current version cannot be determined&lt;br /&gt;
 winget upgrade --all -u&lt;br /&gt;
&lt;br /&gt;
=== Exclude Package from Upgrade with Pin ===&lt;br /&gt;
&lt;br /&gt;
Example of Pinning Synergy (for example if you are still using Synergy Pro 1):&lt;br /&gt;
 winget pin add symless.synergy&lt;br /&gt;
&lt;br /&gt;
 winget pin remove symless.synergy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 winget pin list&lt;br /&gt;
 winget pin reset&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The following sub-commands are available:&lt;br /&gt;
  add     Add a new pin&lt;br /&gt;
  remove  Remove a package pin&lt;br /&gt;
  list    List current pins&lt;br /&gt;
  reset   Reset pins&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Browse Winget Library ==&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/&lt;br /&gt;
&lt;br /&gt;
=== Winget Manifest Repository ===&lt;br /&gt;
&lt;br /&gt;
 https://github.com/microsoft/winget-pkgs/tree/master/manifests&lt;br /&gt;
&lt;br /&gt;
Sample Python 3.14 Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3/14/3.14.3&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.yaml&lt;br /&gt;
&lt;br /&gt;
== Manifest Package Structure ==&lt;br /&gt;
 Create your package manifest&lt;br /&gt;
 https://github.com/microsoft/winget-cli/blob/master/doc/windows/package-manager/package/manifest.md&lt;br /&gt;
&lt;br /&gt;
== Debugging Install Failures ==&lt;br /&gt;
&lt;br /&gt;
Debugging install failure: &amp;lt;ref&amp;gt;https://github.com/microsoft/terminal/issues/13676&amp;lt;/ref&amp;gt;&lt;br /&gt;
 # determine where logs are stored:&lt;br /&gt;
 winget --info&lt;br /&gt;
 # Install with extra logs enabled:&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --verbose-logs --source winget&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Winget Directories&lt;br /&gt;
-------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Logs                               %LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Packages ==&lt;br /&gt;
&lt;br /&gt;
=== Upgrade Winget ===&lt;br /&gt;
&lt;br /&gt;
OBVIOUSLY RUN IN ADMINISTRATOR WINDOW!!&lt;br /&gt;
&lt;br /&gt;
Winget appears to upgrade automatically - part of Windows upgrades, but if you need to force an upgrade...&lt;br /&gt;
&lt;br /&gt;
Winget upgrade with winget - this doesn&#039;t seem to work, but try it anyways: (admin window)&lt;br /&gt;
 winget upgrade Microsoft.AppInstaller --source winget --force&lt;br /&gt;
&lt;br /&gt;
If that fails, and needs a hard reset, try the hard install method, this always works: (Powershell Admin Window)&lt;br /&gt;
 ## Might be able to skip the first two steps?&lt;br /&gt;
 Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force&lt;br /&gt;
 Install-Module -Force -Repository PSGallery -Name Microsoft.WinGet.Client&lt;br /&gt;
 Repair-WinGetPackageManager -Force -Latest -AllUsers&lt;br /&gt;
&lt;br /&gt;
Verify version:&lt;br /&gt;
 winget --version&lt;br /&gt;
&lt;br /&gt;
Latest as of 2026.07.18:&lt;br /&gt;
 v1.29.280&lt;br /&gt;
&lt;br /&gt;
=== Install WindowsTerminal ===&lt;br /&gt;
 PackageIdentifier: Microsoft.WindowsTerminal  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: terminal  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Scope: user   &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
   - No machine scope!!! :-(&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget --force&lt;br /&gt;
&lt;br /&gt;
 ## SCOPE - default and only supported is user scope&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget&lt;br /&gt;
 winget install Microsoft.WindowsTerminal --source winget --scope user&lt;br /&gt;
 #ERROR#  winget install Microsoft.WindowsTerminal --source winget --scope machine  # machine scope not supported (will say not found)&lt;br /&gt;
&lt;br /&gt;
Only Scope user is supported:&lt;br /&gt;
 winget install --scope user Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
Scope Machine is not supported:&lt;br /&gt;
 # (not supported - bad example) winget install --scope machine Microsoft.WindowsTerminal --source winget&lt;br /&gt;
&lt;br /&gt;
Dep:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/UI/Xaml/2/8&lt;br /&gt;
** https://github.com/microsoft/microsoft-ui-xaml/releases/download/v2.8.6/Microsoft.UI.Xaml.2.8.x64.appx&lt;br /&gt;
&lt;br /&gt;
=== Install WindowsTerminal Preview ===&lt;br /&gt;
 PackageIdentifier: Microsoft.WindowsTerminal.Preview  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: terminal-preview  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Scope: NONE&lt;br /&gt;
  - No scopes defined at all!!  :-(&lt;br /&gt;
&lt;br /&gt;
Preview Version:&lt;br /&gt;
 winget install Microsoft.WindowsTerminal.Preview&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.WindowsTerminal.Preview --source winget&lt;br /&gt;
   #  Found Windows Terminal Preview [Microsoft.WindowsTerminal.Preview] Version 1.24.10212.0&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/1.23.20211.0/Microsoft.WindowsTerminal.yaml&lt;br /&gt;
&lt;br /&gt;
Preview Manifest:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/WindowsTerminal/Preview/1.24.10212.0/Microsoft.WindowsTerminal.Preview.yaml&lt;br /&gt;
&lt;br /&gt;
=== Install Powershell ===&lt;br /&gt;
&lt;br /&gt;
Install version 7.5.4.0&lt;br /&gt;
 winget install Microsoft.PowerShell --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install --id Microsoft.PowerShell --source winget&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 winget upgrade --id Microsoft.PowerShell&lt;br /&gt;
&lt;br /&gt;
 winget upgrade --id Microsoft.PowerShell --source winget&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Downloading https://github.com/PowerShell/PowerShell/releases/download/v7.5.4/PowerShell-7.5.4-win-x64.msi&lt;br /&gt;
&lt;br /&gt;
=== Install OpenSSH ===&lt;br /&gt;
&lt;br /&gt;
Install OpenSSH Preview/Beta Version:&lt;br /&gt;
 # Preview version&lt;br /&gt;
 winget install Microsoft.OpenSSH.Preview&lt;br /&gt;
&lt;br /&gt;
 # Beta version&lt;br /&gt;
 winget install Microsoft.OpenSSH.Beta&lt;br /&gt;
&lt;br /&gt;
Install the Inbox Version: &amp;lt;ref&amp;gt;https://learn.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse?tabs=powershell&amp;amp;pivots=windows-11&amp;lt;/ref&amp;gt;&lt;br /&gt;
 # In Admin window:&lt;br /&gt;
&lt;br /&gt;
 # Verify Admin&lt;br /&gt;
 (New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)&lt;br /&gt;
&lt;br /&gt;
 # Verify Capabilities&lt;br /&gt;
 Get-WindowsCapability -Online | Where-Object Name -like &#039;OpenSSH*&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Install the OpenSSH Client&lt;br /&gt;
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0&lt;br /&gt;
# alternative&lt;br /&gt;
Add-WindowsCapability -Online -Name OpenSSH.Client*&lt;br /&gt;
# alternative&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Install the OpenSSH Server&lt;br /&gt;
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0&lt;br /&gt;
# alternative&lt;br /&gt;
Add-WindowsCapability -Online -Name OpenSSH.Server*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Start the sshd service&lt;br /&gt;
 Start-Service sshd&lt;br /&gt;
&lt;br /&gt;
OPTIONAL but recommended, Set the service to start automatic:&lt;br /&gt;
 Set-Service -Name sshd -StartupType Automatic&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Confirm the Firewall rule is configured. It should be created automatically by setup. Run the following to verify&lt;br /&gt;
if (!(Get-NetFirewallRule -Name &amp;quot;OpenSSH-Server-In-TCP&amp;quot; -ErrorAction SilentlyContinue)) {&lt;br /&gt;
    Write-Output &amp;quot;Firewall Rule &#039;OpenSSH-Server-In-TCP&#039; does not exist, creating it...&amp;quot;&lt;br /&gt;
    New-NetFirewallRule -Name &#039;OpenSSH-Server-In-TCP&#039; -DisplayName &#039;OpenSSH Server (sshd)&#039; -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22&lt;br /&gt;
} else {&lt;br /&gt;
    Write-Output &amp;quot;Firewall rule &#039;OpenSSH-Server-In-TCP&#039; has been created and exists.&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Open firewall:&lt;br /&gt;
 New-NetFirewallRule -Name sshd -DisplayName &#039;OpenSSH Server (sshd)&#039; -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22&lt;br /&gt;
&lt;br /&gt;
=== Install Git ===&lt;br /&gt;
 https://winget.run/pkg/Git/Git&lt;br /&gt;
  winget install -e --id Git.Git&lt;br /&gt;
 PackageIdentifier: Git.Git  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: git  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Scope: user/machine (seem identical)  &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Location not supported&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 winget install git.git&lt;br /&gt;
 winget install git.git --source winget&lt;br /&gt;
 winget install git.git --scope machine --source winget  # seems identical to user scope&lt;br /&gt;
&lt;br /&gt;
Git install location:&lt;br /&gt;
 C:\Program Files\Git\cmd\git.exe&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget uninstall git --all&lt;br /&gt;
&lt;br /&gt;
Found:&lt;br /&gt;
 Found Git [Git.Git] Version 2.53.0&lt;br /&gt;
 Downloading https://github.com/git-for-windows/git/releases/download/v2.53.0.windows.1/Git-2.53.0-64-bit.exe&lt;br /&gt;
&lt;br /&gt;
Manifest:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/Git/Git&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Git/Git/2.53.0/Git.Git.yaml&lt;br /&gt;
&lt;br /&gt;
==== Git-Bash ====&lt;br /&gt;
&lt;br /&gt;
git above includes git-bash&lt;br /&gt;
&lt;br /&gt;
==== GitHub GH Client ====&lt;br /&gt;
 &lt;br /&gt;
See [[GitHub/GH_Client]]&lt;br /&gt;
&lt;br /&gt;
Winget GH Repo Source:&lt;br /&gt;
 https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/GitHub/cli/&lt;br /&gt;
&lt;br /&gt;
Supported Scopes:&lt;br /&gt;
* machine&lt;br /&gt;
** default will install to machine scope&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 # By ID &amp;lt;ref&amp;gt;https://winget.run/pkg/GitHub/cli&amp;lt;/ref&amp;gt;&lt;br /&gt;
 winget install --id GitHub.cli&lt;br /&gt;
&lt;br /&gt;
 winget install --id GitHub.cli --source winget  # default to machine scope&lt;br /&gt;
 #ERROR# winget install --id GitHub.cli --scope user --source winget  # user scope not supported!&lt;br /&gt;
 winget install --id GitHub.cli --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install --id GitHub.cli --scope machine --source winget --version 2.87.2&lt;br /&gt;
&lt;br /&gt;
Upgrade&lt;br /&gt;
 winget upgrade --id GitHub.cli --source winget  # default to machine scope&lt;br /&gt;
 #ERROR# winget upgrade --id GitHub.cli --scope user --source winget  # user scope not supported!&lt;br /&gt;
 winget upgrade --id GitHub.cli --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
Configure for SSH as default:&lt;br /&gt;
 gh config set git_protocol ssh&lt;br /&gt;
&lt;br /&gt;
Versions:&lt;br /&gt;
 Found GitHub CLI [GitHub.cli] Version 2.87.2&lt;br /&gt;
 Found GitHub CLI [GitHub.cli] Version 2.96.0&lt;br /&gt;
&lt;br /&gt;
 Downloading https://github.com/cli/cli/releases/download/v2.87.2/gh_2.87.2_windows_amd64.msi&lt;br /&gt;
 Downloading https://github.com/cli/cli/releases/download/v2.96.0/gh_2.96.0_windows_amd64.msi&lt;br /&gt;
&lt;br /&gt;
Machine Scope Installs to:&lt;br /&gt;
 C:\Program Files\GitHub CLI\gh.exe&lt;br /&gt;
&lt;br /&gt;
Local Scope Installs to:&lt;br /&gt;
 n/a - user scope not supported&lt;br /&gt;
&lt;br /&gt;
Uninstall:&lt;br /&gt;
 winget uninstall --id GitHub.cli --all&lt;br /&gt;
&lt;br /&gt;
Package Reference:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GitHub/cli/2.96.0/GitHub.cli.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GitHub/cli/2.96.0/GitHub.cli.installer.yaml&lt;br /&gt;
&lt;br /&gt;
=== Install Strings ===&lt;br /&gt;
&lt;br /&gt;
Similar to the GNU Strings command.&lt;br /&gt;
 winget install -e --id Microsoft.Sysinternals.Strings&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id Microsoft.Sysinternals.Strings --scope machine&lt;br /&gt;
&lt;br /&gt;
 winget uninstall -e --id Microsoft.Sysinternals.Strings&lt;br /&gt;
&lt;br /&gt;
 Downloading https://download.sysinternals.com/files/Strings.zip&lt;br /&gt;
&lt;br /&gt;
Local scope:&lt;br /&gt;
 C:\Users\USER\AppData\Local\Microsoft\WinGet\Links\strings.ex&lt;br /&gt;
&lt;br /&gt;
Machine scope:&lt;br /&gt;
 C:\Program Files\WinGet\Links\strings.exe&lt;br /&gt;
&lt;br /&gt;
=== Install Notepad++ ===&lt;br /&gt;
&lt;br /&gt;
 winget install winget install notepad++&lt;br /&gt;
&lt;br /&gt;
Update Notepad++&lt;br /&gt;
 winget update Notepad++.Notepad++&lt;br /&gt;
&lt;br /&gt;
Notepad++ Install Location:&lt;br /&gt;
 &amp;quot;C:\Program Files\Notepad++\notepad++.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Downloading:&lt;br /&gt;
 https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v8.9/npp.8.9.Installer.x64.exe&lt;br /&gt;
&lt;br /&gt;
=== Install PowerToys ===&lt;br /&gt;
&lt;br /&gt;
 winget install Microsoft.PowerToys&lt;br /&gt;
&lt;br /&gt;
=== Install VisualStudioCode ===&lt;br /&gt;
&lt;br /&gt;
User Install:&lt;br /&gt;
 winget install Microsoft.VisualStudioCode&lt;br /&gt;
&lt;br /&gt;
User Install Installed to:&lt;br /&gt;
 &amp;quot;C:\Users\USERNAME\AppData\Local\Programs\Microsoft VS Code\Code.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
User Install Download:&lt;br /&gt;
 https://vscode.download.prss.microsoft.com/dbazure/download/stable/94e8ae2b28cb5cc932b86e1070569c4463565c37/VSCodeUserSetup-x64-1.108.0.exe&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
System install:&lt;br /&gt;
 winget install Microsoft.VisualStudioCode --scope machine&lt;br /&gt;
&lt;br /&gt;
System Install Installed to:&lt;br /&gt;
 &amp;quot;C:\Program Files\Microsoft VS Code\Code.exe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
System Install Download:&lt;br /&gt;
 https://vscode.download.prss.microsoft.com/dbazure/download/stable/94e8ae2b28cb5cc932b86e1070569c4463565c37/VSCodeSetup-x64-1.108.0.exe&lt;br /&gt;
&lt;br /&gt;
=== Install Microsoft Store ===&lt;br /&gt;
&lt;br /&gt;
Should just be:&lt;br /&gt;
 winget install Microsoft.WindowsStore --source msstore&lt;br /&gt;
&lt;br /&gt;
But doesn&#039;t appear to be working?&lt;br /&gt;
&lt;br /&gt;
 winget source reset --force&lt;br /&gt;
 winget source update&lt;br /&gt;
&lt;br /&gt;
 winget settings --enable BypassCertificatePinningForMicrosoftStore&lt;br /&gt;
&lt;br /&gt;
=== Install Calculator ===&lt;br /&gt;
&lt;br /&gt;
 winget install Calculator --source msstore&lt;br /&gt;
  #  (Calculator&#039;s ID)&lt;br /&gt;
 winget install 9WZDNCRFHVN5 --source msstore&lt;br /&gt;
&lt;br /&gt;
=== Install WinDbg ===&lt;br /&gt;
&lt;br /&gt;
WinDbg [Microsoft.WinDbg] Version 1.2506.12002.0&lt;br /&gt;
&lt;br /&gt;
 winget install windbg --source winget&lt;br /&gt;
&lt;br /&gt;
=== Install SanDisk Dashboard ===&lt;br /&gt;
&lt;br /&gt;
For upgrade drive firmware:&lt;br /&gt;
 winget install SanDisk.Dashboard&lt;br /&gt;
&lt;br /&gt;
 winget install SanDisk.Dashboard --source winget&lt;br /&gt;
&lt;br /&gt;
 # Downloading https://sddashboarddownloads.sandisk.com/wdDashboard/DashboardSetupSA.exe&lt;br /&gt;
&lt;br /&gt;
=== Install RustDesk ===&lt;br /&gt;
&lt;br /&gt;
 winget install RustDesk.RustDesk&lt;br /&gt;
&lt;br /&gt;
 winget install RustDesk.RustDesk --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id RustDesk.RustDesk&lt;br /&gt;
&lt;br /&gt;
ref: https://winstall.app/apps/RustDesk.RustDesk&lt;br /&gt;
&lt;br /&gt;
 # Downloading https://github.com/rustdesk/rustdesk/releases/download/1.4.1/rustdesk-1.4.1-x86_64.exe&lt;br /&gt;
&lt;br /&gt;
Note: newer version 1.4.4 was available that winget did not detect!  :-(&lt;br /&gt;
&lt;br /&gt;
 &amp;gt; winget list | findstr RustDesk&lt;br /&gt;
 RustDesk                                      RustDesk.RustDesk                             1.4.4              winget&lt;br /&gt;
&lt;br /&gt;
=== Install Discord ===&lt;br /&gt;
&lt;br /&gt;
 winget install Discord.Discord&lt;br /&gt;
&lt;br /&gt;
 winget install Discord.Discord --source winget&lt;br /&gt;
&lt;br /&gt;
=== Install HWiNFO ===&lt;br /&gt;
&lt;br /&gt;
 winget install hwinfo&lt;br /&gt;
&lt;br /&gt;
Start Menu -&amp;gt; HWiNFO 64 -&amp;gt; HWiNFO 64&lt;br /&gt;
 &amp;quot;C:\Program Files\HWiNFO64\HWiNFO64.EXE&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 https://www.hwinfo.com/download/&lt;br /&gt;
&lt;br /&gt;
Downloading https://sourceforge.net/projects/hwinfo/files/Windows_Installer/hwi64_834.exe/download&lt;br /&gt;
&lt;br /&gt;
=== Install Synergy ===&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Symless.Synergy&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id=Symless.Synergy&lt;br /&gt;
&lt;br /&gt;
Upgrade:&lt;br /&gt;
 winget upgrade symless.synergy&lt;br /&gt;
&lt;br /&gt;
Example of Pinning Synergy (for example if you are still using Synergy Pro 1):&lt;br /&gt;
 winget pin add symless.synergy&lt;br /&gt;
&lt;br /&gt;
=== Install Wireshark ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id WiresharkFoundation.Wireshark --source winget&lt;br /&gt;
&lt;br /&gt;
Must install npcap capture device:&lt;br /&gt;
 https://npcap.com/#download&lt;br /&gt;
&lt;br /&gt;
=== OpenJDK ===&lt;br /&gt;
&lt;br /&gt;
 winget install openjdk --source winget&lt;br /&gt;
&lt;br /&gt;
Title:&lt;br /&gt;
 Microsoft Build of OpenJDK with Hotspot 17 [Microsoft.OpenJDK.17] Version 17.0.18.8&lt;br /&gt;
&lt;br /&gt;
Source:&lt;br /&gt;
 Downloading https://aka.ms/download-JDK/microsoft-JDK-17.0.18-windows-x64.msi#winget&lt;br /&gt;
&lt;br /&gt;
Installation location:&lt;br /&gt;
 C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot\&lt;br /&gt;
&lt;br /&gt;
Provides:&lt;br /&gt;
 java - C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot\bin\java.exe&lt;br /&gt;
 keytool - C:\Program Files\Microsoft\jdk-17.0.18.8-hotspot\bin\keytool.exe&lt;br /&gt;
&lt;br /&gt;
=== Slack ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id SlackTechnologies.Slack&lt;br /&gt;
&lt;br /&gt;
 winget install SlackTechnologies.Slack --source winget&lt;br /&gt;
&lt;br /&gt;
=== Paint.net ===&lt;br /&gt;
&lt;br /&gt;
 winget install paint.net --source winget&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name      Id                 Source&lt;br /&gt;
-----------------------------------&lt;br /&gt;
paint.net dotPDN.PaintDotNet winget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== IrfanView ===&lt;br /&gt;
&lt;br /&gt;
 https://winget.run/pkg/IrfanSkiljan/IrfanView&lt;br /&gt;
&lt;br /&gt;
  winget install -e --id IrfanSkiljan.IrfanView&lt;br /&gt;
&lt;br /&gt;
  winget install -e --id IrfanSkiljan.IrfanView --scope machine&lt;br /&gt;
&lt;br /&gt;
  winget install -e --id IrfanSkiljan.IrfanView --source winget --scope machine&lt;br /&gt;
  winget install -e --id IrfanSkiljan.IrfanView --source msstore --scope machine&lt;br /&gt;
&lt;br /&gt;
Both:&lt;br /&gt;
 winget install -e --id irfanview irfanview.plugins --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
==== IrfanView Plugins ====&lt;br /&gt;
&lt;br /&gt;
No &amp;quot;scope machine&amp;quot; for the plugins?&lt;br /&gt;
&lt;br /&gt;
 winget search irfanview.plugins&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id IrfanSkiljan.IrfanView.PlugIns&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id IrfanSkiljan.IrfanView.PlugIns --source winget&lt;br /&gt;
&lt;br /&gt;
Both:&lt;br /&gt;
 winget install -e --id irfanview irfanskiljan.irfanview.plugins --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
==== Python Install Manager (PIM) ====&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id Python.PythonInstallManager&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id Python.PythonInstallManager --scope machine&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id Python.PythonInstallManager --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
Installs to:&lt;br /&gt;
 C:\Program Files\PyManager\py.exe&lt;br /&gt;
&lt;br /&gt;
List installed python versions&lt;br /&gt;
 py --list&lt;br /&gt;
&lt;br /&gt;
Install Python 3.14 with PIM:&lt;br /&gt;
 py install 3.14&lt;br /&gt;
&lt;br /&gt;
Uninstall:&lt;br /&gt;
 winget uninstall Python.PythonInstallManager&lt;br /&gt;
&lt;br /&gt;
 winget uninstall Python.PythonInstallManager --all&lt;br /&gt;
 winget uninstall python.launcher --all-versions&lt;br /&gt;
&lt;br /&gt;
Details:&lt;br /&gt;
 Found Python Install Manager [Python.PythonInstallManager] Version 25.2.240.0&lt;br /&gt;
 Downloading https://www.python.org/ftp/python/pymanager/python-manager-25.2.msi&lt;br /&gt;
&lt;br /&gt;
==== Python Launcher ====&lt;br /&gt;
&lt;br /&gt;
Use Python Install Manager version instead!&lt;br /&gt;
&lt;br /&gt;
NOTE: BAD WINGET PACKAGE - DOES NOT SUPPORT GLOBAL SCOPE&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Python.Launcher&lt;br /&gt;
 PackageIdentifier: Python.Launcher&lt;br /&gt;
 moniker: python-launcher &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Does NOT support install path &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Does NOT support scoped installs &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
WARNING: AS YOU CAN SEE FROM THE MANIFEST, THE PYTHON LAUNCHER DOES NOT SUPPORT SCOPED INSTALLS - AND LOOKS LIKE A LOCAL SCOPE INSTALL&lt;br /&gt;
 &amp;lt;s&amp;gt;winget install python.launcher --source winget --scope machine&amp;lt;/s&amp;gt;&lt;br /&gt;
 &amp;lt;s&amp;gt; winget install python.launcher --source winget --scope user&amp;lt;/s&amp;gt;&lt;br /&gt;
 Error: No applicable installer found; see logs for more details.&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
 winget install python.launcher --source winget&lt;br /&gt;
&lt;br /&gt;
 # Installs to: C:\Users\USER\AppData\Local\Programs\Python\Launcher\py.exe&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget remove python.launcher&lt;br /&gt;
&lt;br /&gt;
Remove all versions:&lt;br /&gt;
 winget remove python.launcher --all-versions&lt;br /&gt;
&lt;br /&gt;
Downloading: Downloading https://www.python.org/ftp/python/3.13.5/win32/launcher.msi&lt;br /&gt;
 Found Python Launcher [Python.Launcher] Version 3.13.5&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Launcher/3.13.5&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Launcher/3.13.5/Python.Launcher.yaml&lt;br /&gt;
&lt;br /&gt;
==== Python 3.14 ====&lt;br /&gt;
&lt;br /&gt;
 winget install python.python.3.14 --source winget --scope machine --location C:\python314&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Python.Python.3.14&lt;br /&gt;
 PackageVersion: 3.14.3 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: python3 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports install path &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports scoped installs &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install by direct ID:&lt;br /&gt;
 winget install -e --id Python.Python.3.14&lt;br /&gt;
&lt;br /&gt;
Install by Moniker:&lt;br /&gt;
 winget install python3&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
Install Globally:&lt;br /&gt;
 winget install python.python.3.14 --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
 Installs to: C:\Program Files\Python314\python.exe&lt;br /&gt;
&lt;br /&gt;
Install to C:\python314:&lt;br /&gt;
 winget install python.python.3.14 --source winget --scope machine --location C:\python314&lt;br /&gt;
 winget install python.python.3.14 -s winget --scope machine -l C:\python314&lt;br /&gt;
&lt;br /&gt;
 # hack:&lt;br /&gt;
 cp c:\python314\python.exe c:\python314\python314.exe&lt;br /&gt;
 cp c:\python314\python.exe c:\python314\python3.14.exe&lt;br /&gt;
&lt;br /&gt;
Install for User:&lt;br /&gt;
 winget install python.python.3.14 --source winget --scope User&lt;br /&gt;
 # or just&lt;br /&gt;
 winget install python.python.3.14 --source winget&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget remove python.python.3.14&lt;br /&gt;
&lt;br /&gt;
 # if you did the hack:&lt;br /&gt;
 del c:\python314\python314.exe&lt;br /&gt;
 del c:\python314\python3.14.exe&lt;br /&gt;
 rmdir c:\python314&lt;br /&gt;
&lt;br /&gt;
Remove all doesn&#039;t seem to be working: (not working???)&lt;br /&gt;
 winget list | grep -i python&lt;br /&gt;
 winget remove Python.Python --all-versions&lt;br /&gt;
 winget remove --id python.python.3 --all-versions&lt;br /&gt;
&lt;br /&gt;
Downloading: Downloading https://www.python.org/ftp/python/3.14.3/python-3.14.3-amd64.exe&lt;br /&gt;
 Found Python 3.14 [Python.Python.3.14] Version 3.14.3&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3/14/3.14.3&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/14/3.14.3/Python.Python.3.14.yaml&lt;br /&gt;
&lt;br /&gt;
==== Python 3.12 ====&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Python.Python.3.12&lt;br /&gt;
 PackageIdentifier: Python.Python.3.12 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: python3.12 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports install path &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports scoped installs &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install by direct ID:&lt;br /&gt;
 winget install -e --id Python.Python.3.12&lt;br /&gt;
&lt;br /&gt;
Install by Moniker:&lt;br /&gt;
 winget install python3.12&lt;br /&gt;
&lt;br /&gt;
Install Globally:&lt;br /&gt;
 winget install python.python.3.12 --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
 Installs to: C:\Program Files\Python312\python.exe&lt;br /&gt;
&lt;br /&gt;
Install to C:\python312:&lt;br /&gt;
 winget install python.python.3.12 --source winget --scope machine --location C:\python314&lt;br /&gt;
 winget install python.python.3.12 -s winget --scope machine -l C:\python312&lt;br /&gt;
&lt;br /&gt;
Install for User:&lt;br /&gt;
 winget install python.python.3.12 --source winget --scope User&lt;br /&gt;
 # or just&lt;br /&gt;
 winget install python.python.3.12 --source winget&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget remove python.python.3.12&lt;br /&gt;
&lt;br /&gt;
Downloading: Downloading https://www.python.org/ftp/python/3.12.10/python-3.12.10-amd64.exe&lt;br /&gt;
 Found Python 3.12 [Python.Python.3.12] Version 3.12.10&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3/12/3.12.10&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/12/3.12.10/Python.Python.3.12.yaml&lt;br /&gt;
&lt;br /&gt;
==== Python 3.8 ====&lt;br /&gt;
&lt;br /&gt;
 https://winstall.app/apps/Python.Python.3.8&lt;br /&gt;
 PackageIdentifier: Python.Python.3.8 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Moniker: python3.8 &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.locale.en-US.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports install path &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
 Supports scopped installs &amp;lt;ref&amp;gt;https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.installer.yaml&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install by direct ID:&lt;br /&gt;
 winget install -e --id Python.Python.3.8&lt;br /&gt;
&lt;br /&gt;
Install by Moniker:&lt;br /&gt;
 winget install python3.8&lt;br /&gt;
&lt;br /&gt;
Install Globally:&lt;br /&gt;
 winget install python.python3.8 --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
Install to C:\python38:&lt;br /&gt;
 winget install python.python.3.8 --source winget --scope machine --location C:\python38&lt;br /&gt;
 winget install python.python.3.8 -s winget --scope machine -l C:\python38&lt;br /&gt;
&lt;br /&gt;
Install for User:&lt;br /&gt;
 winget install python.python3.8 --source winget --scope User&lt;br /&gt;
 # or just&lt;br /&gt;
 winget install python.python3.8 --source winget&lt;br /&gt;
&lt;br /&gt;
Remove:&lt;br /&gt;
 winget remove python.python.3.8&lt;br /&gt;
&lt;br /&gt;
Downloading: https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe&lt;br /&gt;
 Found Python 3.8 [Python.Python.3.8] Version 3.8.10&lt;br /&gt;
&lt;br /&gt;
Manifests:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/p/Python/Python/3/8/3.8.10&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/p/Python/Python/3/8/3.8.10/Python.Python.3.8.yaml&lt;br /&gt;
&lt;br /&gt;
=== GnuWin32 Tools ===&lt;br /&gt;
 https://winget.run/search?query=GnuWin32&lt;br /&gt;
&lt;br /&gt;
* GetText&lt;br /&gt;
* Make&lt;br /&gt;
* Zip&lt;br /&gt;
* Grep&lt;br /&gt;
* UnZip&lt;br /&gt;
* Tree&lt;br /&gt;
* FindUtils&lt;br /&gt;
* Tar&lt;br /&gt;
&lt;br /&gt;
==== GnuWin32.Grep ====&lt;br /&gt;
 https://winget.run/pkg/GnuWin32/Grep&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id GnuWin32.Grep&lt;br /&gt;
&lt;br /&gt;
 winget install GnuWin32.Grep --source winget&lt;br /&gt;
&lt;br /&gt;
Interactive: (even interactive does not auto add to path)&lt;br /&gt;
 # -i,--interactive&lt;br /&gt;
 winget install GnuWin32.Grep -i --source winget&lt;br /&gt;
&lt;br /&gt;
Uninstall:&lt;br /&gt;
 winget uninstall GnuWin32.Grep&lt;br /&gt;
&lt;br /&gt;
Installs to: (not included in path)&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32\bin&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32\bin\grep.exe&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32\bin\egrep.exe&lt;br /&gt;
 C:\Program Files (x86)\GnuWin32\bin\fgrep.exe&lt;br /&gt;
&lt;br /&gt;
 Found GnuWin32: Grep [GnuWin32.Grep] Version 2.5.4&lt;br /&gt;
 Downloading https://sourceforge.net/projects/gnuwin32/files/grep/2.5.4/grep-2.5.4-setup.exe/download&lt;br /&gt;
&lt;br /&gt;
Manifest:&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/tree/master/manifests/g/GnuWin32/Grep&lt;br /&gt;
-&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GnuWin32/Grep/2.5.4/GnuWin32.Grep.installer.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GnuWin32/Grep/2.5.4/GnuWin32.Grep.locale.en-US.yaml&lt;br /&gt;
* https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/GnuWin32/Grep/2.5.4/GnuWin32.Grep.yaml&lt;br /&gt;
&lt;br /&gt;
=== Thunderbird ===&lt;br /&gt;
&lt;br /&gt;
 winget install Mozilla.Thunderbird&lt;br /&gt;
&lt;br /&gt;
=== rsync ===&lt;br /&gt;
&lt;br /&gt;
Have not found a Windows rsync through winget directly yet, but there is two MSYS2 options:&lt;br /&gt;
&lt;br /&gt;
see [[Windows/rsync]]&lt;br /&gt;
&lt;br /&gt;
 winget install MSYS2.MSYS2 --source winget&lt;br /&gt;
 pacman -S rsync&lt;br /&gt;
&lt;br /&gt;
=== dig ===&lt;br /&gt;
&lt;br /&gt;
 winget install ISC.BIND&lt;br /&gt;
&lt;br /&gt;
 winget install ISC.BIND --scope machine&lt;br /&gt;
&lt;br /&gt;
 winget uninstall ISC.BIND&lt;br /&gt;
&lt;br /&gt;
 Found Bind 9 [ISC.Bind] Version 9.17.12&lt;br /&gt;
 Downloading https://downloads.isc.org/isc/bind9/9.17.12/BIND9.17.12.x64.zip&lt;br /&gt;
&lt;br /&gt;
 where dig:&lt;br /&gt;
   # scope machine:&lt;br /&gt;
   C:\Program Files\WinGet\Packages\ISC.Bind_Microsoft.Winget.Source_8wekyb3d8bbwe\dig.exe&lt;br /&gt;
   # scope default:&lt;br /&gt;
   C:\Users\USER\AppData\Local\Microsoft\WinGet\Packages\ISC.Bind_Microsoft.Winget.Source_8wekyb3d8bbwe\dig.exe&lt;br /&gt;
&lt;br /&gt;
==== dig app ====&lt;br /&gt;
&lt;br /&gt;
 winget uninstall dig&lt;br /&gt;
&lt;br /&gt;
NOTE: this is NOT the command line tool!!&lt;br /&gt;
&lt;br /&gt;
 winget install dig&lt;br /&gt;
&lt;br /&gt;
 &amp;quot;DNS Lookup - dig nslookup&amp;quot;&lt;br /&gt;
 publisher: Publisher: Wuhan Bami Technology Co., Ltd.&lt;br /&gt;
 license: ms-windows-store://pdp/?ProductId=9MW6QQ8J0V6T&lt;br /&gt;
&lt;br /&gt;
 winget show dig&lt;br /&gt;
&lt;br /&gt;
=== MSYS2 ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id MSYS2.MSYS2&lt;br /&gt;
&lt;br /&gt;
 winget install MSYS2.MSYS2 --source winget&lt;br /&gt;
&lt;br /&gt;
 Found MSYS2 Installer [MSYS2.MSYS2] Version 20251213&lt;br /&gt;
 Downloading https://github.com/msys2/msys2-installer/releases/download/2025-12-13/msys2-x86_64-20251213.exe&lt;br /&gt;
&lt;br /&gt;
# Launch an MSYS2 terminal from the Start Menu (e.g., &amp;quot;MSYS2 UCRT64&amp;quot;)&lt;br /&gt;
# Update the core packages by running the following command in the MSYS2 terminal:&lt;br /&gt;
#* pacman -Syu&lt;br /&gt;
&lt;br /&gt;
=== Copilot ===&lt;br /&gt;
&lt;br /&gt;
 winget install GitHub.Copilot --source winget&lt;br /&gt;
&lt;br /&gt;
=== Copilot CLI ===&lt;br /&gt;
&lt;br /&gt;
 winget install GitHub.cli&lt;br /&gt;
&lt;br /&gt;
=== Keeper ===&lt;br /&gt;
&lt;br /&gt;
 # throwing access denied??&lt;br /&gt;
 winget install KeeperSecurity.KeeperDesktop --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install KeeperSecurity.KeeperDesktop --source winget&lt;br /&gt;
&lt;br /&gt;
 winget update KeeperSecurity.KeeperDesktop&lt;br /&gt;
&lt;br /&gt;
 winget uninstall KeeperSecurity.KeeperDesktop --all&lt;br /&gt;
&lt;br /&gt;
=== openssl client ===&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id ShiningLight.OpenSSL.Dev --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
 openssl s_client -connect api.github.com:443 -showcerts&lt;br /&gt;
 openssl s_client -connect api.github.com:443 -showcerts &amp;lt;/dev/null | grep issuer&lt;br /&gt;
&lt;br /&gt;
 C:\Program Files\OpenSSL-Win64\bin&lt;br /&gt;
&lt;br /&gt;
 fix path (powershell):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$oldPath = [Environment]::GetEnvironmentVariable(&amp;quot;Path&amp;quot;, &amp;quot;User&amp;quot;)&lt;br /&gt;
$newPath = $oldPath + &amp;quot;;C:\Program Files\OpenSSL-Win64\bin&amp;quot;&lt;br /&gt;
[Environment]::SetEnvironmentVariable(&amp;quot;Path&amp;quot;, $newPath, &amp;quot;User&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
fix path (cmd) - tends to break things:&lt;br /&gt;
 setx PATH &amp;quot;%PATH%;C:\Program Files\OpenSSL-Win64\bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
 Found OpenSSL [ShiningLight.OpenSSL.Dev] Version 4.0.1&lt;br /&gt;
 Downloading https://slproweb.com/download/Win64OpenSSL-4_0_1.msi&lt;br /&gt;
&lt;br /&gt;
=== Windhawk ===&lt;br /&gt;
&lt;br /&gt;
 winget install RamenSoftware.Windhawk --source winget&lt;br /&gt;
&lt;br /&gt;
 winget install RamenSoftware.Windhawk --source winget --scope machine&lt;br /&gt;
&lt;br /&gt;
See [[Windhawk]]&lt;br /&gt;
&lt;br /&gt;
=== ActiveState Perl ===&lt;br /&gt;
&lt;br /&gt;
No longer on Winget - use Strawberry Perl Instead&lt;br /&gt;
&lt;br /&gt;
=== StrawberryPerl ===&lt;br /&gt;
&lt;br /&gt;
 winget install StrawberryPerl.StrawberryPerl&lt;br /&gt;
&lt;br /&gt;
 https://github.com/StrawberryPerl/Perl-Dist-Strawberry/releases/download/SP_54221_64bit/strawberry-perl-5.42.2.1-64bit.msi&lt;br /&gt;
&lt;br /&gt;
=== wget ===&lt;br /&gt;
&lt;br /&gt;
Alias for JernejSimoncic.Wget&lt;br /&gt;
 winget install wget&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id JernejSimoncic.Wget&lt;br /&gt;
&lt;br /&gt;
 winget install wget --scope machine --source winget&lt;br /&gt;
&lt;br /&gt;
User scope:&lt;br /&gt;
 C:\Users\USER\AppData\Local\Microsoft\WinGet\Links\wget.exe&lt;br /&gt;
&lt;br /&gt;
Machine scope:&lt;br /&gt;
 C:\Program Files\WinGet\Links\wget.exe&lt;br /&gt;
&lt;br /&gt;
 Downloading https://eternallybored.org/misc/wget/1.21.4/64/wget.exe&lt;br /&gt;
 Path environment variable modified; restart your shell to use the new value.&lt;br /&gt;
&lt;br /&gt;
== Heavy Load ==&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id JAMSoftware.HeavyLoad&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id JAMSoftware.HeavyLoad --scope machine&lt;br /&gt;
&lt;br /&gt;
== CPU-Z ==&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id CPUID.CPU-Z&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id CPUID.CPU-Z --scope machine&lt;br /&gt;
&lt;br /&gt;
 winget upgrade -e --id CPUID.CPU-Z&lt;br /&gt;
&lt;br /&gt;
== HWMonitor ==&lt;br /&gt;
&lt;br /&gt;
 winget install -e --id CPUID.HWMonitor --scope machine&lt;br /&gt;
&lt;br /&gt;
== Download and Redeploy ==&lt;br /&gt;
&lt;br /&gt;
Download Package on one System:&lt;br /&gt;
 winget download Calculator -s msstore&lt;br /&gt;
 winget download Calculator -s msstore --skip-license&lt;br /&gt;
&lt;br /&gt;
Copy folder to other system&lt;br /&gt;
 Microsoft Store package downloaded: C:\path\9WZDNCRFHVN5\Microsoft.WindowsCalculator_2019.603.2248.0_Universal.Desktop_X86.Arm.X64.appxbundle&lt;br /&gt;
&lt;br /&gt;
Redeploy it on another system:&lt;br /&gt;
 Add-AppxPackage -Path C:\path\9WZDNCRFHVN5\Calculator.appx&lt;br /&gt;
&lt;br /&gt;
Reference: &amp;lt;ref&amp;gt;https://techcommunity.microsoft.com/blog/windows-itpro-blog/use-winget-1-8-to-download-microsoft-store-apps/4204522&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== WinGet Community Packages ==&lt;br /&gt;
&lt;br /&gt;
 Repology&lt;br /&gt;
 https://repology.org/&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
 Windows Package Manager Community Repository&lt;br /&gt;
 https://github.com/microsoft/winget-pkgs&lt;br /&gt;
&lt;br /&gt;
== Explore Windows Package Manager Tool ==&lt;br /&gt;
&lt;br /&gt;
 Explore the Windows Package Manager tool - Microsoft Learn&lt;br /&gt;
 https://learn.microsoft.com/en-us/training/modules/explore-windows-package-manager-tool/?WT.mc_id=AZ-MVP-5004737&lt;br /&gt;
&lt;br /&gt;
== PowerShell ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS &amp;gt; import-module Microsoft.WinGet.Client -verbose&lt;br /&gt;
VERBOSE: Loading module from path &#039;C:\Program Files\WindowsPowerShell\Modules\Microsoft.WinGet.Client\1.8.1911\Microsoft.WinGet.Client.psd1&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Add-WinGetSource&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Assert-WinGetPackageManager&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Disable-WinGetSetting&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Enable-WinGetSetting&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Export-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Find-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetSettings&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetSource&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetUserSettings&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Get-WinGetVersion&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Install-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Remove-WinGetSource&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Repair-WinGetPackageManager&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Reset-WinGetSource&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Set-WinGetUserSettings&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Test-WinGetUserSettings&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Uninstall-WinGetPackage&#039;.&lt;br /&gt;
VERBOSE: Importing cmdlet &#039;Update-WinGetPackage&#039;.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Package List Command ==&lt;br /&gt;
&lt;br /&gt;
 winget list - The list command of the winget tool displays a list of the applications currently installed on your computer. The list command will show apps that were installed through the Windows Package Manager as well as apps that were installed by other means. &amp;lt;ref&amp;gt;https://learn.microsoft.com/en-us/windows/package-manager/winget/list&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example list:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\&amp;gt; winget list&lt;br /&gt;
Name                                  Id                                     Version              Available      Source&lt;br /&gt;
-----------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Windows Driver Package - Plantronics… ARP\Machine\X64\07AFE62D73C8799E9E568… 04/21/2009 5.1&lt;br /&gt;
Windows Driver Package - Cambridge S… ARP\Machine\X64\452AADC6DA7150831AEE7… 11/19/2021 4.0.2.0&lt;br /&gt;
7-Zip 24.09 (x64)                     7zip.7zip                              24.09                               winget&lt;br /&gt;
Windows Driver Package - Silicon Lab… ARP\Machine\X64\9E2C239D42290B984A9E2… 09/19/2016 6.7.4.261&lt;br /&gt;
CPUID CPU-Z 2.13                      CPUID.CPU-Z                            2.13                 2.15           winget&lt;br /&gt;
Firefox Developer Edition (x64 en-US) Mozilla.Firefox.DeveloperEdition       137.0                               winget&lt;br /&gt;
Git                                   Git.Git                                2.47.1.2             2.49.0         winget&lt;br /&gt;
Greenshot 1.2.10.6                    Greenshot.Greenshot                    1.2.10.6                            winget&lt;br /&gt;
IrfanView 4.70 (64-bit)               IrfanSkiljan.IrfanView                 4.70                                winget&lt;br /&gt;
Mozilla Firefox (x64 en-US)           Mozilla.Firefox                        136.0.2                             winget&lt;br /&gt;
Mozilla Thunderbird (x64 en-US)       Mozilla.Thunderbird.ESR                128.2.3              128.8.0        winget&lt;br /&gt;
Mozilla Maintenance Service           ARP\Machine\X64\MozillaMaintenanceSer… 136.0&lt;br /&gt;
Notepad++ (64-bit x64)                Notepad++.Notepad++                    8.7.7                8.7.8          winget&lt;br /&gt;
Microsoft 365 Apps for enterprise - … Microsoft.Office                       16.0.18526.20168                    winget&lt;br /&gt;
Microsoft OneDrive                    Microsoft.OneDrive                     25.035.0223.0003                    winget&lt;br /&gt;
VLC media player                      VideoLAN.VLC                           3.0.21                              winget&lt;br /&gt;
WinMerge 2.16.46.0 x64                WinMerge.WinMerge                      2.16.46.0                           winget&lt;br /&gt;
Synergy (64-bit)                      Symless.Synergy                        &amp;lt; 3.0.80.1-rc3       3.0.80.1-rc3   winget&lt;br /&gt;
Google Chrome                         Google.Chrome                          134.0.6998.165       134.0.6998.166 winget&lt;br /&gt;
Beyond Compare 4                      ScooterSoftware.BeyondCompare.4        4.4.7.28397                         winget&lt;br /&gt;
YubiKey Manager CLI                   Yubico.YubiKeyManagerCLI               5.5.0.0              5.6.1          winget&lt;br /&gt;
MongoDB Compass                       MongoDB.Compass.Full                   1.43.4.0             1.45.4.0       winget&lt;br /&gt;
Google Drive                          Google.GoogleDrive                     105.0.1.0                           winget&lt;br /&gt;
Microsoft SQL Server Compact 4.0 SP1… ARP\Machine\X64\{78909610-D229-459C-A… 4.0.8876.1&lt;br /&gt;
MongoDB Shell                         MongoDB.Shell                          2.2.15               2.4.2          winget&lt;br /&gt;
Intel(R) Serial IO                    ARP\Machine\X64\{9FD91C5C-44AE-4D9D-8… 30.100.2129.8&lt;br /&gt;
Microsoft Teams Meeting Add-in for M… ARP\Machine\X64\{A7AB73A3-CB10-4AA5-9… 1.24.31301&lt;br /&gt;
Wave                                  CommandLine.Wave                       0.9.3.0              0.11.2         winget&lt;br /&gt;
Adobe Acrobat (64-bit)                Adobe.Acrobat.Reader.64-bit            25.001.20435                        winget&lt;br /&gt;
RealVNC Viewer 7.13.1                 RealVNC.VNCViewer                      7.13.1.57                           winget&lt;br /&gt;
OpenHashTab version v3.0.4            namazso.OpenHashTab                    v3.0.4                              winget&lt;br /&gt;
Microsoft Update Health Tools         ARP\Machine\X64\{C6FD611E-7EFE-488C-A… 5.72.0.0&lt;br /&gt;
PowerShell 7-x64                      Microsoft.PowerShell                   7.5.0.0                             winget&lt;br /&gt;
PowerShell 7.4.6.0-x64                Microsoft.PowerShell                   7.4.6.0                             winget&lt;br /&gt;
GlobalProtect                         ARP\Machine\X64\{D69F9E89-516A-4543-9… 6.2.3&lt;br /&gt;
Slack (Machine)                       SlackTechnologies.Slack                4.42.120             4.43.49        winget&lt;br /&gt;
Paint.NET                             dotPDN.PaintDotNet                     5.1.4                5.1.7          winget&lt;br /&gt;
Microsoft Visual Studio Code          Microsoft.VisualStudioCode             1.98.2                              winget&lt;br /&gt;
Adobe Creative Cloud                  Adobe.CreativeCloud                    6.5.0.348                           winget&lt;br /&gt;
Citrix Workspace 2409                 ARP\Machine\X86\CitrixOnlinePluginPac… 24.9.10.28&lt;br /&gt;
GnuWin32: CoreUtils version 5.3.0     ARP\Machine\X86\CoreUtils-5.3.0_is1    5.3.0&lt;br /&gt;
FileZilla 3.68.1                      ARP\Machine\X86\FileZilla Client       3.68.1&lt;br /&gt;
Google Chrome Beta                    Google.Chrome.Beta.EXE                 135.0.7049.28                       winget&lt;br /&gt;
Microsoft Edge                        Microsoft.Edge                         134.0.3124.85                       winget&lt;br /&gt;
Prisma Access Browser                 ARP\Machine\X86\Palo Alto Networks Pr… 134.20.7.166&lt;br /&gt;
Windhawk v1.5.1                       RamenSoftware.Windhawk                 1.5.1                               winget&lt;br /&gt;
klogg                                 variar.klogg                           22.06.0.1289                        winget&lt;br /&gt;
WinSCP 6.3.7                          WinSCP.WinSCP                          6.3.7                               winget&lt;br /&gt;
YubiKey Manager                       Yubico.YubikeyManager                  1.2.6                               winget&lt;br /&gt;
Microsoft Visual C++ 2010  x86 Redis… Microsoft.VCRedist.2010.x86            10.0.30319           10.0.40219     winget&lt;br /&gt;
Intel(R) Chipset Device Software      ARP\Machine\X86\{2d8d3782-0c02-4681-8… 10.1.18838.8284&lt;br /&gt;
Microsoft Windows Desktop Runtime - … Microsoft.DotNet.DesktopRuntime.7      7.0.20                              winget&lt;br /&gt;
mControl                              ARP\Machine\X86\{64D959BF-0B83-4AD2-9… Unknown&lt;br /&gt;
Microsoft ASP.NET Core 7.0.20 - Shar… Microsoft.DotNet.AspNetCore.7          7.0.20                              winget&lt;br /&gt;
Python Launcher                       Python.Launcher                        &amp;gt; 3.12.0                            winget&lt;br /&gt;
Plantronics Hub Software              Poly.PlantronicsHub                    3.25.54307.37251                    winget&lt;br /&gt;
MobaXterm                             Mobatek.MobaXterm                      24.2.0.5220          25.1.0.5288    winget&lt;br /&gt;
Microsoft Search in Bing              ARP\Machine\X86\{C17F6DEF-D34C-4B75-9… 2.0.2&lt;br /&gt;
AI Suite 3                            ARP\Machine\X86\{CD36E28B-6023-469A-9… 3.03.36&lt;br /&gt;
Microsoft Teams VDI Citrix plugin     ARP\Machine\X86\{CF8A7E4B-3636-4E6B-9… 24.41.1.1&lt;br /&gt;
Microsoft Visual C++ 2015-2022 Redis… Microsoft.VCRedist.2015+.x64           14.42.34438.0                       winget&lt;br /&gt;
Microsoft Visual C++ 2015-2022 Redis… Microsoft.VCRedist.2015+.x86           14.42.34438.0                       winget&lt;br /&gt;
CrowdStrike Windows Sensor            ARP\Machine\X86\{d223a5fc-7936-4a58-8… 7.21.19205.0&lt;br /&gt;
Microsoft Windows Desktop Runtime - … Microsoft.DotNet.DesktopRuntime.8      8.0.14                              winget&lt;br /&gt;
Adobe Acrobat                         MSIX\AdobeAcrobatDCCoreApp_23.1.0.0_x… 23.1.0.0&lt;br /&gt;
Intel® Graphics Command Center        MSIX\AppUp.IntelGraphicsExperience_1.… 1.100.5688.0&lt;br /&gt;
Microsoft Clipchamp                   MSIX\Clipchamp.Clipchamp_4.1.10320.0_… 4.1.10320.0&lt;br /&gt;
Microsoft Teams                       Microsoft.Teams                        25044.2208.3471.2155                winget&lt;br /&gt;
AV1 Video Extension                   MSIX\Microsoft.AV1VideoExtension_1.3.… 1.3.4.0&lt;br /&gt;
AVC Encoder Video Extension           MSIX\Microsoft.AVCEncoderVideoExtensi… 1.1.13.0&lt;br /&gt;
Windows Application Compatibility En… MSIX\Microsoft.ApplicationCompatibili… 1.2411.16.0&lt;br /&gt;
News                                  MSIX\Microsoft.BingNews_4.56.242.0_x6… 4.56.242.0&lt;br /&gt;
Microsoft Bing                        MSIX\Microsoft.BingSearch_1.1.34.0_x6… 1.1.34.0&lt;br /&gt;
MSN Weather                           MSIX\Microsoft.BingWeather_4.54.63007… 4.54.63007.0&lt;br /&gt;
Copilot                               MSIX\Microsoft.Copilot_1.25024.146.0_… 1.25024.146.0&lt;br /&gt;
App Installer                         Microsoft.AppInstaller                 1.25.340.0                          winget&lt;br /&gt;
Xbox                                  MSIX\Microsoft.GamingApp_2501.1001.3.… 2501.1001.3.0&lt;br /&gt;
Get Help                              MSIX\Microsoft.GetHelp_10.2409.22951.… 10.2409.22951.0&lt;br /&gt;
HEIF Image Extensions                 MSIX\Microsoft.HEIFImageExtension_1.2… 1.2.3.0&lt;br /&gt;
HEVC Video Extensions from Device Ma… MSIX\Microsoft.HEVCVideoExtension_2.2… 2.2.9.0&lt;br /&gt;
MPEG-2 Video Extension                MSIX\Microsoft.MPEG2VideoExtension_1.… 1.0.61931.0&lt;br /&gt;
Microsoft Edge                        MSIX\Microsoft.MicrosoftEdge.Stable_1… 134.0.3124.66&lt;br /&gt;
Microsoft 365 (Office)                MSIX\Microsoft.MicrosoftOfficeHub_18.… 18.2405.1221.0&lt;br /&gt;
Solitaire &amp;amp; Casual Games              MSIX\Microsoft.MicrosoftSolitaireColl… 4.21.12110.0&lt;br /&gt;
Microsoft Sticky Notes                MSIX\Microsoft.MicrosoftStickyNotes_4… 4.0.6104.0&lt;br /&gt;
Microsoft .Net Native Framework Pack… MSIX\Microsoft.NET.Native.Framework.2… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Framework Pack… MSIX\Microsoft.NET.Native.Framework.2… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Runtime Packag… MSIX\Microsoft.NET.Native.Runtime.2.2… 2.2.28604.0&lt;br /&gt;
Microsoft .Net Native Runtime Packag… MSIX\Microsoft.NET.Native.Runtime.2.2… 2.2.28604.0&lt;br /&gt;
OfficePushNotificationsUtility        MSIX\Microsoft.OfficePushNotification… 16.0.18526.20168&lt;br /&gt;
OneDrive                              MSIX\Microsoft.OneDriveSync_25035.223… 25035.223.3.0&lt;br /&gt;
Outlook for Windows                   MSIX\Microsoft.OutlookForWindows_1.20… 1.2025.319.100&lt;br /&gt;
Paint                                 MSIX\Microsoft.Paint_11.2412.311.0_x6… 11.2412.311.0&lt;br /&gt;
Microsoft People                      MSIX\Microsoft.People_10.2202.100.0_x… 10.2202.100.0&lt;br /&gt;
Power Automate                        MSIX\Microsoft.PowerAutomateDesktop_1… 1.0.1394.0&lt;br /&gt;
Raw Image Extension                   MSIX\Microsoft.RawImageExtension_2.5.… 2.5.3.0&lt;br /&gt;
Snipping Tool                         MSIX\Microsoft.ScreenSketch_11.2501.7… 11.2501.7.0&lt;br /&gt;
Windows Security                      MSIX\Microsoft.SecHealthUI_1000.27703… 1000.27703.1006.0&lt;br /&gt;
Store Experience Host                 MSIX\Microsoft.StorePurchaseApp_22411… 22411.1401.1.0&lt;br /&gt;
Microsoft To Do                       MSIX\Microsoft.Todos_0.114.7122.0_x64… 0.114.7122.0&lt;br /&gt;
Microsoft.UI.Xaml.2.7                 Microsoft.UI.Xaml.2.7                  7.2409.9001.0                       winget&lt;br /&gt;
Microsoft.UI.Xaml.2.7                 Microsoft.UI.Xaml.2.7                  7.2409.9001.0                       winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                 Microsoft.UI.Xaml.2.8                  8.2501.31001.0                      winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                 Microsoft.UI.Xaml.2.8                  8.2501.31001.0                      winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Deskto… Microsoft.VCLibs.Desktop.14            14.0.33728.0                        winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Deskto… Microsoft.VCLibs.Desktop.14            14.0.33728.0                        winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtim… MSIX\Microsoft.VCLibs.140.00_14.0.335… 14.0.33519.0&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtim… MSIX\Microsoft.VCLibs.140.00_14.0.335… 14.0.33519.0&lt;br /&gt;
VP9 Video Extensions                  MSIX\Microsoft.VP9VideoExtensions_1.2… 1.2.2.0&lt;br /&gt;
Web Media Extensions                  MSIX\Microsoft.WebMediaExtensions_1.1… 1.1.1295.0&lt;br /&gt;
Webp Image Extensions                 MSIX\Microsoft.WebpImageExtension_1.1… 1.1.1711.0&lt;br /&gt;
Widgets Platform Runtime              MSIX\Microsoft.WidgetsPlatformRuntime… 1.6.8.0&lt;br /&gt;
Dev Home                              Microsoft.DevHome                      0.2000.758.0         0.2001.758.0   winget&lt;br /&gt;
Microsoft Photos                      MSIX\Microsoft.Windows.Photos_2025.11… 2025.11020.11001.0&lt;br /&gt;
Windows Clock                         MSIX\Microsoft.WindowsAlarms_11.2501.… 11.2501.7.0&lt;br /&gt;
WindowsAppRuntime.1.4                 MSIX\Microsoft.WindowsAppRuntime.1.4_… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.4                 MSIX\Microsoft.WindowsAppRuntime.1.4_… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.5                 MSIX\Microsoft.WindowsAppRuntime.1.5_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.5                 MSIX\Microsoft.WindowsAppRuntime.1.5_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.6                 MSIX\Microsoft.WindowsAppRuntime.1.6_… 6000.424.1611.0&lt;br /&gt;
WindowsAppRuntime.1.6                 MSIX\Microsoft.WindowsAppRuntime.1.6_… 6000.424.1611.0&lt;br /&gt;
Windows Calculator                    MSIX\Microsoft.WindowsCalculator_11.2… 11.2501.1.0&lt;br /&gt;
Windows Camera                        MSIX\Microsoft.WindowsCamera_2025.250… 2025.2501.1.0&lt;br /&gt;
Feedback Hub                          MSIX\Microsoft.WindowsFeedbackHub_1.2… 1.2411.17101.0&lt;br /&gt;
Windows Maps                          MSIX\Microsoft.WindowsMaps_1.0.64.0_x… 1.0.64.0&lt;br /&gt;
Windows Notepad                       MSIX\Microsoft.WindowsNotepad_11.2412… 11.2412.16.0&lt;br /&gt;
Windows Sound Recorder                MSIX\Microsoft.WindowsSoundRecorder_1… 1.0.80.0&lt;br /&gt;
Microsoft Store                       MSIX\Microsoft.WindowsStore_22502.140… 22502.1401.4.0&lt;br /&gt;
Windows Terminal                      Microsoft.WindowsTerminal              1.21.10351.0         1.22.10731.0   winget&lt;br /&gt;
Windows Package Manager Source (wing… MSIX\Microsoft.Winget.Source_2025.325… 2025.325.529.21&lt;br /&gt;
Xbox TCUI                             MSIX\Microsoft.Xbox.TCUI_1.24.10001.0… 1.24.10001.0&lt;br /&gt;
Xbox Game Bar Plugin                  MSIX\Microsoft.XboxGameOverlay_1.54.4… 1.54.4001.0&lt;br /&gt;
Game Bar                              MSIX\Microsoft.XboxGamingOverlay_7.22… 7.225.2131.0&lt;br /&gt;
Xbox Identity Provider                MSIX\Microsoft.XboxIdentityProvider_1… 12.115.1001.0&lt;br /&gt;
Game Speech Window                    MSIX\Microsoft.XboxSpeechToTextOverla… 1.97.17002.0&lt;br /&gt;
Phone Link                            MSIX\Microsoft.YourPhone_1.25022.70.0… 1.25022.70.0&lt;br /&gt;
Windows Media Player                  MSIX\Microsoft.ZuneMusic_11.2501.9.0_… 11.2501.9.0&lt;br /&gt;
Movies &amp;amp; TV                           MSIX\Microsoft.ZuneVideo_10.25011.100… 10.25011.10061.0&lt;br /&gt;
Quick Assist                          MSIX\MicrosoftCorporationII.QuickAssi… 2.0.32.0&lt;br /&gt;
Windows Subsystem for Linux           Microsoft.WSL                          2.3.26.0             2.4.12         winget&lt;br /&gt;
Windows Web Experience Pack           MSIX\MicrosoftWindows.Client.WebExper… 525.1301.30.0&lt;br /&gt;
Cross Device Experience Host          MSIX\MicrosoftWindows.CrossDevice_1.2… 1.25021.28.0&lt;br /&gt;
Mail and Calendar                     MSIX\microsoft.windowscommunicationsa… 16005.14326.22301.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\&amp;gt; winget list&lt;br /&gt;
Name                                                Id                                                     Version          Available Source&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
7-Zip 25.01 (x64)                                   7zip.7zip                                              25.01                      winget&lt;br /&gt;
Armoury Crate Service                               ARP\Machine\X64\Armoury Crate Service                  6.3.6.0&lt;br /&gt;
Audacity 3.7.6                                      XP8K0J757HHRDW                                         3.7.6                      msstore&lt;br /&gt;
Beyond Compare 4.4.7                                ScooterSoftware.BeyondCompare.4                        4.4.7.28397                winget&lt;br /&gt;
Docker Desktop                                      Docker.DockerDesktop                                   4.54.0                     winget&lt;br /&gt;
Git                                                 ARP\Machine\X64\Git_is1                                2.52.0&lt;br /&gt;
Greenshot 1.3.301                                   Greenshot.Greenshot                                    1.3.301          1.3.304   winget&lt;br /&gt;
HWiNFO® 64                                          REALiX.HWiNFO                                          8.34                       winget&lt;br /&gt;
IrfanView 4.73 (64-bit)                             IrfanSkiljan.IrfanView                                 4.73                       winget&lt;br /&gt;
Mozilla Firefox ESR (x64 en-US)                     Mozilla.Firefox.ESR                                    140.6.0                    winget&lt;br /&gt;
Mozilla Firefox ESR (x64 en-US)                     Mozilla.Firefox.ESR                                    140.5.0                    winget&lt;br /&gt;
Mozilla Maintenance Service                         ARP\Machine\X64\MozillaMaintenanceService              140.6.0&lt;br /&gt;
Notepad++ (64-bit x64)                              Notepad++.Notepad++                                    8.8.9                      winget&lt;br /&gt;
Microsoft 365 Apps for enterprise - en-us           Microsoft.Office                                       16.0.19328.20266           winget&lt;br /&gt;
Microsoft OneDrive                                  Microsoft.OneDrive                                     25.216.1104.0002           winget&lt;br /&gt;
OpenSSL 3.6.0 (64-bit)                              ShiningLight.OpenSSL.Dev                               3.6.0                      winget&lt;br /&gt;
Luma Island                                         ARP\Machine\X64\Steam App 2408820                      Unknown&lt;br /&gt;
VLC media player                                    VideoLAN.VLC                                           3.0.22                     winget&lt;br /&gt;
Vim 9.1 (x64)                                       ARP\Machine\X64\Vim 9.1                                9.1.1972&lt;br /&gt;
WinMerge x64                                        WinMerge.WinMerge                                      2.16.52.2                  winget&lt;br /&gt;
Webex                                               Cisco.Webex                                            45.12.0.33709              winget&lt;br /&gt;
Strawberry Perl (64-bit)                            StrawberryPerl.StrawberryPerl                          5.42.0.1                   winget&lt;br /&gt;
Microsoft Update Health Tools                       ARP\Machine\X64\{1FC1A6C2-576E-489A-9B4A-92D21F542136} 3.74.0.0&lt;br /&gt;
Synergy (64-bit)                                    Symless.Synergy                                        1.14.6           3.2.1     winget&lt;br /&gt;
ROG Live Service                                    ARP\Machine\X64\{2D87BFB6-C184-4A59-9BBE-3E20CE797631} 3.3.12.0&lt;br /&gt;
Paint.NET                                           dotPDN.PaintDotNet                                     5.1.11                     winget&lt;br /&gt;
Microsoft Defender for Endpoint plug-in for WSL     ARP\Machine\X64\{4BC7FC7C-21F9-4E26-9DBE-A6DEA45636FF} 1.25.825.2&lt;br /&gt;
Google Drive                                        Google.GoogleDrive                                     117.0.0.0                  winget&lt;br /&gt;
YubiKey Manager CLI                                 Yubico.YubiKeyManagerCLI                               5.8.0.0                    winget&lt;br /&gt;
Zoom Workplace (64-bit)                             Zoom.Zoom                                              6.6.23272                  winget&lt;br /&gt;
Microsoft Teams Meeting Add-in for Microsoft Office ARP\Machine\X64\{A7AB73A3-CB10-4AA5-9D38-6AEFFBDE4C91} 1.25.28902&lt;br /&gt;
Windows PC Health Check                             Microsoft.WindowsPCHealthCheck                         4.0.2410.23001             winget&lt;br /&gt;
AURA lighting effect add-on x64                     ARP\Machine\X64\{C5A4A164-4428-4931-B728-96EEF0FA3C44} 0.0.49&lt;br /&gt;
GlobalProtect                                       ARP\Machine\X64\{D69F9E89-516A-4543-9DE1-A4BD75CE851C} 6.2.3&lt;br /&gt;
PowerShell 7-x64                                    Microsoft.PowerShell                                   7.5.4.0                    winget&lt;br /&gt;
PowerShell 7.5.3.0-x64                              Microsoft.PowerShell                                   7.5.3.0                    winget&lt;br /&gt;
Microsoft Visual Studio Code                        Microsoft.VisualStudioCode                             1.107.0                    winget&lt;br /&gt;
OpenHashTab                                         namazso.OpenHashTab                                    3.1.1                      winget&lt;br /&gt;
Windows Subsystem for Linux Update                  ARP\Machine\X64\{F8474A47-8B5D-4466-ACE3-78EAB3BF21A8} 5.10.102.1&lt;br /&gt;
Citrix Workspace 2402                               ARP\Machine\X86\CitrixOnlinePluginPackWeb              24.2.3001.9&lt;br /&gt;
GnuWin32: CoreUtils version 5.3.0                   ARP\Machine\X86\CoreUtils-5.3.0_is1                    5.3.0&lt;br /&gt;
FileZilla 3.69.5                                    ARP\Machine\X86\FileZilla Client                       3.69.5&lt;br /&gt;
Google Chrome                                       Google.Chrome.EXE                                      143.0.7499.41              winget&lt;br /&gt;
Microsoft Edge                                      Microsoft.Edge                                         143.0.3650.80              winget&lt;br /&gt;
Steam                                               Valve.Steam                                            2.10.91.91                 winget&lt;br /&gt;
Dashboard                                           SanDisk.Dashboard                                      5.1.2.2                    winget&lt;br /&gt;
Windhawk v1.7.3                                     RamenSoftware.Windhawk                                 1.7.3                      winget&lt;br /&gt;
GameSDK Service                                     ARP\Machine\X86\{021d69c3-d686-4a94-8fb5-fd1ee782fb14} 1.0.5.0&lt;br /&gt;
Microsoft Visual C++ v14 Redistributable (x86) - 1… Microsoft.VCRedist.2015+.x86                           14.50.35719.0              winget&lt;br /&gt;
AURA lighting effect add-on                         ARP\Machine\X86\{1E2EA04B-FCA7-457E-B6F4-F33E1858E859} 0.0.49&lt;br /&gt;
Microsoft Intune Management Extension               ARP\Machine\X86\{262D9D60-DB70-49A1-9880-B5E140727909} 1.97.107.0&lt;br /&gt;
Microsoft Windows Desktop Runtime - 8.0.22 (x86)    Microsoft.DotNet.DesktopRuntime.8                      8.0.22                     winget&lt;br /&gt;
ASUS Framework Service                              ARP\Machine\X86\{339A6383-7862-46DA-8A9D-E84180EF9424} 4.2.4.7&lt;br /&gt;
Microsoft Purview Information Protection            Microsoft.PurviewInformationProtection                 3.1.310.0                  winget&lt;br /&gt;
Microsoft Visual C++ v14 Redistributable (x64) - 1… Microsoft.VCRedist.2015+.x64                           14.50.35719.0              winget&lt;br /&gt;
Microsoft .NET Runtime - 8.0.22 (x64)               Microsoft.DotNet.Runtime.8                             8.0.22                     winget&lt;br /&gt;
Printer Installer Client                            ARP\Machine\X86\{A9DE0858-9DDD-4E1B-B041-C2AA90DCBF74} 25.0.0.1074&lt;br /&gt;
Microsoft Windows Desktop Runtime - 6.0.36 (x86)    Microsoft.DotNet.DesktopRuntime.6                      6.0.36                     winget&lt;br /&gt;
AURA Service                                        ARP\Machine\X86\{cabfa89d-a59c-47ac-8d18-2032a1f72f20} 3.08.59&lt;br /&gt;
Signal 7.82.0                                       OpenWhisperSystems.Signal                              7.82.0                     winget&lt;br /&gt;
MongoDB Compass                                     MongoDB.Compass.Full                                   1.47.1           1.48.2.0  winget&lt;br /&gt;
Armoury Crate                                       MSIX\ASUSAmbientHAL64_1.0.0.3_neutral__ecvjzhf6c4w7r   1.0.0.3&lt;br /&gt;
Intel® Graphics Command Center                      MSIX\AppUp.IntelGraphicsExperience_1.100.5688.0_x64__… 1.100.5688.0&lt;br /&gt;
Intel® OptaneTM Memory and Storage Management       MSIX\AppUp.IntelOptaneMemoryandStorageManagement_18.1… 18.1.1042.0&lt;br /&gt;
Ubuntu 24.04.1 LTS                                  Canonical.Ubuntu.2404                                  2404.1.26.0                winget&lt;br /&gt;
Microsoft Clipchamp                                 MSIX\Clipchamp.Clipchamp_4.4.10420.0_x64__yxz26nhyzhs… 4.4.10420.0&lt;br /&gt;
Kali Linux                                          OffSec.KaliLinux                                       2025.3.0.0                 winget&lt;br /&gt;
Keeper® Password Manager                            KeeperSecurity.KeeperDesktop                           17.4.1.0                   winget&lt;br /&gt;
Microsoft Teams                                     Microsoft.Teams                                        25306.804.4102.…           winget&lt;br /&gt;
AV1 Video Extension                                 MSIX\Microsoft.AV1VideoExtension_2.0.6.0_x64__8wekyb3… 2.0.6.0&lt;br /&gt;
AVC Encoder Video Extension                         MSIX\Microsoft.AVCEncoderVideoExtension_1.1.21.0_x64_… 1.1.21.0&lt;br /&gt;
Windows Application Compatibility Enhancements      MSIX\Microsoft.ApplicationCompatibilityEnhancements_1… 1.2511.9.0&lt;br /&gt;
News                                                MSIX\Microsoft.BingNews_4.55.62231.0_x64__8wekyb3d8bb… 4.55.62231.0&lt;br /&gt;
Microsoft Bing                                      MSIX\Microsoft.BingSearch_1.1.40.0_x64__8wekyb3d8bbwe  1.1.40.0&lt;br /&gt;
MSN Weather                                         MSIX\Microsoft.BingWeather_4.54.63029.0_x64__8wekyb3d… 4.54.63029.0&lt;br /&gt;
Company Portal                                      MSIX\Microsoft.CompanyPortal_11.2.1672.0_x64__8wekyb3… 11.2.1672.0&lt;br /&gt;
Copilot                                             MSIX\Microsoft.Copilot_1.25114.55.0_x64__8wekyb3d8bbwe 1.25114.55.0&lt;br /&gt;
App Installer                                       Microsoft.AppInstaller                                 1.27.350.0                 winget&lt;br /&gt;
Microsoft Edge Game Assist                          MSIX\Microsoft.Edge.GameAssist_1.0.3456.0_x64__8wekyb… 1.0.3456.0&lt;br /&gt;
Xbox                                                MSIX\Microsoft.GamingApp_2512.1001.34.0_x64__8wekyb3d… 2512.1001.34.0&lt;br /&gt;
Get Help                                            MSIX\Microsoft.GetHelp_10.2409.32612.0_x64__8wekyb3d8… 10.2409.32612.0&lt;br /&gt;
HEIF Image Extension                                MSIX\Microsoft.HEIFImageExtension_1.2.23.0_x64__8weky… 1.2.23.0&lt;br /&gt;
HEVC Video Extensions from Device Manufacturer      MSIX\Microsoft.HEVCVideoExtension_2.4.39.0_x64__8weky… 2.4.39.0&lt;br /&gt;
MPEG-2 Video Extension                              MSIX\Microsoft.MPEG2VideoExtension_1.2.13.0_x64__8wek… 1.2.13.0&lt;br /&gt;
Paint 3D                                            MSIX\Microsoft.MSPaint_6.1907.29027.0_x64__8wekyb3d8b… 6.1907.29027.0&lt;br /&gt;
3D Viewer                                           MSIX\Microsoft.Microsoft3DViewer_1.0.125.0_x64__8weky… 1.0.125.0&lt;br /&gt;
Microsoft Edge                                      MSIX\Microsoft.MicrosoftEdge.Stable_140.0.3485.94_neu… 140.0.3485.94&lt;br /&gt;
Microsoft 365 Copilot                               MSIX\Microsoft.MicrosoftOfficeHub_19.2512.39051.0_x64… 19.2512.39051.0&lt;br /&gt;
Solitaire &amp;amp; Casual Games                            MSIX\Microsoft.MicrosoftSolitaireCollection_4.24.1204… 4.24.12040.0&lt;br /&gt;
Microsoft Sticky Notes                              MSIX\Microsoft.MicrosoftStickyNotes_4.0.6104.0_x64__8… 4.0.6104.0&lt;br /&gt;
Mixed Reality Portal                                MSIX\Microsoft.MixedReality.Portal_2000.21051.1282.0_… 2000.21051.1282…&lt;br /&gt;
Microsoft .Net Native Framework Package 1.7         MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x… 1.7.27413.0&lt;br /&gt;
Microsoft .Net Native Framework Package 1.7         MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x… 1.7.27413.0&lt;br /&gt;
Microsoft .Net Native Framework Package 2.2         MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Framework Package 2.2         MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 1.7           MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x64… 1.7.27422.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 1.7           MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x86… 1.7.27422.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 2.2           MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64… 2.2.28604.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 2.2           MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x86… 2.2.28604.0&lt;br /&gt;
Microsoft.Office.ActionsServer                      MSIX\Microsoft.Office.ActionsServer_16.0.19328.20266_… 16.0.19328.20266&lt;br /&gt;
OneNote for Windows 10                              MSIX\Microsoft.Office.OneNote_16.14326.22589.0_x64__8… 16.14326.22589.0&lt;br /&gt;
OfficePushNotificationsUtility                      MSIX\Microsoft.OfficePushNotificationUtility_16.0.193… 16.0.19328.20266&lt;br /&gt;
OneDrive                                            MSIX\Microsoft.OneDriveSync_25216.1104.2.0_neutral__8… 25216.1104.2.0&lt;br /&gt;
Outlook for Windows                                 MSIX\Microsoft.OutlookForWindows_1.2025.1121.100_x64_… 1.2025.1121.100&lt;br /&gt;
Paint                                               MSIX\Microsoft.Paint_11.2510.311.0_x64__8wekyb3d8bbwe  11.2510.311.0&lt;br /&gt;
Microsoft People                                    MSIX\Microsoft.People_10.2202.100.0_x64__8wekyb3d8bbwe 10.2202.100.0&lt;br /&gt;
Power Automate                                      MSIX\Microsoft.PowerAutomateDesktop_1.0.2046.0_x64__8… 1.0.2046.0&lt;br /&gt;
Raw Image Extension                                 MSIX\Microsoft.RawImageExtension_2.5.7.0_x64__8wekyb3… 2.5.7.0&lt;br /&gt;
Snipping Tool                                       MSIX\Microsoft.ScreenSketch_11.2510.31.0_x64__8wekyb3… 11.2510.31.0&lt;br /&gt;
Windows Security                                    MSIX\Microsoft.SecHealthUI_1000.29429.1000.0_x64__8we… 1000.29429.1000…&lt;br /&gt;
Microsoft Engagement Framework                      MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0… 10.0.23012.0&lt;br /&gt;
Microsoft Engagement Framework                      MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0… 10.0.23012.0&lt;br /&gt;
Skype                                               MSIX\Microsoft.SkypeApp_15.150.3125.0_x64__kzf8qxf38z… 15.150.3125.0&lt;br /&gt;
Start Experiences App                               MSIX\Microsoft.StartExperiencesApp_1.179.4.0_x64__8we… 1.179.4.0&lt;br /&gt;
Store Experience Host                               MSIX\Microsoft.StorePurchaseApp_22509.1401.1.0_x64__8… 22509.1401.1.0&lt;br /&gt;
Microsoft To Do                                     MSIX\Microsoft.Todos_0.148.3611.0_x64__8wekyb3d8bbwe   0.148.3611.0&lt;br /&gt;
Microsoft.UI.Xaml.2.0                               MSIX\Microsoft.UI.Xaml.2.0_2.1810.18004.0_x64__8wekyb… 2.1810.18004.0&lt;br /&gt;
Microsoft.UI.Xaml.2.3                               MSIX\Microsoft.UI.Xaml.2.3_2.32002.13001.0_x64__8weky… 2.32002.13001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.3                               MSIX\Microsoft.UI.Xaml.2.3_2.32002.13001.0_x86__8weky… 2.32002.13001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.4                               MSIX\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x64__8wekyb… 2.42007.9001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.4                               MSIX\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x86__8wekyb… 2.42007.9001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.7                               Microsoft.UI.Xaml.2.7                                  7.2409.9001.0              winget&lt;br /&gt;
Microsoft.UI.Xaml.2.7                               Microsoft.UI.Xaml.2.7                                  7.2409.9001.0              winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                               Microsoft.UI.Xaml.2.8                                  8.2501.31001.0             winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                               Microsoft.UI.Xaml.2.8                                  8.2501.31001.0             winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Desktop Runtime Pack… Microsoft.VCLibs.Desktop.14                            14.0.33728.0               winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Desktop Runtime Pack… Microsoft.VCLibs.Desktop.14                            14.0.33728.0               winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtime Package       MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x64__8wekyb… 14.0.33519.0&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtime Package       MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x86__8wekyb… 14.0.33519.0&lt;br /&gt;
VP9 Video Extensions                                MSIX\Microsoft.VP9VideoExtensions_1.2.12.0_x64__8weky… 1.2.12.0&lt;br /&gt;
Web Media Extensions                                MSIX\Microsoft.WebMediaExtensions_1.2.17.0_x64__8weky… 1.2.17.0&lt;br /&gt;
WebP Image Extension                                MSIX\Microsoft.WebpImageExtension_1.2.14.0_x64__8weky… 1.2.14.0&lt;br /&gt;
Widgets Platform Runtime                            MSIX\Microsoft.WidgetsPlatformRuntime_1.6.14.0_x64__8… 1.6.14.0&lt;br /&gt;
Microsoft Photos                                    MSIX\Microsoft.Windows.Photos_2025.11110.18001.0_x64_… 2025.11110.1800…&lt;br /&gt;
Windows Clock                                       MSIX\Microsoft.WindowsAlarms_11.2510.4.0_x64__8wekyb3… 11.2510.4.0&lt;br /&gt;
WindowsAppRuntime.1.4                               MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.4                               MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.5                               MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.5                               MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.6                               MSIX\Microsoft.WindowsAppRuntime.1.6_6000.519.329.0_x… 6000.519.329.0&lt;br /&gt;
WindowsAppRuntime.1.6                               MSIX\Microsoft.WindowsAppRuntime.1.6_6000.519.329.0_x… 6000.519.329.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.652.1806.0_… 7000.652.1806.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.676.1651.0_… 7000.676.1651.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.676.1651.0_… 7000.676.1651.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.642.119.0_x… 8000.642.119.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.675.1142.0_… 8000.675.1142.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.675.1142.0_… 8000.675.1142.0&lt;br /&gt;
Windows Calculator                                  MSIX\Microsoft.WindowsCalculator_11.2508.4.0_x64__8we… 11.2508.4.0&lt;br /&gt;
Windows Camera                                      MSIX\Microsoft.WindowsCamera_2025.2510.2.0_x64__8weky… 2025.2510.2.0&lt;br /&gt;
Feedback Hub                                        MSIX\Microsoft.WindowsFeedbackHub_1.2510.14102.0_x64_… 1.2510.14102.0&lt;br /&gt;
Windows Maps                                        MSIX\Microsoft.WindowsMaps_1.0.65.0_x64__8wekyb3d8bbwe 1.0.65.0&lt;br /&gt;
Windows Notepad                                     MSIX\Microsoft.WindowsNotepad_11.2508.38.0_x64__8weky… 11.2508.38.0&lt;br /&gt;
Windows Sound Recorder                              MSIX\Microsoft.WindowsSoundRecorder_1.1.47.0_x64__8we… 1.1.47.0&lt;br /&gt;
Microsoft Store                                     MSIX\Microsoft.WindowsStore_22510.1401.4.0_x64__8weky… 22510.1401.4.0&lt;br /&gt;
Windows Terminal                                    Microsoft.WindowsTerminal                              1.23.12811.0               winget&lt;br /&gt;
Windows Package Manager Source (winget) V2          MSIX\Microsoft.Winget.Source_2025.1213.819.46_neutral… 2025.1213.819.46&lt;br /&gt;
Xbox TCUI                                           MSIX\Microsoft.Xbox.TCUI_1.24.10001.0_x64__8wekyb3d8b… 1.24.10001.0&lt;br /&gt;
Xbox Console Companion                              MSIX\Microsoft.XboxApp_48.104.4001.0_x64__8wekyb3d8bb… 48.104.4001.0&lt;br /&gt;
Xbox Game Bar Plugin                                MSIX\Microsoft.XboxGameOverlay_1.54.4001.0_x64__8weky… 1.54.4001.0&lt;br /&gt;
Game Bar                                            MSIX\Microsoft.XboxGamingOverlay_7.325.11061.0_x64__8… 7.325.11061.0&lt;br /&gt;
Xbox Identity Provider                              MSIX\Microsoft.XboxIdentityProvider_12.130.16001.0_x6… 12.130.16001.0&lt;br /&gt;
Game Speech Window                                  MSIX\Microsoft.XboxSpeechToTextOverlay_1.97.17002.0_x… 1.97.17002.0&lt;br /&gt;
Phone Link                                          MSIX\Microsoft.YourPhone_1.25102.64.0_x64__8wekyb3d8b… 1.25102.64.0&lt;br /&gt;
Windows Media Player                                MSIX\Microsoft.ZuneMusic_11.2510.7.0_x64__8wekyb3d8bb… 11.2510.7.0&lt;br /&gt;
Movies &amp;amp; TV                                         MSIX\Microsoft.ZuneVideo_10.25101.10031.0_x64__8wekyb… 10.25101.10031.0&lt;br /&gt;
Quick Assist                                        MSIX\MicrosoftCorporationII.QuickAssist_2.0.29.0_x64_… 2.0.29.0&lt;br /&gt;
Windows Subsystem for Linux                         MSIX\MicrosoftCorporationII.WindowsSubsystemForLinux_… 2.5.9.0&lt;br /&gt;
Windows Web Experience Pack                         MSIX\MicrosoftWindows.Client.WebExperience_525.31002.… 525.31002.150.0&lt;br /&gt;
Cross Device Experience Host                        MSIX\MicrosoftWindows.CrossDevice_1.25102.46.0_x64__c… 1.25102.46.0&lt;br /&gt;
Notepad++                                           MSIX\NotepadPlusPlus_1.0.0.0_neutral__2247w0b46hfww    1.0.0.0&lt;br /&gt;
WinMerge                                            MSIX\WinMerge_1.0.7.0_neutral__83g614hpn1ttr           1.0.7.0&lt;br /&gt;
Local AI Manager for Microsoft 365                  MSIX\aimgr_0.20.29.0_x64__8wekyb3d8bbwe                0.20.29.0&lt;br /&gt;
Slack                                               SlackTechnologies.Slack                                4.47.59.0        4.47.65   winget&lt;br /&gt;
Mail and Calendar                                   MSIX\microsoft.windowscommunicationsapps_16005.14326.… 16005.14326.223…&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample winget ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name                                                Id                                                     Version          Available Source&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
PS C:\&amp;gt; winget list | findstr &amp;quot;winget&amp;quot;&lt;br /&gt;
7-Zip 25.01 (x64)                                   7zip.7zip                                              25.01                      winget&lt;br /&gt;
Beyond Compare 4.4.7                                ScooterSoftware.BeyondCompare.4                        4.4.7.28397                winget&lt;br /&gt;
Docker Desktop                                      Docker.DockerDesktop                                   4.54.0                     winget&lt;br /&gt;
Greenshot 1.3.301                                   Greenshot.Greenshot                                    1.3.301          1.3.304   winget&lt;br /&gt;
HWiNFO® 64                                          REALiX.HWiNFO                                          8.34                       winget&lt;br /&gt;
IrfanView 4.73 (64-bit)                             IrfanSkiljan.IrfanView                                 4.73                       winget&lt;br /&gt;
Mozilla Firefox ESR (x64 en-US)                     Mozilla.Firefox.ESR                                    140.6.0                    winget&lt;br /&gt;
Mozilla Firefox ESR (x64 en-US)                     Mozilla.Firefox.ESR                                    140.5.0                    winget&lt;br /&gt;
Notepad++ (64-bit x64)                              Notepad++.Notepad++                                    8.8.9                      winget&lt;br /&gt;
Microsoft 365 Apps for enterprise - en-us           Microsoft.Office                                       16.0.19328.20266           winget&lt;br /&gt;
Microsoft OneDrive                                  Microsoft.OneDrive                                     25.216.1104.0002           winget&lt;br /&gt;
OpenSSL 3.6.0 (64-bit)                              ShiningLight.OpenSSL.Dev                               3.6.0                      winget&lt;br /&gt;
VLC media player                                    VideoLAN.VLC                                           3.0.22                     winget&lt;br /&gt;
WinMerge x64                                        WinMerge.WinMerge                                      2.16.52.2                  winget&lt;br /&gt;
Webex                                               Cisco.Webex                                            45.12.0.33709              winget&lt;br /&gt;
Strawberry Perl (64-bit)                            StrawberryPerl.StrawberryPerl                          5.42.0.1                   winget&lt;br /&gt;
Synergy (64-bit)                                    Symless.Synergy                                        1.14.6           3.2.1     winget&lt;br /&gt;
Paint.NET                                           dotPDN.PaintDotNet                                     5.1.11                     winget&lt;br /&gt;
Google Drive                                        Google.GoogleDrive                                     117.0.0.0                  winget&lt;br /&gt;
YubiKey Manager CLI                                 Yubico.YubiKeyManagerCLI                               5.8.0.0                    winget&lt;br /&gt;
Zoom Workplace (64-bit)                             Zoom.Zoom                                              6.6.23272                  winget&lt;br /&gt;
Windows PC Health Check                             Microsoft.WindowsPCHealthCheck                         4.0.2410.23001             winget&lt;br /&gt;
PowerShell 7-x64                                    Microsoft.PowerShell                                   7.5.4.0                    winget&lt;br /&gt;
PowerShell 7.5.3.0-x64                              Microsoft.PowerShell                                   7.5.3.0                    winget&lt;br /&gt;
Microsoft Visual Studio Code                        Microsoft.VisualStudioCode                             1.107.0                    winget&lt;br /&gt;
OpenHashTab                                         namazso.OpenHashTab                                    3.1.1                      winget&lt;br /&gt;
Google Chrome                                       Google.Chrome.EXE                                      143.0.7499.41              winget&lt;br /&gt;
Microsoft Edge                                      Microsoft.Edge                                         143.0.3650.80              winget&lt;br /&gt;
Steam                                               Valve.Steam                                            2.10.91.91                 winget&lt;br /&gt;
Dashboard                                           SanDisk.Dashboard                                      5.1.2.2                    winget&lt;br /&gt;
Windhawk v1.7.3                                     RamenSoftware.Windhawk                                 1.7.3                      winget&lt;br /&gt;
Microsoft Visual C++ v14 Redistributable (x86) - 1… Microsoft.VCRedist.2015+.x86                           14.50.35719.0              winget&lt;br /&gt;
Microsoft Windows Desktop Runtime - 8.0.22 (x86)    Microsoft.DotNet.DesktopRuntime.8                      8.0.22                     winget&lt;br /&gt;
Microsoft Purview Information Protection            Microsoft.PurviewInformationProtection                 3.1.310.0                  winget&lt;br /&gt;
Microsoft Visual C++ v14 Redistributable (x64) - 1… Microsoft.VCRedist.2015+.x64                           14.50.35719.0              winget&lt;br /&gt;
Microsoft .NET Runtime - 8.0.22 (x64)               Microsoft.DotNet.Runtime.8                             8.0.22                     winget&lt;br /&gt;
Microsoft Windows Desktop Runtime - 6.0.36 (x86)    Microsoft.DotNet.DesktopRuntime.6                      6.0.36                     winget&lt;br /&gt;
Signal 7.82.0                                       OpenWhisperSystems.Signal                              7.82.0                     winget&lt;br /&gt;
MongoDB Compass                                     MongoDB.Compass.Full                                   1.47.1           1.48.2.0  winget&lt;br /&gt;
Ubuntu 24.04.1 LTS                                  Canonical.Ubuntu.2404                                  2404.1.26.0                winget&lt;br /&gt;
Kali Linux                                          OffSec.KaliLinux                                       2025.3.0.0                 winget&lt;br /&gt;
Keeper® Password Manager                            KeeperSecurity.KeeperDesktop                           17.4.1.0                   winget&lt;br /&gt;
Microsoft Teams                                     Microsoft.Teams                                        25306.804.4102.…           winget&lt;br /&gt;
App Installer                                       Microsoft.AppInstaller                                 1.27.350.0                 winget&lt;br /&gt;
Microsoft.UI.Xaml.2.7                               Microsoft.UI.Xaml.2.7                                  7.2409.9001.0              winget&lt;br /&gt;
Microsoft.UI.Xaml.2.7                               Microsoft.UI.Xaml.2.7                                  7.2409.9001.0              winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                               Microsoft.UI.Xaml.2.8                                  8.2501.31001.0             winget&lt;br /&gt;
Microsoft.UI.Xaml.2.8                               Microsoft.UI.Xaml.2.8                                  8.2501.31001.0             winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Desktop Runtime Pack… Microsoft.VCLibs.Desktop.14                            14.0.33728.0               winget&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Desktop Runtime Pack… Microsoft.VCLibs.Desktop.14                            14.0.33728.0               winget&lt;br /&gt;
Windows Terminal                                    Microsoft.WindowsTerminal                              1.23.12811.0               winget&lt;br /&gt;
Slack                                               SlackTechnologies.Slack                                4.47.59.0        4.47.65   winget&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample winget ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name                                                Id                                                     Version          Available Source&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
PS C:\&amp;gt; winget list | findstr &amp;quot;msstore&amp;quot;&lt;br /&gt;
Audacity 3.7.6                                      XP8K0J757HHRDW                                         3.7.6                      msstore&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Sample NOT winget or msstore ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PS C:\&amp;gt; winget list | findstr -v &amp;quot;winget&amp;quot; | grep -v &amp;quot;msstore&amp;quot;&lt;br /&gt;
Name                                                Id                                                     Version          Available Source&lt;br /&gt;
---------------------------------------------------------------------------------------------------------------------------------------------&lt;br /&gt;
Armoury Crate Service                               ARP\Machine\X64\Armoury Crate Service                  6.3.6.0&lt;br /&gt;
Git                                                 ARP\Machine\X64\Git_is1                                2.52.0&lt;br /&gt;
Mozilla Maintenance Service                         ARP\Machine\X64\MozillaMaintenanceService              140.6.0&lt;br /&gt;
Luma Island                                         ARP\Machine\X64\Steam App 2408820                      Unknown&lt;br /&gt;
Vim 9.1 (x64)                                       ARP\Machine\X64\Vim 9.1                                9.1.1972&lt;br /&gt;
Microsoft Update Health Tools                       ARP\Machine\X64\{1FC1A6C2-576E-489A-9B4A-92D21F542136} 3.74.0.0&lt;br /&gt;
ROG Live Service                                    ARP\Machine\X64\{2D87BFB6-C184-4A59-9BBE-3E20CE797631} 3.3.12.0&lt;br /&gt;
Microsoft Defender for Endpoint plug-in for WSL     ARP\Machine\X64\{4BC7FC7C-21F9-4E26-9DBE-A6DEA45636FF} 1.25.825.2&lt;br /&gt;
Microsoft Teams Meeting Add-in for Microsoft Office ARP\Machine\X64\{A7AB73A3-CB10-4AA5-9D38-6AEFFBDE4C91} 1.25.28902&lt;br /&gt;
AURA lighting effect add-on x64                     ARP\Machine\X64\{C5A4A164-4428-4931-B728-96EEF0FA3C44} 0.0.49&lt;br /&gt;
GlobalProtect                                       ARP\Machine\X64\{D69F9E89-516A-4543-9DE1-A4BD75CE851C} 6.2.3&lt;br /&gt;
Windows Subsystem for Linux Update                  ARP\Machine\X64\{F8474A47-8B5D-4466-ACE3-78EAB3BF21A8} 5.10.102.1&lt;br /&gt;
Citrix Workspace 2402                               ARP\Machine\X86\CitrixOnlinePluginPackWeb              24.2.3001.9&lt;br /&gt;
GnuWin32: CoreUtils version 5.3.0                   ARP\Machine\X86\CoreUtils-5.3.0_is1                    5.3.0&lt;br /&gt;
FileZilla 3.69.5                                    ARP\Machine\X86\FileZilla Client                       3.69.5&lt;br /&gt;
GameSDK Service                                     ARP\Machine\X86\{021d69c3-d686-4a94-8fb5-fd1ee782fb14} 1.0.5.0&lt;br /&gt;
AURA lighting effect add-on                         ARP\Machine\X86\{1E2EA04B-FCA7-457E-B6F4-F33E1858E859} 0.0.49&lt;br /&gt;
Microsoft Intune Management Extension               ARP\Machine\X86\{262D9D60-DB70-49A1-9880-B5E140727909} 1.97.107.0&lt;br /&gt;
ASUS Framework Service                              ARP\Machine\X86\{339A6383-7862-46DA-8A9D-E84180EF9424} 4.2.4.7&lt;br /&gt;
Printer Installer Client                            ARP\Machine\X86\{A9DE0858-9DDD-4E1B-B041-C2AA90DCBF74} 25.0.0.1074&lt;br /&gt;
AURA Service                                        ARP\Machine\X86\{cabfa89d-a59c-47ac-8d18-2032a1f72f20} 3.08.59&lt;br /&gt;
Armoury Crate                                       MSIX\ASUSAmbientHAL64_1.0.0.3_neutral__ecvjzhf6c4w7r   1.0.0.3&lt;br /&gt;
Intel® Graphics Command Center                      MSIX\AppUp.IntelGraphicsExperience_1.100.5688.0_x64__… 1.100.5688.0&lt;br /&gt;
Intel® OptaneTM Memory and Storage Management       MSIX\AppUp.IntelOptaneMemoryandStorageManagement_18.1… 18.1.1042.0&lt;br /&gt;
Microsoft Clipchamp                                 MSIX\Clipchamp.Clipchamp_4.4.10420.0_x64__yxz26nhyzhs… 4.4.10420.0&lt;br /&gt;
AV1 Video Extension                                 MSIX\Microsoft.AV1VideoExtension_2.0.6.0_x64__8wekyb3… 2.0.6.0&lt;br /&gt;
AVC Encoder Video Extension                         MSIX\Microsoft.AVCEncoderVideoExtension_1.1.21.0_x64_… 1.1.21.0&lt;br /&gt;
Windows Application Compatibility Enhancements      MSIX\Microsoft.ApplicationCompatibilityEnhancements_1… 1.2511.9.0&lt;br /&gt;
News                                                MSIX\Microsoft.BingNews_4.55.62231.0_x64__8wekyb3d8bb… 4.55.62231.0&lt;br /&gt;
Microsoft Bing                                      MSIX\Microsoft.BingSearch_1.1.40.0_x64__8wekyb3d8bbwe  1.1.40.0&lt;br /&gt;
MSN Weather                                         MSIX\Microsoft.BingWeather_4.54.63029.0_x64__8wekyb3d… 4.54.63029.0&lt;br /&gt;
Company Portal                                      MSIX\Microsoft.CompanyPortal_11.2.1672.0_x64__8wekyb3… 11.2.1672.0&lt;br /&gt;
Copilot                                             MSIX\Microsoft.Copilot_1.25114.55.0_x64__8wekyb3d8bbwe 1.25114.55.0&lt;br /&gt;
Microsoft Edge Game Assist                          MSIX\Microsoft.Edge.GameAssist_1.0.3456.0_x64__8wekyb… 1.0.3456.0&lt;br /&gt;
Xbox                                                MSIX\Microsoft.GamingApp_2512.1001.34.0_x64__8wekyb3d… 2512.1001.34.0&lt;br /&gt;
Get Help                                            MSIX\Microsoft.GetHelp_10.2409.32612.0_x64__8wekyb3d8… 10.2409.32612.0&lt;br /&gt;
HEIF Image Extension                                MSIX\Microsoft.HEIFImageExtension_1.2.23.0_x64__8weky… 1.2.23.0&lt;br /&gt;
HEVC Video Extensions from Device Manufacturer      MSIX\Microsoft.HEVCVideoExtension_2.4.39.0_x64__8weky… 2.4.39.0&lt;br /&gt;
MPEG-2 Video Extension                              MSIX\Microsoft.MPEG2VideoExtension_1.2.13.0_x64__8wek… 1.2.13.0&lt;br /&gt;
Paint 3D                                            MSIX\Microsoft.MSPaint_6.1907.29027.0_x64__8wekyb3d8b… 6.1907.29027.0&lt;br /&gt;
3D Viewer                                           MSIX\Microsoft.Microsoft3DViewer_1.0.125.0_x64__8weky… 1.0.125.0&lt;br /&gt;
Microsoft Edge                                      MSIX\Microsoft.MicrosoftEdge.Stable_140.0.3485.94_neu… 140.0.3485.94&lt;br /&gt;
Microsoft 365 Copilot                               MSIX\Microsoft.MicrosoftOfficeHub_19.2512.39051.0_x64… 19.2512.39051.0&lt;br /&gt;
Solitaire &amp;amp; Casual Games                            MSIX\Microsoft.MicrosoftSolitaireCollection_4.24.1204… 4.24.12040.0&lt;br /&gt;
Microsoft Sticky Notes                              MSIX\Microsoft.MicrosoftStickyNotes_4.0.6104.0_x64__8… 4.0.6104.0&lt;br /&gt;
Mixed Reality Portal                                MSIX\Microsoft.MixedReality.Portal_2000.21051.1282.0_… 2000.21051.1282…&lt;br /&gt;
Microsoft .Net Native Framework Package 1.7         MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x… 1.7.27413.0&lt;br /&gt;
Microsoft .Net Native Framework Package 1.7         MSIX\Microsoft.NET.Native.Framework.1.7_1.7.27413.0_x… 1.7.27413.0&lt;br /&gt;
Microsoft .Net Native Framework Package 2.2         MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Framework Package 2.2         MSIX\Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x… 2.2.29512.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 1.7           MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x64… 1.7.27422.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 1.7           MSIX\Microsoft.NET.Native.Runtime.1.7_1.7.27422.0_x86… 1.7.27422.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 2.2           MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64… 2.2.28604.0&lt;br /&gt;
Microsoft .Net Native Runtime Package 2.2           MSIX\Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x86… 2.2.28604.0&lt;br /&gt;
Microsoft.Office.ActionsServer                      MSIX\Microsoft.Office.ActionsServer_16.0.19328.20266_… 16.0.19328.20266&lt;br /&gt;
OneNote for Windows 10                              MSIX\Microsoft.Office.OneNote_16.14326.22589.0_x64__8… 16.14326.22589.0&lt;br /&gt;
OfficePushNotificationsUtility                      MSIX\Microsoft.OfficePushNotificationUtility_16.0.193… 16.0.19328.20266&lt;br /&gt;
OneDrive                                            MSIX\Microsoft.OneDriveSync_25216.1104.2.0_neutral__8… 25216.1104.2.0&lt;br /&gt;
Outlook for Windows                                 MSIX\Microsoft.OutlookForWindows_1.2025.1121.100_x64_… 1.2025.1121.100&lt;br /&gt;
Paint                                               MSIX\Microsoft.Paint_11.2510.311.0_x64__8wekyb3d8bbwe  11.2510.311.0&lt;br /&gt;
Microsoft People                                    MSIX\Microsoft.People_10.2202.100.0_x64__8wekyb3d8bbwe 10.2202.100.0&lt;br /&gt;
Power Automate                                      MSIX\Microsoft.PowerAutomateDesktop_1.0.2046.0_x64__8… 1.0.2046.0&lt;br /&gt;
Raw Image Extension                                 MSIX\Microsoft.RawImageExtension_2.5.7.0_x64__8wekyb3… 2.5.7.0&lt;br /&gt;
Snipping Tool                                       MSIX\Microsoft.ScreenSketch_11.2510.31.0_x64__8wekyb3… 11.2510.31.0&lt;br /&gt;
Windows Security                                    MSIX\Microsoft.SecHealthUI_1000.29429.1000.0_x64__8we… 1000.29429.1000…&lt;br /&gt;
Microsoft Engagement Framework                      MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0… 10.0.23012.0&lt;br /&gt;
Microsoft Engagement Framework                      MSIX\Microsoft.Services.Store.Engagement_10.0.23012.0… 10.0.23012.0&lt;br /&gt;
Skype                                               MSIX\Microsoft.SkypeApp_15.150.3125.0_x64__kzf8qxf38z… 15.150.3125.0&lt;br /&gt;
Start Experiences App                               MSIX\Microsoft.StartExperiencesApp_1.179.4.0_x64__8we… 1.179.4.0&lt;br /&gt;
Store Experience Host                               MSIX\Microsoft.StorePurchaseApp_22509.1401.1.0_x64__8… 22509.1401.1.0&lt;br /&gt;
Microsoft To Do                                     MSIX\Microsoft.Todos_0.148.3611.0_x64__8wekyb3d8bbwe   0.148.3611.0&lt;br /&gt;
Microsoft.UI.Xaml.2.0                               MSIX\Microsoft.UI.Xaml.2.0_2.1810.18004.0_x64__8wekyb… 2.1810.18004.0&lt;br /&gt;
Microsoft.UI.Xaml.2.3                               MSIX\Microsoft.UI.Xaml.2.3_2.32002.13001.0_x64__8weky… 2.32002.13001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.3                               MSIX\Microsoft.UI.Xaml.2.3_2.32002.13001.0_x86__8weky… 2.32002.13001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.4                               MSIX\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x64__8wekyb… 2.42007.9001.0&lt;br /&gt;
Microsoft.UI.Xaml.2.4                               MSIX\Microsoft.UI.Xaml.2.4_2.42007.9001.0_x86__8wekyb… 2.42007.9001.0&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtime Package       MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x64__8wekyb… 14.0.33519.0&lt;br /&gt;
Microsoft Visual C++ 2015 UWP Runtime Package       MSIX\Microsoft.VCLibs.140.00_14.0.33519.0_x86__8wekyb… 14.0.33519.0&lt;br /&gt;
VP9 Video Extensions                                MSIX\Microsoft.VP9VideoExtensions_1.2.12.0_x64__8weky… 1.2.12.0&lt;br /&gt;
Web Media Extensions                                MSIX\Microsoft.WebMediaExtensions_1.2.17.0_x64__8weky… 1.2.17.0&lt;br /&gt;
WebP Image Extension                                MSIX\Microsoft.WebpImageExtension_1.2.14.0_x64__8weky… 1.2.14.0&lt;br /&gt;
Widgets Platform Runtime                            MSIX\Microsoft.WidgetsPlatformRuntime_1.6.14.0_x64__8… 1.6.14.0&lt;br /&gt;
Microsoft Photos                                    MSIX\Microsoft.Windows.Photos_2025.11110.18001.0_x64_… 2025.11110.1800…&lt;br /&gt;
Windows Clock                                       MSIX\Microsoft.WindowsAlarms_11.2510.4.0_x64__8wekyb3… 11.2510.4.0&lt;br /&gt;
WindowsAppRuntime.1.4                               MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.4                               MSIX\Microsoft.WindowsAppRuntime.1.4_4000.1309.2056.0… 4000.1309.2056.0&lt;br /&gt;
WindowsAppRuntime.1.5                               MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.5                               MSIX\Microsoft.WindowsAppRuntime.1.5_5001.373.1736.0_… 5001.373.1736.0&lt;br /&gt;
WindowsAppRuntime.1.6                               MSIX\Microsoft.WindowsAppRuntime.1.6_6000.519.329.0_x… 6000.519.329.0&lt;br /&gt;
WindowsAppRuntime.1.6                               MSIX\Microsoft.WindowsAppRuntime.1.6_6000.519.329.0_x… 6000.519.329.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.652.1806.0_… 7000.652.1806.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.676.1651.0_… 7000.676.1651.0&lt;br /&gt;
WindowsAppRuntime.1.7                               MSIX\Microsoft.WindowsAppRuntime.1.7_7000.676.1651.0_… 7000.676.1651.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.642.119.0_x… 8000.642.119.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.675.1142.0_… 8000.675.1142.0&lt;br /&gt;
WindowsAppRuntime.1.8                               MSIX\Microsoft.WindowsAppRuntime.1.8_8000.675.1142.0_… 8000.675.1142.0&lt;br /&gt;
Windows Calculator                                  MSIX\Microsoft.WindowsCalculator_11.2508.4.0_x64__8we… 11.2508.4.0&lt;br /&gt;
Windows Camera                                      MSIX\Microsoft.WindowsCamera_2025.2510.2.0_x64__8weky… 2025.2510.2.0&lt;br /&gt;
Feedback Hub                                        MSIX\Microsoft.WindowsFeedbackHub_1.2510.14102.0_x64_… 1.2510.14102.0&lt;br /&gt;
Windows Maps                                        MSIX\Microsoft.WindowsMaps_1.0.65.0_x64__8wekyb3d8bbwe 1.0.65.0&lt;br /&gt;
Windows Notepad                                     MSIX\Microsoft.WindowsNotepad_11.2508.38.0_x64__8weky… 11.2508.38.0&lt;br /&gt;
Windows Sound Recorder                              MSIX\Microsoft.WindowsSoundRecorder_1.1.47.0_x64__8we… 1.1.47.0&lt;br /&gt;
Microsoft Store                                     MSIX\Microsoft.WindowsStore_22510.1401.4.0_x64__8weky… 22510.1401.4.0&lt;br /&gt;
Xbox TCUI                                           MSIX\Microsoft.Xbox.TCUI_1.24.10001.0_x64__8wekyb3d8b… 1.24.10001.0&lt;br /&gt;
Xbox Console Companion                              MSIX\Microsoft.XboxApp_48.104.4001.0_x64__8wekyb3d8bb… 48.104.4001.0&lt;br /&gt;
Xbox Game Bar Plugin                                MSIX\Microsoft.XboxGameOverlay_1.54.4001.0_x64__8weky… 1.54.4001.0&lt;br /&gt;
Game Bar                                            MSIX\Microsoft.XboxGamingOverlay_7.325.11061.0_x64__8… 7.325.11061.0&lt;br /&gt;
Xbox Identity Provider                              MSIX\Microsoft.XboxIdentityProvider_12.130.16001.0_x6… 12.130.16001.0&lt;br /&gt;
Game Speech Window                                  MSIX\Microsoft.XboxSpeechToTextOverlay_1.97.17002.0_x… 1.97.17002.0&lt;br /&gt;
Phone Link                                          MSIX\Microsoft.YourPhone_1.25102.64.0_x64__8wekyb3d8b… 1.25102.64.0&lt;br /&gt;
Windows Media Player                                MSIX\Microsoft.ZuneMusic_11.2510.7.0_x64__8wekyb3d8bb… 11.2510.7.0&lt;br /&gt;
Movies &amp;amp; TV                                         MSIX\Microsoft.ZuneVideo_10.25101.10031.0_x64__8wekyb… 10.25101.10031.0&lt;br /&gt;
Quick Assist                                        MSIX\MicrosoftCorporationII.QuickAssist_2.0.29.0_x64_… 2.0.29.0&lt;br /&gt;
Windows Subsystem for Linux                         MSIX\MicrosoftCorporationII.WindowsSubsystemForLinux_… 2.5.9.0&lt;br /&gt;
Windows Web Experience Pack                         MSIX\MicrosoftWindows.Client.WebExperience_525.31002.… 525.31002.150.0&lt;br /&gt;
Cross Device Experience Host                        MSIX\MicrosoftWindows.CrossDevice_1.25102.46.0_x64__c… 1.25102.46.0&lt;br /&gt;
Notepad++                                           MSIX\NotepadPlusPlus_1.0.0.0_neutral__2247w0b46hfww    1.0.0.0&lt;br /&gt;
WinMerge                                            MSIX\WinMerge_1.0.7.0_neutral__83g614hpn1ttr           1.0.7.0&lt;br /&gt;
Local AI Manager for Microsoft 365                  MSIX\aimgr_0.20.29.0_x64__8wekyb3d8bbwe                0.20.29.0&lt;br /&gt;
Mail and Calendar                                   MSIX\microsoft.windowscommunicationsapps_16005.14326.… 16005.14326.223…&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== keywords ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Windows Package Management]]&lt;br /&gt;
[[Category:Windows Command Line Package Management]]&lt;/div&gt;</summary>
		<author><name>Kenneth</name></author>
	</entry>
</feed>