部署 Windows 应用和 Codex CLI
使用 Intune、SCCM 或其他企业管理工具部署 Windows 桌面应用和 Codex CLI
将 Windows 桌面应用、Codex CLI 或两者部署到受管理的 Windows 设备上。需要桌面访问时选择应用,需要终端访问时选择 CLI。
桌面应用和独立 CLI 使用不同的安装上下文。部署 CLI 之前,请选择并验证用于运行其安装程序的账户。
| 你的目标 | 入门指南 |
|---|---|
| 分发桌面应用 | 部署 Windows 应用 |
| 为员工提供独立的终端访问 | 在 Windows 上部署 Codex CLI |
| 在 Windows 上应用 Codex 要求 | 配置托管要求 |
| 准备 Windows 命令执行环境 | 配置 Windows 沙箱 |
部署 Windows 应用
根据你的管理工具以及设备是否能够访问 Microsoft 的分发服务,选择部署方式。
部署前,请按照托管配置配置适用的控制措施。要为桌面应用中的 Codex 命令执行做好准备,请按照 Windows 沙箱设置操作。检查设备兼容性,并完成所需的旧版设置。
下方的 MSIX 链接下载的是各架构的最新版本,而非历史版本。请审查下载的安装包,并将已批准的制品保留在部署系统中。按照管理应用更新中的说明,协调应用内置更新程序与 Microsoft Store、Intune 及其他部署工具。
安装包来源
通过 Microsoft Store 部署
使用 Intune 的 Microsoft Store 集成安装和更新应用。
在 Intune 管理中心,转到应用 > 所有应用 > 创建。选择 Microsoft Store 应用(新)。
搜索 OpenAI 的 ChatGPT,或输入 Store 产品 ID
9PLM9XGG6VKS。选择该应用并检查其安装设置。在应用信息 中,将安装行为 设置为系统。
在必需 下添加目标组,让 Intune 自动安装该应用, 然后选择创建。
若要通过公司门户提供可选安装,请改用可用于已注册的 设备。
设备需要能够访问 Microsoft 网络要求中列出的 Microsoft Store 和 Windows Update 终结点。如果这些终结点被阻止,请选择离线 MSIX。
有关安装上下文、网络要求和部署监视,请参阅 Microsoft 的 Intune Store 应用指南。
使用 Intune 部署离线软件包
当设备无法使用 Microsoft 的分发服务,或你需要分发组织已审核的包时,请使用下载的 MSIX。这些链接会下载最新版本。对于重复部署,请使用部署系统中已批准的构件。选择必需 以自动安装。
分配
下载适用于设备的 x64 MSIX 或 Arm64 MSIX。
在 Intune 管理中心,转到应用 > 所有应用 > 创建。 选择业务线应用,上传 MSIX,并检查包的 信息。
在分配 页面的必需 下添加目标设备组。
在该分配的安装上下文 列中,选择用户上下文, 将其更改为设备上下文,然后保存。
检查并创建应用。在设备安装状态 中确认安装成功,然后让员工正常启动 ChatGPT。
如果应用未出现,请让用户注销后重新登录。
有关更多信息,请参阅 Microsoft 的 LOB 应用部署指南。
要通过公司门户提供安装,请将离线包部署为 Windows 应用 (Win32),并将分配类型设为可用于已注册的设备:
下载 x64 MSIX 或 Arm64 MSIX,以及离线许可证。将包重命名为
ChatGPT.msix,并将这两个文件放在同一个 文件夹中。将此脚本保存为
Install-ChatGPT.ps1,与下载的文件放在同一目录中:
#Requires -RunAsAdministrator
$ErrorActionPreference = 'Stop'
Add-AppxProvisionedPackage -Online `
-PackagePath "$PSScriptRoot\ChatGPT.msix" `
-LicensePath "$PSScriptRoot\ChatGPT-License.xml" `
-Regions all- 将此脚本保存为
Uninstall-ChatGPT.ps1,与 MSIX、许可证和安装脚本放在同一目录中。配置 Intune,使其在卸载应用时以系统上下文运行此脚本。该脚本会移除预配的包以及设备上所有用户的应用注册:
#Requires -RunAsAdministrator
$ErrorActionPreference = 'Stop'
Get-AppxProvisionedPackage -Online |
Where-Object DisplayName -eq 'OpenAI.Codex' |
Remove-AppxProvisionedPackage -Online -AllUsers
Get-AppxPackage -AllUsers -Name 'OpenAI.Codex' |
Remove-AppxPackage -AllUsers这两个脚本都应遵循组织的 PowerShell 脚本签名策略。
- 使用 Microsoft 的 Win32 应用工作流,将 MSIX、许可证、
Install-ChatGPT.ps1和Uninstall-ChatGPT.ps1一起打包。在 Intune 中添加 Windows 应用 (Win32),将安装行为 设置为系统,并指定与包匹配的体系结构。配置下面的 64 位安装和卸载命令,然后将应用分配为可用于已注册的设备。
Win32 安装、移除和检测设置
将安装命令 设置为:
%SystemRoot%\Sysnative\WindowsPowerShell\v1.0\powershell.exe -NoProfile -File .\Install-ChatGPT.ps1对于 Windows 安装在 C:\Windows 的设备,将卸载命令 设置为:
C:\Windows\Sysnative\WindowsPowerShell\v1.0\powershell.exe -NoProfile -File .\Uninstall-ChatGPT.ps1如果 Windows 目录不同,请使用实际目录。此字面路径会从 Intune 的 32 位命令上下文中选择 64 位 Windows PowerShell。请勿在卸载字段中改用 %SystemRoot%:Intune 不会在该字段中展开环境变量。如果需要展开变量,请按照 Microsoft 的程序设置中的说明打包一个包装脚本。
在 64 位 PowerShell 中运行此自定义检测脚本。当应用已在设备上预配时,脚本会报告成功。要检测某个已批准的特定版本,还需将包的 Version 与该版本进行比较。
$package = Get-AppxProvisionedPackage -Online -ErrorAction Stop |
Where-Object DisplayName -eq 'OpenAI.Codex'
if ($package) {
Write-Output $package.PackageName
exit 0
}
exit 1Windows 会在用户登录时注册预配的包。如果应用未显示,请让用户注销后重新登录。
使用 Microsoft Configuration Manager (SCCM) 部署
通过 Configuration Manager 和软件中心部署下载的 MSIX。
下载适用于设备的 x64 MSIX 或 Arm64 MSIX。将其放在 Configuration Manager 可访问的网络共享 中。
转到软件库 > 应用程序 管理 > 应用程序 > 创建应用程序。选择 Windows 应用 包 并输入 MSIX 路径。检查检测到的包信息,并 启用为设备上的所有用户预配此应用程序。
将内容分发到分发点, 然后部署到设备集合。选择必需 以 自动安装,或选择可用,让用户从软件中心安装。
使用 Windows 应用包部署类型,而非 Store 链接类型。有关包要求以及面向所有用户的预配,请参阅 Microsoft 的 Configuration Manager 指南。
如果部署工作流程需要,请在下载软件包时一并下载离线许可证。
使用 Configuration Manager 移除预配的应用
如果用户已登录过预配了该应用的设备,请创建以下两个卸载部署:
将一个卸载部署定向到包含受影响设备的设备集合。
将第二个卸载部署定向到包含已登录过这些设备的用户的用户集合。
从设备中移除预配应用不会为现有用户卸载该应用。请验证设备和这些用户帐户中的应用均已移除。请参阅 Microsoft 的预配应用移除指南。
使用其他管理工具部署
使用管理工具的 MSIX 部署工作流。
根据设备架构下载 x64 MSIX 或 Arm64 MSIX。
将 MSIX 添加到部署工具中。将安装配置为面向设备, 并使用 Local System 或管理员权限。
为试点设备组分配自动安装。在扩大部署范围之前,确认员工 可以使用其常用 Windows 帐户打开 ChatGPT。
如果应用未出现,请让用户注销后重新登录。
使用 PowerShell 脚本安装
如果工具需要安装命令,请在下载 MSIX 的同时下载离线许可证。
将程序包重命名为 ChatGPT.msix,并将此脚本另存为
Install-ChatGPT.ps1,放在同一文件夹中:
#Requires -RunAsAdministrator
$ErrorActionPreference = 'Stop'
Add-AppxProvisionedPackage -Online `
-PackagePath "$PSScriptRoot\ChatGPT.msix" `
-LicensePath "$PSScriptRoot\ChatGPT-License.xml" `
-Regions all将脚本和这两个文件一起打包。配置工具,使用 64 位 Windows PowerShell 以 Local System 或管理员身份运行脚本。
程序包来源
让用户安装应用
如果用户可以自行安装应用程序,或可以获得管理员的帮助,请使用此选项。
引导用户前往 ChatGPT Windows 安装程序下载页面。
运行安装程序,并按照 Windows 安装 提示操作。安装必须经管理员批准。
打开 ChatGPT 并使用工作帐户登录。
用户也可以从命令行安装:
winget install --id 9PLM9XGG6VKS -s msstore安装程序提供自动更新功能。安装或更新期间可能会出现 Microsoft Store 组件;用户无需浏览 Microsoft Store。
从离线软件包安装
在联网计算机上下载文件,然后将其复制到目标设备。安装必须由管理员执行。
下载 x64 MSIX 或 Arm64 MSIX,以及离线许可证。将程序包重命名为
ChatGPT.msix,并将这两个文件保存在同一 文件夹中。在该文件夹中以管理员身份打开 Windows PowerShell, 然后运行:
Add-AppxProvisionedPackage -Online `
-PackagePath .\ChatGPT.msix `
-LicensePath .\ChatGPT-License.xml `
-Regions all- 如果应用未出现,请注销后重新登录,然后打开 ChatGPT 并使用工作帐户登录。
这些下载链接提供适用于各架构的最新 Microsoft Store 签名程序包。离线安装后,使用 ChatGPT 仍需联网。桌面应用不提供独立 MSI 程序包或非 Microsoft Store 的 EXE 程序包。
在 Windows 上部署 Codex CLI
准备 CLI 程序包,应用设备策略,并验证员工帐户能否从终端访问 CLI。
开始之前
确定目标 Windows 设备、用户及设备的处理器架构,然后选择安装方式。确认用户拥有 Codex 访问权限,并且能够完成组织的登录流程。
对于 Intune,请准备好应用管理权限、符合 Microsoft Win32 打包先决条件的已注册设备,以及无人值守安装程序包。
明确 CLI 更新和移除的负责人。如果使用 npm,请考虑受管理的 Node.js/npm 安装及其全局程序包位置。
选择安装方式
选择安装方式并明确 CLI 版本。查看 GitHub 上的 CLI 版本,然后将示例中的 <approved-version> 替换为已批准的版本号,格式为 x.y.z。程序包和检测规则应使用相同的版本。
未指定版本时,独立安装程序默认使用 latest。显式设置 -Release 可将部署固定到某个版本;请参阅安装程序的版本参数。有关常规安装指南,请参阅 CLI 安装。
独立 PowerShell 安装程序。 在新的 PowerShell 窗口中下载安装程序,并传入已批准的版本:
$CodexRelease = '<approved-version>'
Invoke-WebRequest -UseBasicParsing -Uri 'https://chatgpt.com/codex/install.ps1' -OutFile '.\codex-install.ps1'
powershell -ExecutionPolicy Bypass -File .\codex-install.ps1 -Release $CodexReleasenpm。 如果设备上的 Node.js 和 npm 已纳入管理,请显式选择已批准的程序包版本:
$CodexRelease = '<approved-version>'
npm install -g "@openai/codex@$CodexRelease"对于受管理的分发,请将经过审核的安装程序或程序包制品以及选定版本保留在 IT 部门维护的程序包中。明确定义安装上下文、检测、移除和更新行为。选择版本不会改变安装程序默认使用用户配置文件的行为,也不会提供完整的无人值守部署封装。
设置安装上下文
独立安装程序默认将运行时文件放在当前用户的配置文件中,将命令目录设为 %LOCALAPPDATA%\Programs\OpenAI\Codex\bin,并使用用户 PATH。
以 SYSTEM 身份运行未经修改的安装程序时,安装目标是 SYSTEM 配置文件和环境。在 Intune 中选择 System 并不会使其成为面向所有用户的安装。
| 部署方式 | 验证事项 |
|---|---|
| 为已登录的员工安装 | 在该用户的上下文中运行安装和检测。打开一个新终端,确认该员工能够找到并运行 codex。 |
| 构建设备范围的安装包 | 定义并验证计算机上的安装布局、运行时文件、权限、PATH 配置、检测和卸载方式。默认安装程序不提供此方案。 |
| 使用 npm | 确认运行 npm 的账户所使用的全局包前缀和命令位置。“全局”不一定意味着适用于所有 Windows 用户。 |
将用户安装、设备策略下发和经管理员批准的沙箱设置分开处理。当某个步骤需要使用员工的用户配置文件时,请使用该员工的身份,而非 SYSTEM。
将独立运行所需的运行时文件保存在一起;仅复制 codex.exe 无法构成完整的独立安装包。
通过 Intune 打包和分配 CLI
准备并验证由 IT 管理的 Win32 安装包,为所选安装上下文配备无人值守安装程序、卸载程序和检测逻辑。
准备一个源文件夹,其中包含经批准的安装文件和无人值守安装脚本。在该脚本中指定经批准的 CLI 版本,不要让脚本自动解析
latest。将 Microsoft 打包工具和输出文件夹放在该源文件夹之外。使用 Microsoft Win32 Content Prep Tool 生成
.intunewin文件。本示例假设已审核的安装脚本名为Install-Codex.ps1:
IntuneWinAppUtil.exe -c C:\Packages\Codex\Source -s Install-Codex.ps1 -o C:\Packages\Codex\Output -q该工具会打包源文件夹中的内容。请参阅创建 Win32 应用包。
在 Intune 中,创建一个 Windows 应用 (Win32) 并上传安装包。
设置与安装包匹配的安装和卸载命令、用户 或系统 行为、要求及检测规则。
将其分配为必需 或可用于已注册设备。
Intune 要求使用无人值守安装。自定义检测脚本必须以退出码 0 退出,并向 stdout 写入内容;向 stderr 输出内容会导致检测失败。请参阅添加和分配 Win32 应用。
即使管理代理报告了表示成功的退出码,也要使用员工账户验证 CLI。
对于 Configuration Manager (SCCM),请在应用部署工作流中采用已审核的 CLI 安装方案,并使用 CLI 专用的安装程序和检测规则。桌面应用的 MSIX 设置仅适用于桌面应用。
配置托管要求
将管理员强制执行的 Windows 要求部署到以下位置:
%ProgramData%\OpenAI\Codex\requirements.toml通过终结点管理工具下发该文件。向目标用户授予读取权限,并防止普通用户更改由管理员管理的策略。
要求用于约束设置;配置默认值用于提供初始值。请同时检查本地文件和适用的云端策略,以确定实际生效的配置。
为权限、审批、网络访问和沙箱行为选择相应要求。有关支持的字段和优先级,请参阅托管配置。
部署后,以员工身份启动 Codex,并使用 /status 和 /debug-config 确认实际生效的策略。安装 CLI 或下发要求并不会授予工作区访问权限。
配置 Windows 沙箱
选择 Windows 沙箱之前,请检查设备兼容性。Windows 沙箱指南介绍了 Microsoft Execution Containers (MXC) 和旧版实现。
在兼容设备上优先使用 MXC
单独使用 CLI 时,请在 config.toml 中启用优先使用 MXC 的设置:
[features]
prefer_mxc = true你也可以通过 requirements.toml 强制执行此功能设置值。此偏好设置允许在 MXC 不可用时回退到旧版实现。启用前,请检查 Windows 沙箱指南中的设备要求。
在 CLI 0.162.0 或更高版本中,从项目目录运行以下兼容性探测命令:
codex -c windows.sandbox=mxc sandbox --include-managed-config --permission-profile :workspace -- cmd.exe /d /c echo MXC_OK
$LASTEXITCODE预期输出为 MXC_OK,退出码为 0。此操作检查的是显式指定 MXC 的命令;还应检查员工正常会话中的配置。
推广部署前,请对照沙箱指南中的网络限制检查你的托管网络策略。
准备旧版回退方案
当 MXC 不可用或被禁用时,优先使用 elevated 旧版回退方案。其设置过程需要管理员批准,但沙箱内的命令无需管理员权限即可运行。
针对员工账户和 Codex 主目录,按照由 IT 主导的设置流程操作。在具有适当提升权限的进程中运行以下示例:
codex sandbox setup --elevated --user 'DOMAIN\alice' --codex-home 'C:\Users\alice\.codex'将示例身份和路径替换为目标用户的实际值。执行提权设置时,请使用管理员信任的 CLI 安装。
若要仅允许提权的旧版实现,请将以下内容添加到 %ProgramData%\OpenAI\Codex\requirements.toml,而非 config.toml。请参阅配置旧版回退方案:
[windows]
allowed_sandbox_implementations = ["elevated"]这会限制旧版回退方案,但不会阻止使用 MXC。在允许 unelevated 之前,请评估其较弱的网络隔离能力,以及不支持禁止读取路径的限制。
验证 CLI 部署
以目标员工身份打开一个不具有管理员权限的新 PowerShell 窗口:
Get-Command codex
codex --version
codex确认找到的可执行文件来自预期的安装位置,然后完成经批准的登录流程。在指定的测试项目中运行一个小任务,并检查当前生效的配置。
| 检查项 | 操作和预期结果 |
|---|---|
| 安装上下文 | 确认目标员工账户能够找到 CLI,包括重新登录后。 |
| 管理工具检测 | 检查已安装 CLI 的设备能否被检测到,以及未安装 CLI 的设备(包括已卸载 CLI 的设备)是否不会被检测为已安装。 |
| 托管要求 | 确认会话显示预期的实际生效策略。 |
| Windows 沙箱 | 验证 MXC 能否在兼容设备上运行,并确认已在需要的设备上配置经批准的旧版回退方案。 |
| 更新 | 确认部署后员工能够运行经批准的新版本。 |
| 卸载 | 确认安装包能够移除其安装内容和 PATH 条目,且不会删除无关的用户配置或项目数据。 |
管理更新
桌面应用
应用默认会检查更新,即使是离线
安装后也会如此。若要启用自动更新,请允许设备访问
persistent.oaistatic.com。如果禁用自动更新,请通过管理工具部署更新的
安装包。
按照管理应用更新中的说明协调所有更新来源。禁用内置更新程序并不会阻止 Microsoft Store、Intune 或其他管理工具更新应用,也不会提供由 OpenAI 管理的版本固定功能或单独的发布渠道。请通过部署系统确认已安装的版本。
Codex CLI
每次更新 CLI 时,选择一个新获批的版本,更新部署包中明确指定的 -Release 值或 npm 包版本,并更新其检测规则。通过既定的打包部署流程进行部署,然后验证已安装的版本、账户上下文和检测行为。不要将受管理的包改回使用未明确指定版本的安装命令。请参阅 CLI 版本、CLI 安装与更新和 npm 版本选择。
故障排查
安装时提示用户输入管理员凭据
用户自行安装应用时,必须由管理员批准安装。
对于通过 Microsoft Store 进行的 Intune 部署:
在 Intune 管理中心,转到应用 > 所有应用,然后选择 ChatGPT。
检查应用属性 中的安装行为。如果设置为用户,请将 该应用重新添加为 Microsoft Store 应用(新),并在 应用信息 中选择系统。
在必需 或可用于 已注册设备 下,将应用分配给目标组。如果添加了新应用,请移除该组 在原应用中的分配。
将受影响的设备与 Intune 同步,然后检查设备安装状态。 对于可用分配,请在公司门户中重试安装。
如果应用已安装,使用系统 安装行为部署时,可能会
导致 Intune 报告 0x87D1041C。在这种情况下,安装仍然成功。
请在受影响的设备上验证应用。
安装失败并显示错误 `0x80073D28`
当 Windows 无法在没有管理员权限的情况下安装打包服务时,
会返回 0x80073D28(ERROR_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES)。
请以管理员身份运行安装,或将部署工具配置为
在设备或 System 上下文中安装。
对于现有的 SCCM 部署:
- 打开应用程序的属性 > 部署类型。
- 编辑 Windows 应用包 部署类型,并打开用户体验。
- 启用为设备上的所有用户预配此应用程序,然后保存。
- 刷新客户端的计算机策略,然后在软件 中心重试安装。
有关预配设置的详细信息,请参阅 Microsoft 的应用程序部署设置。
Codex CLI 安装与配置
| 症状 | 检查事项 |
|---|---|
| Intune 报告成功,但员工无法运行 Codex | 检查安装账户、运行时位置,以及更新了哪个账户的 PATH。未经修改的安装程序以 SYSTEM 身份运行时,不会安装到员工的用户配置文件中。 |
安装后无法识别 codex |
打开一个新终端。检查目标账户的命令目录和 PATH。 |
| 启动了错误的 Codex 版本 | 使用 Get-Command codex 检查是否存在相互冲突的独立安装或 npm 安装位置。 |
| MXC 探测失败 | 对照 Windows 沙箱指南检查设备功能、CLI 版本和托管策略。在适当情况下,预配已获批的旧版回退方案。 |
| 旧版沙箱设置请求管理员批准 | 由 IT 人员针对员工身份和 Codex 主目录完成设置。 |
| 托管设置与本地要求文件不一致 | 使用 /status 和 /debug-config 查看生效的设置、策略优先级和支持的字段。 |