BootshellCredentialProvider - trazendo Linux des para o Windows
O BSCP permite inicializar o Windows diretamente em uma experiência de desktop Linux, usando a interface do logon nativa do Windows e uma combinação de Xming & WSL no login.




Começando
Pré -requisitos:
- O VCXSRV deve ser instalado. Esta é uma alternativa xming gratuita que é mais estável e destaque. Está disponível no Chocolatey, caso contrário: https://sourceforge.net/projects/vcxsrv/
- O Microsoft Visual C ++ Redistributable para o Visual Studio 2017 deve ser instalado. Disponível aqui
- Subsistema do Windows para Linux, incluindo o ambiente Bash, está instalado e funcionando
- Você tem alguma noção do que Linux des você gostaria de explorar e os instalou através do WSL. Veja aqui a inspiração/um script executável para fazer isso por você. Nota: Fazer tudo nesse arquivo deve funcionar, mas levará muito tempo, independentemente.
Instalando e configurando:
- Faça o download e execute o instalador daqui. Não altere nenhum dos padrões; os padrões funcionam.
- Execute o BSCP Configurator (um atalho no menu Iniciar)
- Definir as configurações conforme desejado. Observe que os padrões devem funcionar com o ambiente criado pelo scritpt de configuração mencionado acima.
- No caso improvável de que o BSCP Configurator trava ao tentar salvar, você tem um problema de permissões. Tente correr novamente como administrador. Se isso não funcionar, você provavelmente precisará fornecer permissões de controle total no
HKLMSOFTWAREMicrosoftWindows NTCurrentVersionWinLogon . - Sair e eis!
- Se você não o vir, verifique duas vezes se o redistribuível visual C ++ está instalado.
Notas de uso:
- Ctrl+alt+del ainda funciona no Linux des. É assim que você pode sair, iniciar o gerente de tarefas etc.
- Win+R não funciona enquanto o Explorer não está sendo executado como o shell do sistema. Use o Task Manager (através do Ctrl+Alt+Del) para iniciar o Windows Programs
- Há uma chance do Windows Explorer (como File Explorer, não Shell) será executado em primeiro plano quando o DE iniciar. Você pode ignorá -lo com segurança.
- O desinstalador não é particularmente inteligente. Você deseja usar o configurador para desativar o recurso primeiro e depois executar o desinstalador.
- Depois de instalar isso, você desejará usá -lo como sua principal maneira de fazer login; Não tem como atualizar as configurações do shell se você efetuar login por outro provedor de credenciais (por exemplo, logon pino ou windows hello).
Sobre o projeto
Este projeto consiste em vários componentes:
- Configurador: aplicativo de desktop amigável para modificar a configuração
- RegProvider: Biblioteca ajudante para interagir com o registro (nada de especial aqui)
- ConfigurableShell: substitui o shell do Windows Explorer no momento da inicialização. Verifica as configurações do registro e carrega o ambiente de desktop especificado (Windows Explorer, XFCE ou qualquer outra coisa que você possa trabalhar)
- BootshellCredentialProvider: Plugin para WinLogon usando a interface CredentialProvider V2. Este componente mostra os ambientes de desktop disponíveis e define o selecionado no registro
Riscos, segurança e divulgação completa
Você provavelmente não deve fazer isso em nada parecido com um sistema de produção/missão crítico, por vários motivos:
- Você está executando meu código C ++ não gerenciado dentro do WinLogon. Se meu código travar, Winlogon trava; Você não poderá usar seu PC se isso acontecer.
- Meu código não gerenciado está lidando com sua senha do Windows. Isso é emprestado da amostra/modelo da Microsoft. O ceticismo é incentivado.
- Os componentes deste sistema dependem de enfraquecer a segurança de várias chaves do registro do sistema. Isso é fundamental para a capacidade do Windows de apresentar uma experiência coerente para desktop.
- Este é o meu segundo projeto C ++ sério de todos os tempos e primeiro com a API Win32. Boa sorte.
Contribuição e feedback
Eu apreciaria todo e qualquer feedback (construtivo) sobre este projeto e, obviamente, aceitaria o PRS. Sinta -se à vontade para arquivar problemas neste projeto se tiver algo para compartilhar.
Licenciamento
A maior parte deste projeto é divulgada sob a licença do MIT. O componente do provedor de credenciais é divulgado sob a licença MS-LPL porque é derivado do projeto Samplev2CredentialProvider.