This document outlines the process for deploying Cisco Secure Endpoint or Secure Client using Microsoft Intune. The document walks through the steps on how to create a Microsoft Intune supported apps from the Secure Endpoint/Secure Client installers and then use that for deployment using the Microsoft Intune admin center. Specifically, the process includes packaging the Cisco Secure Endpoint installer as a Win32 application using the Intune Win32 Content Prep Tool, followed by configuring and deploying the app through Intune. We have utilized the official Microsoft Prep Tool for creating the app.
Login to your respective Secure Endpoint Portal, depending on the region: https://apps.security.cisco.com/overview


The Win32 Content Prep Tool is a utility provided by Microsoft Intune to help IT administrators prepare Win32 applications (i.e., traditional Windows desktop apps) for deployment through Microsoft Intune. The tool converts Win32 application installers (like .exe, .msi, and related files) into a .intunewin file format, which is required for deploying these apps via Intune.
To prepare the Intune file, follow these step:

Perform the following steps:
These two actions are demonstrated in the screenshot:



%windir%\SysNative\WindowsPowershell\v1.0\powershell.exe -noprofile -executionpolicy Bypass -file .\Install-CiscoSecureEndpoint.ps1βPlease note that the code presented here serves as an example and any code can be used as an install command for this installer


On the Detection Rules tab, the Rules format drop-down menu provides two options: Manually configure detection rules and Use a custom detection script. Either option can be selected based on the deployment requirements.
When choosing Manually configure detection rules, you can define a rule type such as MSI, File, or Registry to detect the presence of the application. In this document, the alternative option, Use a custom detection script, has been selected.
A PowerShell script named Confirm-CSEInstall.ps1 is used to verify successful installation of Cisco Secure Endpoint. It is listed at the bottom of this document.






This completes the process to deploy Cisco Secure Endpoint using Intune.
Caution: This install script must be combined with the installer using Intune Converter and the exact name of the PS script referenced in the command line mentioned under Step3 in this guide and placed in the Intune under:
Add App --- > Program --- > Install Command
Note: Scripts below are just working samples for demonstrations used in lab environment to create this guide. You can use them as-is after proper testing or modify as you wish.
[CmdletBinding()]
param ()
$cse_exe = <Secure Endpoint Installer>
$version = <Secure Endpoint Version>
if ($PSCommandPath -eq $null) {
function GetPSCommandPath() {
return $MyInvocation.PSCommandPath;
}
$PSCommandPath = GetPSCommandPath
}
$script = [pscustomobject]@{
"Path" = Split-Path $PSCommandPath -Parent
"Name" = Split-Path $PSCommandPath -Leaf
}
Set-Location -Path $script.Path
$cse_installer = [IO.Path]::Combine($script.Path, $cse_exe)
$csc_installer_args = "/R /S"
<#
Cannot use -wait for 'Cisco Secure Endpoint' and therefore cannot get the exit code to return.
Using -wait, returns varied results, instead use Get-Process and while loop to wait for installation to complete.
#>
$install = Start-Process -WorkingDirectory "$($script.Path)" -FilePath "${cse_installer}" -ArgumentList "${csc_installer_args}" -PassThru -NoNewWindow
while (Get-Process "$($cse_exe -replace '.exe', '')" -ErrorAction SilentlyContinue)
{
Start-Sleep -Seconds 10
}
$exeName = <Your_XDR_Deployment.exe>
$exePath = Join-Path -Path $PSScriptRoot -ChildPath $exeName
if (-not (Test-Path $exePath)) {
Write-Error "Executable not found: $exePath"
exit 1
}
# Use silent mode β the most commonly documented switch for Cisco XDR / Secure Client installers
$arguments = "-q" # or try "--quiet" if -q fails in your specific build
try {
$process = Start-Process -FilePath $exePath -ArgumentList $arguments -NoNewWindow -Wait -PassThru
if ($process.ExitCode -eq 0) {
Write-Output "Cisco XDR installation completed successfully (exit code 0)."
exit 0
} else {
Write-Error "Installation failed with exit code: $($process.ExitCode)"
exit $process.ExitCode
}
}
catch {
Write-Error "Exception during installation: $_"
exit 1
}
Tip: This is optional, you can always use Manually configured detection rules in Intune Management Portal.
[CmdletBinding()]
param ()
$version = <Secure Endpoint Version>
<#
https://learn.microsoft.com/en-us/intune/intune-service/apps/apps-win32-add#step-4-detection-rules
The app gets detected when the script both returns a 0 value exit code and writes a string value to STDOUT
The Intune agent checks the results from the script. It reads the values written by the script to the STDOUT stream,
the standard error (STDERR) stream, and the exit code. If the script exits with a nonzero value, the script fails and
the application detection status isn't installed. If the exit code is zero and STDOUT has data, the application
detection status is installed.
#>
$cse = Get-ItemProperty HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* -ErrorAction SilentlyContinue | Where-Object { $_ -like "*Immunet Protect*" } | Where-Object { $_.DisplayName -like "*Cisco Secure Endpoint*" }
if ($cse | Where-Object { [System.Version] $_.DisplayVersion -ge [System.Version] "${version}" })
{
Write-Host "Installed"
exit 0
}
exit 1
Note: Scripts above are meant only for educational purposes and are not supported by Cisco TAC, each environment could be different with different rules or policies and itβs necessary to conduct proper testing. Troubleshooting 3rd party deployment tools will be treated as best effort and should start with reviewing Intune logs both in the portal or on the managed station.
| Revision | Publish Date | Comments |
|---|---|---|
1.0 |
12-Aug-2025
|
Initial Release |