用户设备的预身份验证设备检查表达式

Last published : Oct 14, 2026
重要提示:
端点分析旨在根据预设的合规性标准分析用户设备,但它不强制执行或验证最终用户设备的安全性。建议使用端点安全系统来保护设备免受本地管理员攻击。
NetScaler Gateway 在用户登录期间或会话期间的其他配置时间提供各种端点合规性检查,以帮助验证用户设备。只有通过这些检查的用户设备才允许建立 NetScaler Gateway 会话。
以下是您可以在 NetScaler Gateway 上配置的用户设备检查类型:
  • 反垃圾邮件
  • 防病毒
  • 文件策略
  • 互联网安全
  • 操作系统
  • 个人防火墙
  • 进程策略
  • 注册表策略
  • 服务策略
如果用户设备上的设备检查失败,则在后续检查通过之前(对于定期检查),不会建立新连接;但是,通过现有连接流动的流量会继续通过 NetScaler Gateway 进行隧道传输。
您可以使用配置实用程序来配置预身份验证策略或会话策略中的设备检查表达式,这些策略旨在对用户设备执行检查。

配置防病毒、防火墙、互联网安全或反垃圾邮件表达式

您可以在添加表达式对话框中配置防病毒、防火墙、互联网安全和反垃圾邮件策略的设置。每个策略的设置都相同:不同之处在于您选择的值。例如,如果您想检查用户设备是否安装了 Norton 防病毒软件版本 10 和 ZoneAlarm Pro,您可以在会话或预身份验证策略中创建两个表达式,分别指定每个应用程序的名称和版本号。
当您选择客户端安全作为表达式类型时,您可以配置以下内容:
  • 组件:客户端安全类型,例如防病毒、防火墙或注册表项。
  • 名称:应用程序、进程、文件、注册表项或操作系统的名称。
  • 限定符:表达式检查的组件版本或值。
  • 运算符:检查值是否存在或是否等于该值。
  • 值:用户设备上防病毒、防火墙、互联网安全或反垃圾邮件软件的应用程序版本。
  • 频率:运行身份验证后扫描的频率(以分钟为单位)。
  • 错误权重:当多个表达式具有不同的错误字符串时,分配给嵌套表达式中包含的每个错误消息的权重。该权重决定显示哪个错误消息。
  • 新鲜度:定义病毒定义的有效期。例如,您可以配置表达式,使病毒定义不超过三天。

将客户端设备检查策略添加到预身份验证或会话策略

  1. 在配置实用程序中,在导航窗格中,执行以下操作之一:
    1. 在配置实用程序中,在“配置”选项卡上,在导航窗格中,展开 NetScaler Gateway > 策略,然后单击 会话。
    2. 在配置实用程序中,在“配置”选项卡上的导航窗格中,展开 NetScaler Gateway > 策略 > 身份验证/授权,然后单击 预身份验证 EPA。
  2. 在详细信息窗格的“策略”选项卡上,单击 添加。
  3. 在“名称”中,键入策略的名称。
  4. 在“匹配任意表达式”旁边,单击“添加”。
  5. 在“添加表达式”对话框的“表达式类型”中,选择 客户端安全。
  6. 配置以下设置:
    1. 在“组件”中,选择要扫描的项目。
    2. 在“名称”中,键入应用程序的名称。
    3. 在“限定符”中,选择 版本。
    4. 在“运算符”中,选择值。
    5. 在“值”中,键入客户端设备检查字符串,单击 确定,单击 创建,然后单击 关闭。

配置服务策略

服务是在用户设备上静默运行的程序。创建会话或预身份验证策略时,可以创建一个表达式,以确保在建立会话时用户设备正在运行特定服务。

配置服务策略

  1. 在配置实用程序中,在导航窗格中,执行以下操作之一:
    1. 在配置实用程序中,在“配置”选项卡上的导航窗格中,展开 NetScaler Gateway > 策略,然后单击“会话”。
    2. 在配置实用程序中,在“配置”选项卡上的导航窗格中,展开 NetScaler Gateway > 策略 > 身份验证/授权,然后单击“预身份验证 EPA”。
  2. 在详细信息窗格的“策略”选项卡上,单击“添加”。
  3. 在“名称”中,键入策略的名称。
  4. 在“匹配任意表达式”旁边,单击“添加”。
  5. 在“添加表达式”对话框中,在“表达式类型”中,选择“客户端安全”。
  6. 配置以下设置:
    1. 在“组件”中,选择“服务”。
    2. 在“名称”中,键入服务的名称。
    3. 在“限定符”中,留空或选择“版本”。
    4. 根据您在“限定符”中的选择,执行以下操作之一:
      • 如果留空,请在“运算符”中选择 == 或 \!=
      • 如果您选择了“版本”,请在“运算符”中,在“值”中键入值,单击“确定”,然后单击“关闭”。
您可以在基于 Windows 的计算机上的以下位置查看所有可用服务及其状态的列表:
控制面板 > 管理 工具 > 服务
注意:
每个服务的服务名称与其列出的名称不同。通过查看 “属性”对话框来检查服务名称。

配置进程策略

