Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

202
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

0

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

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda