在 Microsoft Intune 中添加、分配和监视 Win32 应用

使用 Microsoft Win32 内容准备工具准备好要上传到 Intune 的 Win32 应用后,便可以向 Intune 添加应用。 若要详细了解如何准备要上传的 Win32 应用,请参阅准备 Win32 应用内容以进行上传

注意

有关企业应用程序目录应用的信息,请参阅将企业应用程序目录应用 (Win32) 添加到Microsoft Intune

先决条件

要使用 Win32 应用管理,请确保满足以下条件:

  • 使用 Windows 10 版本 1607 或更高版本(企业版、专业版和教育版)。
  • 设备必须加入或注册到Microsoft Entra ID并自动注册。 Intune 管理扩展支持Microsoft Entra加入、Microsoft Entra已注册、已加入混合域或已注册组策略的设备。

    注意

    对于组策略注册方案,用户使用本地用户帐户Microsoft Entra加入其Windows 10设备。 用户必须使用其Microsoft Entra用户帐户登录到设备,并在 Intune 中注册。 如果 PowerShell 脚本或 Win32 应用以用户或设备为目标,Intune 将在设备上安装 Intune 管理扩展。

  • 每个应用的 Windows 应用程序大小上限为 30 GB。

与标准业务线 (LOB) 应用一样,你可以向 Microsoft Intune 添加 Win32 应用。 此类应用通常在内部或由第三方编写。

将 Win32 应用添加到 Intune 的流程

将 Win32 应用添加到 Intune 的过程流程图。

将 Win32 应用添加到 Intune

使用以下步骤可以将 Windows 应用添加到 Intune:

  1. 登录到Microsoft Intune管理中心

  2. 选择“应用”>“所有应用”>“添加”。

  3. 在“选择应用类型”窗格中的“其他”应用类型下,选择“Windows 应用(Win32)”

    重要

    请确保使用最新版本的 Microsoft Win32 内容准备工具。 如果不使用最新版本,你将看到一条警告,指示该应用是使用旧版工具打包的。

  4. 单击“选择”。 此时显示“添加应用”步骤。

步骤 1:应用信息

选择应用包文件

  1. 在“添加应用”窗格中,单击“选择应用包文件”
  2. 在“应用包文件”窗格中,选择“浏览”按钮。 然后选择扩展名为 .intunewin 的 Windows 安装文件。 将显示应用详细信息。
  3. 完成后,在“应用包文件”窗格中选择“确定”。

设置应用信息

在“应用信息”页中,添加应用的详细信息。 此页上的某些值可能已自动填充,具体取决于所选应用。

  • 名称:输入显示在公司门户中的应用的名称。 请确保使用的所有应用名称都是唯一的。 如果同一应用名称存在两次,则公司门户中仅显示其中一个应用。
  • 描述:为应用输入描述。 描述显示在公司门户中。
  • 发布者:输入应用的发布者名称。
  • 类别:选择一个或多个内置应用类别,或选择你创建的类别。 “类别”可让用户在浏览公司门户时更轻松地查找应用。
  • 在公司门户中将此应用显示为特色应用:当用户浏览应用时,在公司门户的主页上突出显示此应用。
  • 信息 URL:(可选)输入包含此应用相关信息的网站 URL。 此 URL 显示在公司门户中。
  • 隐私 URL:(可选)输入包含此应用相关隐私信息的网站 URL。 此 URL 显示在公司门户中。
  • 开发者:(可选)输入应用开发者的名称。
  • 所有者:(可选)输入此应用的所有者的名称。 例如,“HR 部门”
  • 备注:输入与此应用有关的任何备注。
  • 徽标:上传与应用关联的图标。 用户浏览公司门户时,此图标将与应用一同显示。

选择“下一步”以显示“程序”页。

步骤 2:程序

在“程序”页中,配置应用的安装和删除命令:

  • 安装命令:若要配置安装命令,请添加用于安装应用的完整安装命令行。

    例如,如果应用的文件名为“MyApp123”,请添加以下内容:

    msiexec /p "MyApp123.msp"

    如果应用程序是 ApplicationName.exe,命令将为应用程序名称,后跟程序包支持的命令参数(开关)。 例如:

    ApplicationName.exe /quiet

    在上述命令中,ApplicationName.exe 包支持 /quiet 命令参数。

    如需获取应用程序包支持的特定参数,请联系应用程序供应商。

    重要

    管理员在使用命令工具时必须小心谨慎。 通过“安装命令”和“卸载命令”字段可能会传递意外或有害的命令。

    在任一字段中调用 powershell.exe 将导致启动 32 位 Powershell 实例。 若要强制执行 64 位 Powershell,请使用以下命令:

    %SystemRoot%\Sysnative\WindowsPowerShell\v1.0\powershell.exe

  • 卸载命令:添加根据应用的 GUID 卸载应用的完整卸载命令行。

    例如:

    msiexec /x "{12345A67-89B0-1234-5678-000001000000}"

  • 所需的安装时间:系统等待安装程序完成的分钟数。 默认值为 60 分钟。 如果应用安装时间长于设置的安装时间,则系统将无法安装应用。 最大超时值为 1440 分钟 (1 天) 。

  • 允许可用卸载:选择“”,为公司门户用户提供此应用的卸载选项。 选择“”可阻止用户从公司门户卸载应用。

  • 安装行为:将安装行为设置为“系统”或”用户”。

    注意

    可以将 Win32 应用配置为在“用户”或“系统”上下文中安装。 “用户”上下文表示仅特定用户。 “系统”上下文表示 Windows 10 设备的所有用户。

    通过注册Microsoft Entra注册设备时,选择“系统”。

    用户无需登录设备即可安装 Win32 应用。

    将应用设置为在用户上下文中安装且设备上的用户具有管理员权限时,将在管理员权限下执行 Win32 应用安装和卸载(默认情况)。

  • 设备重新启动行为:请选择以下选项之一:

    • 根据返回代码确定行为:选择此选项以根据返回代码重新启动设备。 此选项意味着设备将根据配置的返回代码重新启动。 使用此配置时,硬重启返回代码将立即触发设备重启,软重启返回代码将通知用户需要重启才能完成安装。
    • 无特定操作:选择此选项,以抑制基于 MSI 的应用在应用安装期间重启设备。
    • 应用安装可能会强制设备重启:选择此选项可允许在不取消重启的情况下完成应用安装。 此选项意味着允许 Win32 应用安装在不取消重启的情况下完成。 使用此配置时,硬重启返回代码将通知用户设备将在 120 分钟内触发重启,软重启返回代码将仅通知用户需要重启才能完成安装。
    • Intune 将强制设备重启:选择此选项以在成功安装应用后始终重新启动设备。
  • 指定返回代码以指示安装后行为:添加用于指定应用安装重试行为或安装后行为的返回代码。 在创建应用期间默认添加返回代码条目。 但是,可以添加更多返回代码,或更改现有的返回代码。

    1. 在“代码类型”列中,将“代码类型”设置为以下项之一:
      • 失败:表示应用安装失败的返回值。
      • 硬重启:硬重启返回代码不允许在不重新启动的情况下在客户端上安装下一个 Win32 应用。
      • 软重启:软重启返回代码允许安装下一个 Win32 应用程序而无需重启客户端。 重启对于完成当前应用安装操作是必要的。
      • 重试:重试返回代码代理将尝试三次安装应用。 每次尝试都将等待 5 分钟。
      • 成功:表示应用已成功安装的返回值。
    2. 如果需要,请选择“添加”以添加更多返回代码,或修改现有的返回代码。

选择“下一步”以显示“要求”页。

步骤 3:要求

