BootShellCredentialProvider: traer Linux DES a Windows
BSCP le permite iniciar ventanas directamente en una experiencia de escritorio de Linux, utilizando la interfaz de usuario de inicio de sesión nativa de Windows y una combinación de Xming & WSL al inicio de sesión.




Empezando
Prerrequisitos:
- Se debe instalar VCXSRV. Esta es una alternativa de xming gratuita que resulta más estable y destacada. Está disponible en Chocolatey, de lo contrario: https://sourceforge.net/projects/vcxsrv/
- Se debe instalar el Microsoft Visual C ++ redistribuible para Visual Studio 2017. Disponible aquí
- El subsistema de Windows para Linux, incluido el entorno bash, está instalado y funciona
- Tiene algún sentido de qué Linux DES le gustaría explorar y los ha instalado a través de WSL. Vea aquí para obtener inspiración/un script de ejecución para hacerlo por usted. Nota: Hacer todo en ese archivo debería funcionar, pero tardará mucho tiempo independientemente.
Instalación y configuración:
- Descargue y ejecute el instalador desde aquí. No cambie ninguno de los valores predeterminados; Los valores predeterminados funcionan.
- Ejecute BSCP Configurator (un atajo en su menú de inicio)
- Configure la configuración como se desee. Tenga en cuenta que los valores predeterminados deben funcionar con el entorno creado por el Scritpt de configuración mencionado anteriormente.
- En el improbable caso de que BSCP Configurator se bloquee al intentar guardar, tiene un problema de permisos. Intente volver a ejecutar como administrador. Si eso no funciona, probablemente deba darse permisos de control completos en
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinLogon . - ¡FIJA y contemplar!
- Si no lo ve, verifique que se instale el Visual C ++ Redistributable.
Notas de uso:
- Ctrl+Alt+del todavía funciona mientras está en el Linux DES. Así es como puede iniciar sesión, iniciar el administrador de tareas, etc.
- Win+R no funciona, mientras que Explorer no se ejecuta como el shell del sistema. Use Task Manager (a través de Ctrl+Alt+Del) para iniciar programas de Windows
- Hay una posibilidad de que Windows Explorer (como Explorer de archivos, no Shell) se ejecute en primer plano cuando comience el DE. Puede ignorarlo o cerrarlo de manera segura.
- El desinstalante no es particularmente inteligente. Querrá usar el configurador para deshabilitar primero la función, luego ejecutar el desinstalador.
- Una vez que haya instalado esto, querrá usarlo como su forma principal de iniciar sesión; No tiene forma de actualizar la configuración de shell si inicia sesión a través de otro proveedor de credenciales (por ejemplo, el inicio de sesión de PIN o Windows Hello).
Sobre el proyecto
Este proyecto consta de varios componentes:
- Configurador: aplicación de escritorio amigable para modificar la configuración
- RegProvider: Biblioteca auxiliar para interactuar con el registro (nada especial aquí)
- ConfigurAlableShell: reemplaza el shell de Windows Explorer en el momento de la arranque. Verifica la configuración del registro y carga el entorno de escritorio especificado (Windows Explorer, XFCE o cualquier otra cosa que pueda trabajar)
- BootShellCredentialProvider: complemento para Winlogon usando la interfaz CredentialProvider V2. Este componente le muestra los entornos de escritorio disponibles y establece el seleccionado en el registro
Riesgos, seguridad y divulgación completa
Probablemente no debería hacer esto en nada parecido a un sistema de producción/misión crítica, por varias razones:
- Estás ejecutando mi código C ++ no administrado dentro de Winlogon. Si mi código se bloquea, Winlogon se bloquea; No podrá usar su PC si esto sucede.
- Mi código no administrado está manejando su contraseña de Windows. Esto se toma prestado de la muestra/plantilla de Microsoft. Se alienta el escepticismo.
- Los componentes de este sistema dependen de debilitar la seguridad de varias claves de registro del sistema. Estos son críticos para la capacidad de Windows para presentar una experiencia de escritorio coherente.
- Este es mi segundo proyecto C ++ serio, y primero con la API Win32. Buena suerte.
Contribución y retroalimentación
Agradecería todos y cada uno de los comentarios (constructivos) sobre este proyecto y, por supuesto, aceptaré PRS. Siéntase libre de presentar problemas en este proyecto si tiene algo que compartir.
Licencia
La mayor parte de este proyecto se publica bajo la licencia MIT. El componente del proveedor de credenciales se libera bajo la licencia MS-LPL porque se deriva del proyecto Samplev2CredentialProvider.