> For the complete documentation index, see [llms.txt](https://docs.prismacloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.prismacloud.io/admin-guide/32/install/deploy-defender/host/windows-host.md).

# Windows Defender

Prisma Cloud can secure Windows containers running on Windows Server 2016 and Windows Server 2019 hosts. A single instance of Prisma Cloud Console can simultaneously protect both Windows and Linux containers on both Windows and Linux hosts. Prisma Cloud’s Intelligence Stream includes vulnerability data from Microsoft, so as new CVEs are reported, Prisma Cloud can detect them in your Windows images.

The architecture for Defender on Windows is different than Defender on Linux. The Defender runs as a Docker container on Linux, and as a Windows service on Windows. On Linux, it is implemented as runtime protection in the userspace, and on Windows it is implemented using Windows drivers. This is because there is no concept of capabilities in Windows Docker containers like there is on Linux. Defender on Windows runs as service so it can acquire the permissions it needs to secure the containers on your host. When you deploy the Defender, it appears as a service. The Defender type "Container Defender - Windows" means that Defender is capable of securing your containers, not that it’s deployed as a container.

To deploy Defender on Windows, you’ll copy a PowerShell script from the Prisma Cloud Console and run it on the host where you want to install Defender.

## Feature matrix

The following table compares Prisma Cloud’s Windows Server feature support to Linux feature support:

| Platform                                                                     | Vulnerability | Compliance | Runtime - Processes | Runtime - Network | Runtime - Filesystem | Firewalls - CNNS | Firewalls - WAAS |
| ---------------------------------------------------------------------------- | ------------- | ---------- | ------------------- | ----------------- | -------------------- | ---------------- | ---------------- |
| Linux                                                                        | Yes           | Yes        | Yes                 | Yes               | Yes                  | Yes              | Yes              |
| Windows Server 2016                                                          | Yes           | Yes        | No                  | No                | No                   | No               | Yes              |
| Windows Server 2019 (Host Defender)                                          | Yes           | Yes        | No                  | No                | No                   | No               | Yes              |
| Windows Server 2019 (Container Defender) with Docker runtime                 | Yes           | Yes        | Yes                 | No                | No                   | No               | No               |
| Windows Server 2019 (Container Defender) with containerd runtime<sup>1</sup> | Yes           | Yes        | Yes                 | No                | No                   | No               | No               |
| Windows Server 2022 (Container Defender) with Docker runtime                 | Yes           | Yes        | Yes                 | No                | No                   | No               | No               |
| Windows Server 2022 (Container Defender) with containerd runtime<sup>1</sup> | Yes           | Yes        | Yes                 | No                | No                   | No               | No               |

<sup>1</sup>Supported on AKS only.

Windows Host Defenders support [Windows compliance checks for hosts](/admin-guide/32/compliance/windows.md). Only Windows Container Defenders for Windows based containers support [custom compliance checks](/admin-guide/32/compliance/custom-compliance-checks.md).

As a quick review, Prisma Cloud runtime defense builds a model of allowed activity for each container image during a learning period. After the learning period has completed, any violation of the model triggers an action as defined by your policy (alert, prevent, block).

As Prisma Cloud builds the model, any interactive tasks that are run are logged. These interactive tasks can be viewed in each model’s history tab. On Windows, Prisma Cloud can’t currently detect when interactive tasks are run with the *docker exec* command, although Prisma Cloud does correctly record interactive tasks run from a shell inside a container with the *docker run -it \<IMAGE> sh* command. No matter how the interactive task is run, however, the model will correctly allow a process if it’s in learning mode, and it will take action if the model is violated when in enforcement mode.

Windows Container Defenders scan both the containers and the hosts where they run for vulnerabilities.

## Deploying Defender on Windows with Docker runtime

Defenders are deployed with with a PowerShell 64-bit script, *defender.ps1*, which downloads the necessary files from Console. Defender is registered as a Windows service.

Run the Prisma Cloud Defender deployment PowerShell script from a Windows PowerShell 64-bit shell.

Prisma Cloud Windows container defenders are tested and supported for GKE Windows server containers.

After the install is completed, Prisma Cloud files can be found in the following locations:

* *C:\Program Files\Prisma Cloud\\*
* *C:\ProgramData\Prisma Cloud\\*

**Prerequisites:**

* Windows Server 2016 or Windows Server 2019. Prisma Cloud is not supported on Windows 10 or Hyper-V.
* Docker for Windows (1.12.2-cs2-ws-beta) or higher. For more information about installing Docker on Windows, see [Windows Containers on Windows Server](https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-server).

1. Log into Console
2. Go to **Manage > Defenders > Deploy**
3. Select **Single Defender**
4. In **Choose the Defender type**, select **Container Defender - Windows**
5. Copy the curl script and run it on your host to install Windows Defender

   If you install Windows locally on your laptop, the 'netsh' commands are not needed. They are only applicable to the GCE environment.

## Deploy Container Defender on Windows with containerd runtime

You can also deploy the Windows container defender to protect your containers running on **Azure Kubernetes Service (AKS)** Windows nodes with **containerd** runtime. By installing the Defender you will be able to view the running containers and images on the Radar and leverage Prisma Cloud Runtime Defense capabilities on the running containers.

**Prerequisites:**

* Make sure you are using Windows Server 2019 with containerd runtime.
* The nodes are part of an Azure Kubernetes Service (AKS) Windows Server node pool
* Learn more about [Using containerd with Windows Server node pools (preview)](https://docs.microsoft.com/en-us/azure/aks/windows-container-cli#optional-using-containerd-with-windows-server-node-pools-preview)

1. Log into Console.
2. Go to **Manage > Defenders > Deploy**
3. Select **Single Defender**
4. In **Choose the Defender type**, select **Container Defender - Windows**
5. Set the option for **Node is using containerd, not Docker** to **On**
6. Copy the curl script and run it on your host to install Windows Defender

   Twistcli can’t be used on Windows machines running containerd.

## Registry scanning

To scan Windows images in your registry, you must install at least one Windows Defender. Prisma Cloud automatically distributes the scan job across available Defenders. To scan registries that hold both Windows and Linux images, install at least one Linux Defender and one Windows Defender in your environment.

Registry scan settings can include a mix of both Defenders running on hosts with Docker Engine and containerd as scanners.

## Uninstalling Defender

You can uninstall Defender directly from the Console UI.

You can also manually uninstall Defender from the command line by running:

```
C:\Program Files\Twistlock\scripts\defender.ps1 -uninstall
```

Since Defender runs as a Windows service, decommissioning it will stop the service. Some remnant files might need to be deleted manually.

1. Go to **Manage > Defenders > Manage**.

   This page shows a list of Defenders deployed in your environment and connected to Console.
2. Click the **Decommission** button.

## Limitations

Be aware of the following limitations:

* Windows vulnerability scanning is limited to the following list of applications and packages.
  * Windows installation files (KB patches)
  * Packages of the following types
    * .NET
    * Java (JAR)
    * Ruby Gem
    * NodeJS
    * Python
    * NuGet

Any other application or binary installed or running on Windows will not be scanned. While scanning of packages for languages listed above is supported, note that scan does not support detecting the version of the installed language.

This limitation only applies to Windows vulnerability scanning and not to other supported operating systems.

* Windows Defenders support [Windows compliance checks for hosts](/admin-guide/32/compliance/windows.md) and [custom compliance checks](/admin-guide/32/compliance/custom-compliance-checks.md) only. Image and container compliance checks aren’t supported.
* Windows requires the host OS version to match the container OS version. If you want to run a container based on a newer Windows build, make sure you have an equivalent host build. Otherwise, you can use Hyper-V isolation to run older containers on new host builds. For more information, see [Windows containers version compatibility](https://docs.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility?tabs=windows-server-2022%2Cwindows-11-21H2).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.prismacloud.io/admin-guide/32/install/deploy-defender/host/windows-host.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
