Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

201
Visualizações
Detectar si el proceso se ejecuta dentro de un contenedor de Windows

Es simple. Me gustaría detectar con código si mi proceso se ejecuta dentro de un contenedor de Windows . Hay ejemplos, pero todos son para contenedores basados en Linux.

Estoy buscando algo único y explícito para la ventana acoplable que pueda usarse para llegar a una conclusión segura sobre si un proceso se está ejecutando dentro de un sistema operativo Windows alojado en un contenedor y no de otra manera.

Mi idioma preferido es PowerShell, pero si alguien me indica cómo detectarlo, lo transfiero a PowerShell.

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Los nuevos lectores pueden saltar a la parte marcada con "Actualizar" que contiene la solución aceptada.

Una verificación rápida con whoami en el símbolo del sistema mostró que la combinación de dominio y nombre de usuario que se usa dentro de un contenedor parece ser bastante inusual. Así que usé este código para resolver el problema:

 function Test-IsInsideContainer { if( ($env:UserName -eq "ContainerAdministrator") -and ($env:UserDomain -eq "User Manager") ) { $true } else { $false } }

Actualización: Otra opción es comprobar si existe el servicio cexecsvc . Una búsqueda en Internet no arrojó mucha información sobre este servicio, pero su nombre (Container Execution Agent) sugiere que solo existe dentro de los contenedores (que verifiqué con una prueba rápida en Win10 y un Docker-host Server2016). Entonces, tal vez este código cumpla con sus requisitos (soy un novato en Powershell):

 function Test-IsInsideContainer { $foundService = Get-Service -Name cexecsvc -ErrorAction SilentlyContinue if( $foundService -eq $null ) { $false } else { $true } }
about 4 years ago · Santiago Trujillo Relatório

0

Hay un valor de registro "ContainerType" en HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control.

Asi que:

 function Test-IsInsideContainer { $containerType = (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control").ContainerType $containerType -ne $null }
about 4 years ago · Santiago Trujillo Relatório

0

¿Funcionará a continuación? PS C:\> (Get-NetAdapter).Name -match "container" True

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda