本文档概述了使用Microsoft Intune部署思科安全终端或安全客户端的过程。本文档介绍如何从安全终端/安全客户端安装程序创建Microsoft Intune支持的应用,然后将其用于使用Microsoft Intune管理中心的部署。具体来说,该过程包括使用Intune Win32内容准备工具将思科安全终端安装程序打包为Win32应用,然后通过Intune配置和部署应用。我们使用官方Microsoft准备工具创建应用。
根据地区登录您的安全终端门户:https://apps.security.cisco.com/overview


Win32内容准备工具是Microsoft Intune提供的实用程序,可帮助IT管理员准备Win32应用程序(即传统Windows桌面应用程序),以便通过Microsoft Intune进行部署。该工具将Win32应用程序安装程序(如.exe、.msi和相关文件)转换为.intunewin文件格式,这是通过Intune部署这些应用程序所必需的。
要准备Intune文件,请执行以下步骤:

请执行下列步骤:
屏幕截图显示了以下两个操作:



%windir%\SysNative\WindowsPowershell\v1.0\powershell.exe -noprofile -executionpolicy Bypass -file .\Install-CiscoSecureEndpoint.ps1请注意,此处显示的代码用作示例,任何代码都可以用作此安装程序的安装命令


在Detection Rules选项卡上,Rules format下拉菜单提供两个选项:手动配置检测规则和使用自定义检测脚本。可以根据部署要求选择任一选项。
选择Manually configure detection rules时,可以定义规则类型(例如MSI、File或Registry)以检测应用的存在。在本文档中,已选择备用选项Use a custom detection script。
名为Confirm-CSEInstall.ps1的PowerShell脚本用于验证思科安全终端的安装是否成功。该文档列于文档底部。






使用Intune部署思科安全终端的流程由此完成。
警告:此安装脚本必须与使用Intune转换器的安装程序结合使用,并且必须提供在本指南的Step3下所提到的命令行中引用的PS脚本的确切名称,并放置在Intune中的以下位置:
添加应用(Add App)— >程序(Program)— >安装命令(Install Command)
注意:下面的脚本只是用于实验室环境中创建本指南的演示的工作示例。经过适当的测试后,您可以按原样使用它们,也可以根据需要进行修改。
[CmdletBinding()]
param ()
$cse_exe =
$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 =
$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
}
提示:这是可选的,您可以始终在Intune管理门户中使用手动配置的检测规则。
[CmdletBinding()]
param ()
$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
注意:上述脚本仅用于教育目的,不受Cisco TAC支持,每个环境可能因不同的规则或策略而异,有必要执行适当的测试。排除第三方部署工具故障将被视为最大努力,首先应查看门户或托管站上的Intune日志。
| 版本 | 发布日期 | 备注 |
|---|---|---|
1.0 |
12-Aug-2025
|
初始版本 |