在“要求”页上,指定安装应用前设备必须满足的要求:

  • 操作系统体系结构:选择安装应用所需的体系结构。
  • 最低操作系统:选择安装应用所需的最低操作系统。
  • 所需的磁盘空间(MB):添加系统驱动器上安装应用所需的可用磁盘空间(可选)。
  • 所需的物理内存(MB):添加安装应用所需的物理内存 (RAM)(可选)。
  • 所需的逻辑处理器的最小数:添加安装应用所需的最小逻辑处理器数(可选)。
  • 所需的最低 CPU 速度 (MHz):添加安装应用所需的最低 CPU 速度(可选)。
  • 配置附加要求规则
    1. 选择“添加”以显示“添加要求规则”窗格,并配置更多要求规则。 选择“要求类型”值,以选择将用于确定如何验证要求的规则类型。 要求规则可以基于文件系统信息、注册表值和 PowerShell 脚本。
      • 文件:选择“文件”作为“要求类型”值时,要求规则必须检测文件或文件夹、日期、版本或大小。
        • 路径:输入包含要检测的文件或文件夹的那个文件夹的完整路径。
        • 文件或文件夹:要检测的文件或文件夹。
        • 属性:选择用于验证应用是否存在的规则类型。
        • 与 64 位客户端上的 32 位应用程序相关联:选择“”以展开 64 位客户端上的 32 位上下文中的任何路径环境变量。 选择“”(默认值),展开 64 位客户端上的 64 位上下文中的任何路径变量。 32 位客户端将始终使用 32 位上下文。
      • 注册表:选择“注册表”作为“要求类型”值时,要求规则必须根据值、字符串、整数或版本检测注册表设置。
        • 注册表项路径:包含要检测的值的注册表项的完整路径。
        • 值名称:要检测的注册表值的名称。 如果此值为空,则将对注册表项进行检测。 如果检测方法不是文件或文件夹存在,则注册表项的(默认)值将用作检测值。
        • 注册表项要求:选择用于确定如何验证要求规则的注册表项比较的类型。
        • 与 64 位客户端上的 32 位应用相关联:选择“”,搜索 64 位客户端上的 32 位注册表。 选择“”(默认值),搜索 64 位客户端上的 64 位注册表。 32 位客户端将始终搜索 32 位注册表。
      • 脚本:如果无法基于Microsoft Intune管理中心中可用的文件、注册表或任何其他方法创建要求规则,请选择“脚本”作为“要求类型”值。
        • 脚本文件:对于基于 PowerShell 脚本要求的规则,如果现有代码为 0,我们将更详细地检测标准输出 (STDOUT)。 例如,在整数值为 1 时,可以检测 STDOUT。
        • 在 64 位客户端上以 32 位进程形式运行脚本:选择“”,在 64 位客户端上以 32 位进程运行脚本。 选择“”(默认值),在 64 位客户端上以 64 位进程运行该脚本。 32 位客户端在 32 位进程中运行该脚本。
        • 使用登录凭据运行此脚本:选择“”,可以使用已登录设备凭据运行脚本。
        • 强制执行脚本签名检查:选择“”,验证受信任的发布者是否已对脚本进行签名,这将允许脚本在没有显示警告或提示时运行。 该脚本将流畅运行。 选择“”(默认值),运行无需签名验证的用户确认脚本。
        • 选择输出数据类型:选择用于确定要求规则是否匹配的数据类型。
    2. 完成设置要求规则后,选择“确定”。

选择“下一步”以显示“检测规则”页。

步骤 4:检测规则

在“检测规则”窗格上配置规则,以检测应用是否存在。 你可以选择添加多个规则:

  • 规则格式:选择检测应用存在性的方式。 可选择手动配置检测规则,或使用自定义脚本检测应用是否存在。 必须至少选择一个检测规则。

    注意

    必须满足“所有”规则的条件才能检测应用。

    如果 Intune 检测到设备上不存在该应用,Intune 将在大约 24 小时内再次提供该应用。 这仅适用于具有必需意向的应用。

  • 手动配置检测规则:可选择以下某个规则类型:

    • MSI:基于 MSI 版本检查进行验证。 此选项只能添加一次。 选择此规则类型时,你有两个设置:

      • MSI 产品代码:为应用添加有效的 MSI 产品代码。
      • MSI 产品版本检查:选择“”,以验证除 MSI 产品代码外的 MSI 产品版本。
    • 文件:基于文件或文件夹检测、日期、版本或大小进行验证。

      • 路径:输入包含要检测的文件或文件夹的那个文件夹的完整路径。 这不应包括 等特殊字符。
      • 文件或文件夹:输入要检测的文件或文件夹。
      • 检测方法:选择用于验证应用存在的检测方法类型。
      • 与 64 位客户端上的 32 位应用程序相关联:选择“”以展开 64 位客户端上的 32 位上下文中的任何路径环境变量。 选择“”(默认值),展开 64 位客户端上的 64 位上下文中的任何路径变量。 32 位客户端将始终使用 32 位上下文。

      基于文件的检测示例

      检查文件是否存在。

      “检测规则”窗格的屏幕截图 - 文件存在。

      检查文件夹是否存在。

      “检测规则”窗格的屏幕截图 - 文件夹存在。

    • 注册表:基于值、字符串、整数或版本进行验证。

      • 注册表项路径:包含要检测的值的注册表项的完整路径。 有效语法为 HKEY_LOCAL_MACHINE\Software\WinRAR or HKLM\Software\WinRAR。
      • 值名称:要检测的注册表值的名称。 如果此值为空,则将对注册表项进行检测。 如果检测方法不是文件或文件夹存在,则注册表项的(默认)值将用作检测值。
      • 检测方法:选择用于验证应用存在的检测方法类型。
      • 与 64 位客户端上的 32 位应用相关联:选择“”,搜索 64 位客户端上的 32 位注册表。 选择“”(默认值),搜索 64 位客户端上的 64 位注册表。 32 位客户端将始终搜索 32 位注册表。

      基于注册表的检测示例

      检查注册表项是否存在。

      “检测规则”窗格的屏幕截图 - 注册表项存在。

      检查注册表值是否存在。

      “检测规则”窗格的屏幕截图 - 注册表值存在。

      检查注册表值字符串是否相等。

      “检测规则”窗格的屏幕截图 - 注册表值字符串相等。

  • 使用自定义检测脚本:指定将用于检测此应用的 PowerShell 脚本。

    • 脚本文件:选择将检测客户端上的应用存在的 PowerShell 脚本。 该脚本返回 0 值退出代码时,以及将字符串值写入 STDOUT 时,都将检测该应用。

    • 在 64 位客户端上以 32 位进程形式运行脚本:选择“”,在 64 位客户端上以 32 位进程运行脚本。 选择“”(默认值),在 64 位客户端上以 64 位进程运行该脚本。 32 位客户端在 32 位进程中运行该脚本。

    • 强制执行脚本签名检查:选择“”,验证受信任的发布者是否已对脚本进行签名,这将允许脚本在没有显示警告或提示时运行。 该脚本将流畅运行。 选择“”(默认值)以运行脚本而不进行签名验证。

    Intune 代理检查脚本的结果。 它读取脚本写入到 STDOUT 流、标准错误 (STDERR) 流和退出代码的值。 如果脚本以非零值退出,则脚本将失败,并且应用程序检测状态未安装。 如果退出代码为零,并且 STDOUT 具有数据,则应用程序检测状态为“已安装”。

    注意

    我们建议将你的脚本编码为 UTF-8。 当脚本以 0 值退出时,脚本执行成功。 第二个输出通道表示已检测到应用。 STDOUT 数据表示已在客户端上找到该应用。 我们不会从 STDOUT 中查找特定的字符串。

Win32 应用的版本显示在 Microsoft Intune 管理中心。 应用版本将在“所有应用”列表中提供,用户可在该列表中按照 Win32 应用进行筛选,然后选择可选的“版本”列。 在Microsoft Intune管理中心,选择“应用>所有应用>>版本”,在应用列表中显示应用版本。

添加规则后,选择“下一步”以显示“依赖项”页。

步骤 5:依赖项

应用依赖项定义应用之间的关系,其中一个应用需要安装一个或多个依赖应用。 如果 Intune 尚未在设备上安装应用,则必须首先安装配置为依赖应用的任何应用。 如果设备上已安装应用,Intune 将在下次 Intune 评估设备上的应用策略时安装任何新配置的依赖应用,这些应用配置为自动安装。

仅在向 Intune 添加并上传 Win32 应用之后,才可以添加 Win32 应用依赖项。 添加 Win32 应用之后,Win32 应用的窗格上将显示“依赖项”选项。 最多有 100 个依赖项,其中包括任何包含依赖项的依赖项以及应用本身。

任何 Win32 应用依赖项必须同时是 Win32 应用。 它不支持其他应用类型,例如单个 MSI LOB 应用或 Microsoft Store 应用。

添加应用依赖项时,可以根据应用名称和发布者进行搜索。 此外,还可根据应用名称和发布者对已添加的依赖项进行排序。 在已添加的应用依赖项列表中无法选中之前添加的应用依赖项。

可以选择是否自动安装每个相关应用。 每个依赖项的“自动安装”选项默认设置为“是”。 通过自动安装依赖应用,即使依赖应用不面向用户或设备,Intune 也会在设备上安装应用以满足定义的依赖项关系。

重要

无需分配依赖应用;Intune 会根据你创建的应用关系自动定位并安装它们。

注意

仅当应用面向用户或设备时,才会在 Intune 中显示依赖应用的安装状态。

请务必注意,依赖项可以具有递归子依赖项,在评估main依赖项之前,将评估每个子依赖项。 此外,依赖项的评估和安装不会遵循依赖项级别的特定顺序。

添加到 Intune 的 Win32 应用在依赖项关系中时无法删除它们。 只有删除了依赖关系之后,才能删除这些应用。 此要求适用于依赖关系中的父应用和子应用。 此外,此要求还确保正确实施依赖项,并且依赖项行为更具可预测性。

选择依赖项

在“依赖项”页,选择必须在安装 Win32 应用前安装的应用程序:

  1. 选择“添加”以显示“添加依赖项”窗格。
  2. 添加相关应用,然后单击“选择”
  3. 通过在“自动安装”列下选择“是”或“否”,选择是否自动安装相关应用。

选择依赖项后,选择“下一步”以显示“作用域标记”页。

了解其他依赖项详细信息

用户将看到 Windows 通知,提示在 Win32 应用安装过程中下载和安装的相关应用。

依赖项限制

以下项目符号列表进一步阐明了依赖项限制:

  • 如果应用有 100 个依赖项,则应用图的总大小为 101 (100 个依赖项应用 + 1 个父应用)。
  • 如果一个应用具有 3 个依赖项,并且其中一个依赖项应用具有 2 个依赖项,则应用图的总大小为 6 (1 个父应用 + 3 个依赖项应用 + 2 个依赖项应用,这些应用来自另一个依赖项应用) 。
  • 如果应用是多个应用“图”的依赖项,这意味着依赖项位于某些应用图的依赖项链中的某个位置,则将汇总来自所有单独图的所有应用以计算依赖项大小。 例如,如果图 A 有 23 个应用,图 B 有 62 个应用,图 C 有 20 个应用,并且应用 X 作为依赖项应用存在于所有 3 个图中的依赖项链中的某个位置,则图的总大小为 103 (app X 仅计算一次),超过了 100 的限制。

依赖项失败

如果未安装从属应用,用户通常会看到以下通知之一:

  • 一个或多个相关应用无法安装。
  • 不满足一个或多个从属应用要求。
  • 一个或多个相关应用等待设备重启。

