Sandbox do Windows
Sandbox do Windows
Configure e resolva problemas da sandbox nativa do Codex no Windows
Utilize o Codex no Windows com a aplicação de computador ChatGPT nativa, a CLI ou a extensão para IDE.
A aplicação de computador ChatGPT no Windows suporta fluxos de trabalho essenciais, como conversas em paralelo, worktrees, tarefas agendadas, funcionalidades do Git, o navegador integrado, pré-visualizações de ficheiros, plugins e skills.
A aplicação pode ser executada nativamente no PowerShell com uma sandbox do Windows, em vez de exigir WSL ou uma máquina virtual. Isto mantém o Codex em fluxos de trabalho nativos do Windows, ao mesmo tempo que impõe permissões limitadas de sistema de ficheiros e de rede.
Para instalação em contexto empresarial, consulte o Guia de implementação no Windows.
O Codex suporta três implementações da sandbox do Windows:
mxc: A sandbox recomendada para dispositivos Windows compatíveis. Utiliza isolamento nativo de processos sem configuração aprovada por um administrador, contas adicionais do Windows ou regras de firewall locais.elevated: A alternativa legada preferencial quando o MXC está indisponível ou desativado. Exige configuração aprovada por um administrador. Os comandos na sandbox são executados sem privilégios de administrador.unelevated: Uma alternativa legada quando a configuração com privilégios elevados não está disponível e a política da organização o permite. Tem um isolamento de rede mais fraco do queelevatede não suporta caminhos com leitura negada.
Configurar a sandbox do Windows
A sandbox do Windows impõe as permissões ativas de sistema de ficheiros e de rede aos comandos e aos respetivos processos subordinados. O perfil de permissões determina quais os caminhos que podem ser lidos ou escritos e se o acesso à rede é permitido. A política de aprovação controla separadamente quando o Codex pede para executar comandos com mais acesso. Consulte sandbox e aprovações.
Ativar o MXC
A aplicação para computador dá automaticamente preferência ao MXC para contas de consumidores quando o dispositivo o suporta. Para implementações empresariais ou utilização autónoma da CLI, pode ativar o mesmo comportamento com a configuração abaixo.
Em config.toml:
[features]
prefer_mxc = trueCom prefer_mxc = true, o Codex utiliza o MXC para comandos do Windows quando o dispositivo e a política o permitem.
Caso contrário, utiliza o fluxo existente de seleção e configuração de implementações legadas.
Nas empresas em que a compatibilidade dos dispositivos ou a política varia, mantenha windows.sandbox definido para a implementação legada permitida pela sua organização, elevated ou unelevated, como alternativa.
Os administradores podem distribuir esta configuração como predefinição ou impor
features.prefer_mxc = true através de requirements.toml. Ambas as opções permitem recorrer a uma alternativa
legada. Consulte configuração gerida
para saber em que diferem as predefinições e os requisitos.
Manter o MXC desativado
Para impedir a utilização do MXC na sua organização, adicione o seguinte ao seu
requirements.toml gerido:
[windows]
allow_mxc = falseIsto bloqueia tanto a seleção automática do MXC como a definição explícita de windows.sandbox = "mxc". As definições e os requisitos existentes das sandboxes legadas continuam a aplicar-se.
Compatibilidade do MXC
O sistema anfitrião já tem de dispor das capacidades necessárias do Microsoft Execution Containers (MXC), que a Microsoft está a disponibilizar gradualmente para dispositivos Windows 11. A Microsoft introduziu o isolamento de processos do MXC no Windows 11 24H2 (build 26100.9278) e no 25H2 (build 26200.9278). Utilize o comando abaixo para verificar o suporte de MXC no seu dispositivo.
Na Codex CLI 0.162.0 e versões posteriores, pode testar o MXC para um único comando sem alterar a seleção de sandbox guardada. A partir do diretório do seu projeto, execute:
codex -c windows.sandbox=mxc sandbox --include-managed-config --permission-profile :workspace -- cmd.exe /d /c echo MXC_OK
$LASTEXITCODEA saída esperada é MXC_OK e o código de saída é 0. Isto verifica o arranque do comando com o perfil de permissões da área de trabalho e os requisitos geridos.
A seleção explícita de windows.sandbox = "mxc" falha se as capacidades nativas necessárias estiverem indisponíveis ou se a política bloquear o MXC.
Tenha em atenção estes limites de compatibilidade:
- A rede gerida requer que
allow_local_binding = trueesteja efetivamente em vigor. O MXC permite ligações de e para serviços no loopback do anfitrião. As regras de domínio do proxy continuam a aplicar-se ao tráfego encaminhado pelo proxy, mas as verificações adicionais do proxy relativas a destinos em redes privadas são removidas. - Os processos subordinados restantes terminam quando o comando em primeiro plano termina. Teste os fluxos de trabalho que dependem de servidores de desenvolvimento executados de forma independente.
- Os padrões glob de negação de leitura utilizam os ficheiros correspondentes no momento em que cada processo no sandbox é iniciado, tal como no Linux e no WSL. Os ficheiros correspondentes criados posteriormente continuam a poder ser lidos por esse processo em execução se as suas outras permissões permitirem o acesso. As shells, os scripts, os processos de monitorização e os servidores de desenvolvimento de longa duração mantêm esse instantâneo durante o seu tempo de vida, e não durante toda a sessão do Codex. Consulte o momento de avaliação dos padrões glob de negação de leitura.
Configurar uma alternativa legada
Selecione a implementação alternativa em config.toml:
[windows]
sandbox = "elevated" # or "unelevated"elevated é a alternativa legada preferencial. Utiliza utilizadores de sandbox
dedicados com menos privilégios, limites de permissões do sistema de ficheiros, regras de
firewall e alterações à política local necessárias para os comandos executados na sandbox.
Tal como o MXC, elevated enumera as correspondências dos padrões glob de negação de leitura quando cada processo no sandbox é iniciado. Os ficheiros correspondentes criados posteriormente continuam a poder ser lidos por esse processo em execução se as suas outras permissões permitirem o acesso. Consulte o momento de avaliação dos padrões glob de negação de leitura para conhecer as consequências para os processos de longa duração.
unelevated é uma alternativa legada. Executa comandos com um
token Windows restrito derivado do utilizador atual, aplica limites do sistema
de ficheiros baseados em ACL e utiliza controlos de funcionamento offline ao nível do ambiente em vez
da regra de firewall dedicada ao utilizador offline. Proporciona um isolamento de rede mais fraco
do que elevated e não suporta caminhos com leitura negada, mas continua a ser útil quando
a configuração aprovada por um administrador é bloqueada pela política local ou empresarial.
Utilize o MXC quando o dispositivo e a política o permitirem. Caso contrário, dê preferência a elevated, com unelevated como alternativa secundária.
Os administradores empresariais podem limitar as implementações de sandbox legadas
que o Codex pode utilizar através de requirements.toml:
[windows]
allowed_sandbox_implementations = ["elevated"]Este exemplo permite elevated e impede o recurso a unelevated como alternativa. Não restringe mxc quando o MXC está disponível. Os restantes requisitos geridos de permissões e de rede continuam a aplicar-se. Para permitir qualquer uma das implementações legadas, inclua ambos os valores; o Codex dá preferência a elevated quando não está selecionado nenhum modo.
Consulte a referência de requirements.toml para conhecer os valores suportados. Para bloquear também o MXC, utilize o requisito windows.allow_mxc separado.
Por predefinição, ambos os modos de sandbox legados também utilizam um ambiente de trabalho privado para um maior isolamento da interface.
Aprovisionamento pela equipa de TI da sandbox legada com privilégios elevados
Para colaboradores sem direitos de administrador local, a equipa de TI pode instalar a CLI e aprovisionar a sandbox com privilégios elevados antes de o colaborador iniciar o Codex. A partir de um processo de implementação com privilégios elevados, execute:
codex sandbox setup --elevated --user 'DOMAIN\alice' --codex-home 'C:\Users\alice\.codex'Substitua a identidade e o caminho pela identidade Windows do funcionário e por CODEX_HOME. O comando lê a configuração desse utilizador, prepara a sandbox e guarda windows.sandbox = "elevated". Em seguida, o funcionário executa o Codex a partir de um terminal normal.
Permissões da sandbox
Matriz de versões do Windows
| Versão do Windows | Nível de suporte | Notas |
|---|---|---|
| Windows 11 | Recomendado | A melhor base para o Codex no Windows. Utilize esta versão se estiver a normalizar uma implementação empresarial. |
| Windows 10 recente e atualizado | Melhor esforço | Pode funcionar, mas é menos fiável do que o Windows 11. No Windows 10, o Codex depende de suporte de consola moderno, incluindo ConPTY. Na prática, é necessário o Windows 10 versão 1809 ou posterior. |
| Compilações antigas do Windows 10 | Não recomendado | É mais provável que não incluam componentes de consola necessários, como ConPTY, e que falhem em configurações empresariais. |
Pressupostos adicionais sobre o ambiente:
wingetdeve estar disponível. Se estiver em falta, atualize o Windows ou instale o Windows Package Manager antes de configurar o Codex.- A sandbox legada
elevateddepende de uma configuração aprovada pelo administrador. - Alguns dispositivos geridos pela empresa bloqueiam os passos de configuração necessários, mesmo quando a versão do sistema operativo é aceitável.
- O MXC exige ainda as capacidades nativas descritas em Compatibilidade do MXC; esta matriz não garante a disponibilidade do MXC num dispositivo específico.
Verificar o acesso de leitura da sandbox
Quando um comando não consegue ler um diretório, verifique o perfil de permissões ativo,
os requisitos geridos e as permissões de ficheiros do Windows. Na CLI, utilize /status
e /debug-config para inspecionar a sessão e a configuração ativas. Peça ao seu
administrador para rever uma restrição gerida em vez de desativar a sandbox.
Utilize a sandbox nativa do Windows por predefinição. Escolha WSL quando precisar de ferramentas nativas do Linux, quando o seu fluxo de trabalho já estiver no WSL2 ou quando as implementações nativas do Windows disponíveis não satisfizerem as suas necessidades.
Resolução de problemas e perguntas frequentes
Se estiver a resolver problemas num computador Windows gerido, comece pelo modo de sandbox nativa, pela versão do Windows e por qualquer erro de política apresentado pelo Codex. No caso do MXC, verifique a compatibilidade e a política de rede efetiva. Os problemas da sandbox legada podem ter origem na configuração, nos direitos de início de sessão ou nas permissões do sistema de ficheiros.
A configuração da minha sandbox legada falhou
Se o Codex não conseguir concluir a configuração da sandbox elevated, as causas mais comuns
são:
- o pedido do UAC do Windows ou de administrador foi recusado,
- o computador não permite a criação de utilizadores ou grupos locais,
- o computador não permite alterações às regras de firewall,
- o computador bloqueia os direitos de início de sessão necessários aos utilizadores da sandbox,
- ou outra política empresarial bloqueia parte do fluxo de configuração.
O que tentar:
- Tente configurar novamente a sandbox
elevatede aprove o pedido de administrador se o seu ambiente o permitir. - Se o portátil da sua empresa bloquear este procedimento, pergunte à equipa de TI se o computador permite a configuração aprovada por um administrador para a criação de utilizadores/grupos locais, a configuração da firewall e os direitos de início de sessão necessários aos utilizadores da sandbox.
- Se a configuração continuar a falhar e a política gerida o permitir, utilize
unelevatedenquanto o problema é investigado.
O Codex mudou para a sandbox sem privilégios elevados
A implementação unelevated pode ser selecionada na configuração ou utilizada como
alternativa quando a configuração de elevated não está disponível.
- O Codex continua a poder ser executado num modo com sandbox.
- Continua a aplicar limites do sistema de ficheiros baseados em ACL, mas não utiliza o
limite separado de utilizadores da sandbox de
elevatede tem um isolamento de rede mais fraco. - Esta é uma alternativa útil, mas não é a configuração empresarial preferencial a longo prazo.
Num portátil empresarial gerido, verifique primeiro a compatibilidade do MXC.
Se o MXC estiver indisponível ou desativado, peça à equipa de TI para aprovisionar
elevated.
Vejo o erro 1385 do Windows
Se os comandos na sandbox falharem com o erro 1385, o Windows está a negar o tipo de início de sessão
de que o utilizador da sandbox precisa para iniciar o comando.
Na prática, isto significa geralmente que o Codex criou os utilizadores da sandbox com êxito, mas a política do Windows continua a impedir que esses utilizadores executem comandos na sandbox.
O que fazer:
- Pergunte à equipa de TI se a política do dispositivo concede os direitos de início de sessão necessários aos utilizadores da sandbox criados pelo Codex.
- Compare as diferenças de política de grupo ou de OU se o problema afetar apenas alguns computadores ou equipas.
- Se precisar de continuar a trabalhar de imediato, utilize a sandbox
unelevatedenquanto o problema de política é investigado. - Envie
CODEX_HOME/.sandbox/sandbox.logjuntamente com a versão do Windows e uma breve descrição da falha.
O Codex avisa que algumas pastas permitem a escrita por Everyone
O Codex pode avisar que algumas pastas permitem a escrita por Everyone.
Se vir este aviso, as permissões do Windows nessas pastas são demasiado amplas para que a sandbox as proteja totalmente.
O que fazer:
- Reveja as pastas que o Codex apresenta no aviso.
- Remova o acesso de escrita de
Everyonedessas pastas se tal for adequado ao seu ambiente. - Reinicie o Codex ou volte a executar a configuração da sandbox depois de essas permissões serem corrigidas.
Se não souber como alterar essas permissões, peça ajuda à equipa de TI.
Os comandos na sandbox não conseguem aceder à rede
Algumas conversas do Codex são intencionalmente executadas sem acesso de saída à rede, consoante o modo de permissões em utilização.
Se uma tarefa falhar por não conseguir aceder à rede:
- Verifique se a tarefa deveria ser executada com a rede desativada.
- Se esperava ter acesso à rede, reinicie o Codex e tente novamente.
- Se o problema persistir, recolha o registo da sandbox para que a equipa possa verificar se o computador tem uma configuração de sandbox parcial ou danificada.
A sandbox funcionava antes e depois deixou de funcionar
Isto pode acontecer após:
- mover um repositório ou espaço de trabalho,
- alterar permissões do computador,
- alterar políticas do Windows,
- ou outras alterações à configuração do sistema.
O que tentar:
- Reinicie o Codex.
- Para o MXC, repita a verificação de compatibilidade e verifique a
política de rede efetiva. Para a implementação legada
elevated, tente configurar novamente a sandbox. - Se for necessária uma sandbox legada e a política gerida o permitir, utilize
unelevatedcomo alternativa temporária. - Recolha o registo da sandbox para análise.
Preciso de enviar dados de diagnóstico para a OpenAI
Se continuar a ter problemas, envie:
CODEX_HOME/.sandbox/sandbox.log
Também é útil incluir:
- uma breve descrição do que estava a tentar fazer,
- a implementação selecionada:
mxc,elevatedouunelevated, - qualquer mensagem de erro apresentada na aplicação,
- se viu
1385ou outro erro do Windows ou do PowerShell, - o número de compilação do Windows,
- e se está a utilizar o Windows 11 ou o Windows 10.
Não envie:
- o conteúdo de
CODEX_HOME/.sandbox-secrets/
A extensão para IDE está instalada, mas não responde
O seu sistema pode não ter as ferramentas de desenvolvimento C++ exigidas por algumas dependências nativas:
- Visual Studio Build Tools (carga de trabalho C++)
- Microsoft Visual C++ Redistributable (x64)
- Com
winget, executewinget install --id Microsoft.VisualStudio.2022.BuildTools -e
Depois da instalação, reinicie completamente o VS Code.