创建会话或预身份验证策略时,您可以定义一个规则,要求所有用户设备在用户登录时运行特定进程。该进程可以是任何应用程序,包括自定义应用程序。
注意:Windows 计算机上运行的所有进程列表显示在 Windows 任务管理器的“进程”选项卡上。

配置进程策略

  1. 在配置实用程序中,在导航窗格中,执行以下操作之一:
    1. 在配置实用程序中,在“配置”选项卡上,在导航窗格中,展开 NetScaler Gateway \ > 策略,然后单击“会话”。
    2. 在配置实用程序中,在“配置”选项卡上,在导航窗格中,展开 NetScaler Gateway \> 策略 \ > 身份验证/授权,然后单击“预身份验证 EPA”。
  2. 在详细信息窗格中,在“策略”选项卡上,单击“添加”。
  3. 在“名称”中,键入策略的名称。
  4. 在“匹配任意表达式”旁边,单击“添加”。
  5. 在“添加表达式”对话框中,在“表达式类型”中,选择“客户端安全”。
  6. 配置以下设置:
    1. 在“组件”中,选择“进程”。
    2. 在“名称”中,键入应用程序的名称。
    3. 在“运算符”中,选择 EXISTS 或 NOTEXISTS,单击“确定”,然后单击“关闭”。
当您配置端点分析策略(预身份验证或后身份验证)以检查进程时,可以配置 MD5 校验和。
创建策略表达式时,可以将 MD5 校验和添加到要检查的进程中。例如,如果您正在检查 notepad.exe 是否在用户设备上运行,则表达式为: CLIENT.APPLICATION.PROCESS(notepad.exe\_md5\_388b8fbc36a8558587afc90fb23a3b00) EXISTS

配置操作系统策略

创建会话或预身份验证策略时,可以配置客户端设备检查字符串,以确定用户登录时用户设备是否正在运行特定的操作系统。您还可以配置表达式以检查特定的 Service Pack 或修补程序。
Windows 和 Macintosh 的值如下:
操作系统 值
macOS X macOS
Windows 8.1 系统 win8.1
Windows 8 系统 win8
视窗 7 win7
视窗 维斯塔 维斯塔
视窗 XP winxp
视窗服务器 2008 win2008
视窗服务器 2003 win2003
视窗 2000 服务器 win2000
Windows 64 位平台 win64

使用 GUI 配置操作系统策略

  1. 在导航窗格中,执行以下操作之一:
    1. 导航到 NetScaler Gateway > 策略,然后单击 会话。
    2. 导航到 NetScaler Gateway > 策略 > 预身份验证。
  2. 在详细信息窗格中,在 策略 选项卡上,单击 添加。
  3. 在 名称 中,键入策略的名称。
  4. 在 请求操作 中,选择现有操作或创建一个新操作。
  5. 单击 表达式编辑器。
  6. 在 选择表达式类型 中,选择 客户端安全。
  7. 配置以下设置:
    1. 在 组件 中,选择 操作系统。
    2. 在 名称 中,键入操作系统的名称。
    3. 在限定符中,执行以下操作之一:
      • 将字段留空
      • 选择 Service Pack
      • 选择 Hotfix
      • 选择 版本 (仅适用于 macOS)
    4. 根据您在步骤 7 中的选择,在“运算符”中,执行以下操作之一:
      • 如果“限定符”为空,在“运算符”中,选择 EQUAL (= =)、NOTEQUAL (\!=)、EXISTS 或 NOTEXISTS。
      • 如果您选择了 Service Pack 或 Hotfix,请选择运算符并在“值”中键入值。
  8. 单击 完成,然后单击 关闭。
如果您正在配置服务包,例如 client.os (winxp).sp,如果 值 字段中没有数字,NetScaler Gateway 将返回错误消息,因为表达式无效。
如果操作系统存在服务包,例如 Service Pack 3 和 Service Pack 4,您可以仅为 Service Pack 4 配置检查,因为 Service Pack 4 的存在自动表明以前的服务包也存在。

配置注册表策略

当您创建会话或预身份验证策略时,您可以检查用户设备上注册表项的存在和值。只有当特定条目存在或具有配置值或更高值时,才会建立会话。
配置注册表表达式时,请遵循以下准则:
  • 使用四个反斜杠分隔键和子键,例如
    HKEY\_LOCAL\_MACHINE\\\\\\\\SOFTWARE
  • 使用下划线分隔子键和关联的值名称,例如
    HKEY\_LOCAL\_MACHINE\\\\\\\\SOFTWARE\\\\\\\\VirusSoftware\_Version
  • 反斜杠 (\\) 用于表示空格,例如以下两个示例:
    HKEY\_LOCAL\_MACHINE\\\\\\\\SOFTWARE\\\\Citrix\\\\\\\\Secure\\ Access\\ Client\_ProductVersion
    CLIENT.REG(HKEY\_LOCAL\_MACHINE\\\\\\\\Software\\\\\\\\Symantec\\\\Norton\\ 防病毒\_版本).VALUE == 12.8.0.4 -频率 5
以下是一个注册表表达式,用于在用户登录时查找 Citrix Secure Access™ 客户端注册表项:
CLIENT.REG(secureaccess).VALUE==HKEY\_LOCAL\_MACHINE\\\\\\\\SOFTWARE\\\\\\\\CITRIX\\\\\\\\Secure\\Access\\Client\_ProductVersion
注意:
如果您正在扫描注册表项和值,并在“表达式”对话框中选择“高级自由格式”,则表达式必须以 CLIENT.REG 开头。
注册表检查支持以下五种最常见的类型:
  • HKEY\_CLASSES\_ROOT
  • HKEY\_CURRENT\_USER
  • HKEY\_LOCAL\_MACHINE
  • HKEY\_USERS
  • HKEY\_CURRENT\_CONFIG
要检查的注册表值使用以下类型:
  • 字符串
    对于字符串值类型,会检查大小写敏感性。
  • DWORD
    对于 DWORD 类型,会比较值并且必须相等。
  • 扩展字符串
    其他类型(例如二进制和多字符串)不受支持。
  • 仅支持“==”比较运算符。
  • 其他比较运算符(例如 \<、\> 和区分大小写的比较)不受支持。
  • 注册表字符串总长度必须小于 256 字节。
您可以向表达式添加值。该值可以是软件版本、Service Pack 版本或注册表中出现的任何其他值。如果注册表中的数据值与您正在测试的值不匹配,则用户将被拒绝登录。
注意:
您无法扫描子项中的值。扫描必须与命名值和关联的数据值匹配。

配置注册表策略

  1. 在配置实用程序中,在导航窗格中,执行以下操作之一:
    1. 在配置实用程序中,在“配置”选项卡上的导航窗格中,展开 NetScaler Gateway \ > 策略,然后单击“会话”。
    2. 在配置实用程序中,在“配置”选项卡上的导航窗格中,展开 NetScaler Gateway \> 策略 \ > 身份验证/授权,然后单击“预身份验证 EPA”。
  2. 在详细信息窗格中,在“策略”选项卡上,单击“添加”。
  3. 在“名称”中,键入策略的名称。
  4. 在“匹配任意表达式”旁边,单击“添加”。
  5. 在“添加表达式”对话框中,在“表达式类型”中,选择“客户端安全”。
  6. 配置以下设置:
    1. 在“组件”中,选择“注册表”。
    2. 在“名称”中,键入注册表项的名称。
    3. 在“限定符”中,留空或选择“值”。
    4. 在“运算符”中,执行以下操作之一:
      • 如果“限定符”留空,请选择“EXISTS”或“NOTEXISTS”。
      • 如果您在“限定符”中选择了“值”,请选择“==”或“\!=”。
    5. 在“值”中,键入注册表编辑器中显示的值,单击“确定”,然后单击“关闭”。

配置复合客户端设备检查表达式

您可以组合客户端设备检查字符串以形成复合客户端设备检查表达式。
NetScaler Gateway 中支持的布尔运算符包括:
  • 与 (&&)
  • 或 (||)
  • 非 (\!)
为了提高精确度,您可以使用括号将字符串组合在一起。
注意:
如果您使用命令行配置表达式,请使用括号将设备检查表达式组合在一起以形成复合表达式。使用括号可以提高对客户端表达式的理解和调试效率。

使用 AND (&&) 运算符配置策略

AND (&&) 运算符通过组合两个客户端设备检查字符串来工作,这样只有当两个检查都为真时,复合检查才通过。表达式从左到右进行评估,如果第一个检查失败,则不执行第二个检查。
您可以使用关键字“AND”或符号“&&”来配置 AND (&&) 运算符。
示例:
以下是一个客户端设备检查,用于确定用户设备是否安装并运行了 Sophos 防病毒软件的 7.0 版本。它还会检查同一台计算机上是否正在运行 Net Logon 服务。
CLIENT.APPLICATION.AV(sophos).version==7.0 AND CLIENT.SVC(netlogon) EXISTS
此字符串也可以配置为:
CLIENT.APPLICATION.AV(sophos).version==7.0 && CLIENT.SVC(netlogon) EXISTS

使用 OR ( || ) 运算符配置策略

OR (||) 运算符通过组合两个设备检查字符串来工作。当任一检查为真时,复合检查通过。表达式从左到右进行评估,如果第一个检查通过,则不执行第二个检查。如果第一个检查未通过,则执行第二个检查。
您可以使用关键字 OR 或符号 || 来配置 OR (||) 运算符。
示例:
以下是一个客户端设备检查,用于确定用户设备上是否存在文件 c:\\file.txt 或是否正在运行 putty.exe 进程。
client.file(c:\\\\\\\\file.txt) EXISTS) OR (client.proc(putty.exe) EXISTS
此字符串也可以配置为
client.file(c:\\\\\\\\file.txt) EXISTS) || (client.proc(putty.exe) EXISTS

使用 NOT (\!) 运算符配置策略

NOT (\!) 或非运算符用于否定客户端设备检查字符串。
示例:
如果文件 c:\\sophos\_virus\_defs.dat 的创建时间不超过两天,则以下客户端设备检查通过:
\!(client.file(c:\\\\\\\\sophos\_virus\_defs.dat).timestamp==2dy)