--- title: "Windows Deployment (Server 2025)" slug: "windows-deployment-server-2025" updated: 2026-07-07T15:29:51Z published: 2026-07-07T15:29:51Z canonical: "help.claritysecurity.com/windows-deployment-server-2025" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.claritysecurity.com/llms.txt > Use this file to discover all available pages before exploring further. # Windows Deployment (Server 2025) To deploy Clarity Connect on Windows Server 2025, you will use the [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/about). This process requires WSL2 so that your Windows system can run the linux kernel required for running linux based containers. ## Before you begin > [!NOTE] > **Prerequisites** > > **Operating System**: Windows Server 2025 (bare metal or virtualized; if virtualized, nested virtualization must be enabled) > > **Hardware**: Ensure virtualization is enabled in the BIOS. > > **Permissions**: You will need the ability to run commands as Admin in Powershell Please read above for considerations before you begin this process. ## Installation Instructions ### Step 1: Install Windows Subsystem for Linux (WSL) To install WSL, you need to run the following command using an Administrator Powershell : [https://learn.microsoft.com/en-us/windows/wsl/install](https://learn.microsoft.com/en-us/windows/wsl/install) ```powershell wsl --install ``` ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-6OGHTQS3.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) ### Step 2: Reboot your System Reboot the Windows system to complete the WSL install. ### Step 3: Install WSL Ubuntu Distro Next we need to choose a distribution for WSL to use for running Docker. Our suggestion, and the following instructions use **Ubuntu** as this option. Run the following command to install the Ubuntu distribution (**see note about user creation below**). [https://learn.microsoft.com/en-us/windows/wsl/install#change-the-default-linux-distribution-installed](https://learn.microsoft.com/en-us/windows/wsl/install#change-the-default-linux-distribution-installed) ```powershell wsl --install -d Ubuntu ``` ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-UKQB2UT5.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-KN2M4MVF.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) > [!WARNING] > Ubuntu User Creation > > You may be required to create a user for Ubuntu install (see image above). By default it will suggest the username of your current logged in user. > > Make sure to securely store the username and password of the user you create. This will be called the **Ubuntu Username** below, if you create a different name than your logged in Windows User, please use the correct one in the steps below. (For ease of setup, I would make these Usernames the same) ### Step 4: Check if `systemd` is enabled on boot After the last step, you will now be logged into the Ubuntu OS running on WSL Next we want to verify this Ubuntu install has `systemd` enabled correctly, this will allow the docker service to start automatically when the system reboots. ```powershell cat /etc/wsl.conf ``` The file should appear as below (additional user info beneath is fine (see image): ```ini [boot] systemd=true ``` ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-QFUHCKO1.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) ### Step 5: Install docker in Ubuntu Use the Docker easy to use install method to install Docker and Docker Compose (otherwise you can install using this method: [https://docs.docker.com/engine/install/ubuntu/](https://docs.docker.com/engine/install/ubuntu/))_: [https://get.docker.com/](https://get.docker.com/) [https://github.com/docker/docker-install/](https://github.com/docker/docker-install/) ```bash sudo apt-get update && sudo apt-get install -y curl curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh sudo service docker start ``` This warning below is expected, do not abort the install process. ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-UNXQLRXK.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) Run the following commands to verify docker and docker compose are installed: ```bash # this will display an unknown command error if its not installed properly docker --version # this will display an unknown command error if its not installed properly docker compose version ``` ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-V9MGR7BQ.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) ### Step 6: Verify Docker is configured to run at boot The following commands setup docker to run at boot for the Ubuntu OS, as well as grant your Ubuntu User the ability to run docker commands. ```bash # Set Docker to start automatically on boot sudo systemctl enable docker # Start the Docker service now sudo systemctl start docker # Add your user to the docker group (replace {Ubuntu Username} with your actual username from Step 3) sudo usermod -aG docker {Ubuntu Username} ``` ### Step 7: Retrieve your Clarity Connect Configuration file See the following article for where to get/create your Clarity Connect file (docker-compose.yml): [Configuring Clarity Connect (On-Premises)](/home/docs/configure-clarity-connect#step-2-click-on-applications-then-clarity-connect) Place your downloaded `docker-compose.yml` file into a permanent directory (e.g., `C:\ClarityConnect\`). > [!CAUTION] > Note about your docker-compose file > > Note: Your docker-compose.yml file contains sensitive data that allows ClarityConnect to make secure api calls. Do not share this file with anyone outside of your organization. ### Step 8: Attempt to start the containers Navigate in the Ubuntu shell to where you placed the docker-compose.yml file Note that `C:\ClarityConnect\` would be `/mnt/c/ClarityConnect/` ```bash cd /mnt/c/ClarityConnect/ ``` Now you can run the following command, to attempt to boot the containers: ```bash # Use the local docker-compose.yml file, and run the containers # -d flag means to run detached, your terminal window wont be required to stay open for containers to run # By default this command looks in the current directory for a file named docker-compose.yml docker compose up -d ``` Docker downloading the containers for the first time: ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-EVZIPXYR.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) Containers created successfully: ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-330SXLJ5.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) ## Windows Scheduled Task Next we need to setup a Scheduled Task in Windows so that when the computer (Windows OS) reboots for maintenance, updates, etc. the Clarity Connect service starts on its own after the reboot. You may need to type `exit` to get out of the Ubuntu Shell, this should return you to the powershell command line. ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-E4588Q6U.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) ### Powershell Method > [!WARNING] > Replace Usernames > > You must replace the {DEVICE_OR_DOMAIN-NAME\WINDOWS USER NAME} in the following powershell script for it to work properly ```powershell # This series of commands will create a Scheduled Task, to run wsl.exe, and add the arguments # Make sure to replace the {variables} with the approrpiate values. $cred = Get-Credential -UserName "{DEVICE_OR_DOMAIN-NAME\WINDOWS USER NAME}" -Message "Enter password" $action = New-ScheduledTaskAction -Execute "wsl.exe" -Argument "-d Ubuntu --exec dbus-launch true" $trigger = New-ScheduledTaskTrigger -AtStartup Register-ScheduledTask -TaskName "Start-WSL-Docker" -Action $action -Trigger $trigger `    -User $cred.UserName -Password $cred.GetNetworkCredential().Password -RunLevel Highest ``` The above powershell command will prompt you for a password for your Windows User: ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-JTBF91HT.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) ### Task Scheduler Interface Make sure all values (especially for Usernames), match your host system (not the test system used to created this article). You will be prompted for your Windows password after choosing the user in **Security Options**. #### General: ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-MCGWVXQI.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) #### Triggers: ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-F7ANMYNI.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) #### Actions: The program listed just shows **wsl.exe**, but the actual path is `C:\Windows\System32\wsl.exe` Arguments: `-d Ubuntu --exec dbus-launch true ` ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-SNGOSQVP.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-5FXZ50NO.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) ### Test Reboots You should verify that the service is properly spinning up and communicating with you Clarity tenant after a full reboot cycle and when you shutdown, and reboot the system (you should not be required to log in the the Task Scheduler setup correctly). Visit the same page where you created and downloaded your Clarity Connect configuration file (`docker-compose.yml`) and you can use the **Last Sync** column to verify if the system is up and running without needing to log into the system. [https://YOUR_TENANT.claritysecurity.io/application/on-prem-setup](https://YOUR_TENANT.claritysecurity.io/application/on-prem-setup) > [!NOTE] > Last Sync Timer > > Clarity Connect only checks in roughly every 60 seconds, this means you may need to refresh the page a few times. Also keep in mind, it may take a few minutes for your Clarity Connect host to boot up, run the scheduled task, and finish spinning up the containers (at which point it may take an additional minute to check in). > > Depending on your host system, its good to **wait at least 5 min** to verify if the containers spun up on their own, if after 5-10 minutes the **Last Sync** timestamp still has not updated, you may want to log in and test if the scheduled task is working as expected. ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/Screenshot 2026-06-23 at 12.44.33.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) ## FAQ - Frequently Asked Questions ****How do I get back into the WSL Ubuntu shell?**** Simply type `wsl` into powershell. After reboots (with the Task enabled), when you type wsl, you should immediately launch into the terminal for the Ubuntu instance, if there is a delay, this means Ubuntu is starting up, and did not launch properly on boot. ```powershell # Launch the WSL Ubuntu VM and open the shell (command line). This is automated on boot in the later steps. wsl # Shutdown the WSL VM wsl --shutdown ``` ****How do I get out of the WSL or Ubuntu shell (command line)?**** Just type `exit`, and you will be dropped back into Powershell. (see above question for how to then shutdown the WSL VM. ![](https://cdn.document360.io/2d020999-1823-4d4d-b6d2-4b52fb4a9617/Images/Documentation/image-V1P6G9VF.png?sv=2026-02-06&spr=https&st=2026-11-12T16%3A44%3A34Z&se=2026-11-12T17%3A44%3A34Z&sr=c&sp=r&sig=h%2FVr3RNpFXsCHzfJBOHEwhtPJ7tPhNCaBgxPItWnaDo%3D) ## **Need help?** If you have any problems, contact your customer success team. You can also get in touch with our general support [via email](mailto:support@claritysecurity.io), open a [support ticket](https://support.claritysecurity.com/home). Our general support team is available Monday - Friday from 8:00 AM - 6:30 PM CST. Clarity Connect is a virtual appliance which establishes a connection between on-premise applications and a Clarity tenant.