如果选择不将依赖项置于“自动安装”列中,将不会尝试安装 Win32 应用。 此外,应用报告将显示标记为 failed 的依赖项,并提供失败原因。 可以选择 Win32 应用安装详细信息中提供的失败消息(或警告),查看依赖项安装失败的信息。

每个依赖项将遵循 Intune Win32 应用重试逻辑, (等待五分钟后尝试安装三次,) 和全局重新评估计划。 依赖项不适用于卸载 Win32 应用。 但是,如果将其设置为依赖应用,则公司门户不会显示应用的卸载按钮。 要删除依赖项,必须选择依赖项列表行末的相关应用左侧的省略号(三个点)。

步骤 6:取代

取代应用程序时,可以指定将更新或替换的应用。 若要更新应用,请禁用“卸载先前版本”选项。 若要替换应用,请启用“卸载先前版本”选项。 最多有 10 个更新或替换的应用,包括对其他应用的引用。 例如,你的应用引用了另一个应用。 此应用又引用了其他应用,依此类推。 此方案将创建应用关系图。 关系图中的所有应用计数值最大为 10。

添加当前应用将取代的应用:

  1. 在“取代”步骤中,单击“添加”以选择应被取代的应用

    注意

    Intune 中的取代关系最多可以有 10 个节点。

  2. 在“添加应用”窗格中,找到并单击要应用取代关系的应用。 单击“选择”,将应用添加到取代列表

  3. 在被取代的应用的列表中,为每个所选应用修改“卸载先前版本”选项,以指定 Intune 是否将卸载命令发送给每个所选应用。 如果当前应用的安装程序自动更新所选应用,则无需发送卸载命令。 将所选应用替换为其他应用时,可能需要启用“卸载先前版本”选项,以删除和替换旧的应用

  4. 完成此步骤后,单击“下一步”

有关详细信息,请参阅 添加 Win32 应用取代

步骤 7:分配

可以为应用选择“必需”、“适用于已注册的设备”或“卸载”组分配。 有关详细信息,请参阅添加用于组织用户和设备的组使用 Microsoft Intune 将应用分配到组

重要

对于基于用户目标部署和分配 Win32 应用的方案,如果 Win32 应用需要设备管理员权限或设备标准用户没有的任何其他权限,则应用将无法安装。

  1. 对于特定应用,请选择分配类型:
    • 必需:应用安装在所选组中的设备上。
    • 可用于已注册设备:用户从公司门户应用或公司门户网站安装应用。
    • 卸载:已从所选组中设备上卸载应用。
  2. 选择“添加组”并分配将使用此应用的组。
  3. 在“选择组”窗格中,选择要根据用户或设备分配的组。
  4. 选择组后,还可以设置“最终用户通知”、“可用性”和“安装截止时间”。 有关详细信息,请参阅设置 Win32 应用可用性和通知
  5. 如果你不希望此应用分配影响用户组,请选择“模式”列下的“包括”。 在 “编辑分配 ”窗格中,将 模式 值从 “包含” 更改为 “已排除”。 选择“确定”以关闭“编辑分配”窗格。
  6. 在“应用设置”部分中,为应用选择“传递优化优先级”值。 此设置将确定如何下载应用内容。 可以基于分配选择在后台模式或前台模式下载应用内容。

完成设置应用分配后,选择“下一步”以显示“审阅 + 创建”页。

步骤 8:查看并创建

  1. 审阅为应用输入的值和设置。 验证是否已正确配置应用信息。

  2. 选择“创建”,将应用添加到 Intune

    此时会显示 LOB 应用的“概述”窗格。

此时,已完成将 Win32 应用添加到 Intune 的步骤。 有关应用分配和监视的详细信息,请参阅使用 Microsoft Intune 将应用分配到组使用 Microsoft Intune 监视应用信息和分配

后续步骤