# Enrolamiento obligatorio de clientes SGU El flujo administrado instala y valida el Credential Provider **antes** de ejecutar `Add-Computer`. La pertenencia al dominio es el último cambio; si falta el runtime, un certificado, el registro COM, la directiva predeterminada o la salud mTLS del broker, el script rechaza la unión. Una cuenta administrativa todavía puede modificar Windows fuera de este flujo. Por eso el enrolamiento también instala la tarea `SGU-CredentialProvider-EnrollmentGuard`, ejecutada como `SYSTEM` al iniciar y diariamente. La tarea conserva un paquete local protegido, repara el registro o los binarios y vuelve a habilitar RDP/WinRM en equipos unidos al dominio. No guarda contraseñas. ## 1. Preparar el nuevo Windows Enterprise En la VM nueva, antes de unirla al dominio: 1. copiar `artifacts\credential-provider` y todos los scripts de `scripts`; 2. copiar el instalador offline más reciente de .NET 10 x64; 3. crear el certificado cliente no exportable: ```powershell powershell.exe -NoProfile -ExecutionPolicy Bypass ` -File .\New-LabCertificate.ps1 ` -Role CredentialProviderClient ``` Copiar únicamente el `.cer` público al broker y registrarlo: ```powershell powershell.exe -NoProfile -ExecutionPolicy Bypass ` -File .\Register-SguClientCertificate.ps1 ` -CertificatePath C:\SGUDeploy\new-client.cer ``` Exportar únicamente el certificado público actual del broker e importarlo en el cliente con `Import-LabPeerCertificate.ps1`. Nunca copiar claves privadas. ## 2. Instalar, comprobar y unir en una sola operación Ejecutar como administrador local dentro de la VM nueva. La credencial del dominio se solicita de forma segura si no se proporciona como objeto `PSCredential`: ```powershell powershell.exe -NoProfile -ExecutionPolicy Bypass ` -File .\Enroll-SguDomainClient.ps1 ` -PublishPath C:\SGUDeploy\credential-provider ` -BrokerEndpoint https://sgu-auth.lci.lasalle.mx:8443/v1/authenticate ` -ClientCertificateThumbprint CLIENT_CERT_THUMBPRINT ` -ServerCertificateThumbprint SERVER_CERT_THUMBPRINT ` -DotNetRuntimeInstallerPath C:\SGUDeploy\dotnet-runtime-10-win-x64.exe ` -NewComputerName LAB-W11-001 ``` Orden de la transacción: 1. instala .NET y los binarios versionados; 2. registra COM y configura SGU como proveedor predeterminado; 3. instala el guard de autorreparación; 4. exige health mTLS del broker y ejecuta las comprobaciones locales; 5. configura DNS del dominio; 6. sólo entonces ejecuta `Add-Computer` y reinicia; 7. al arrancar, el guard habilita RDP, NLA y WinRM y comprueba el estado final. La directiva de Windows **Assign a default credential provider** selecciona SGU por defecto. No se instala ningún filtro: el proveedor de contraseña de Microsoft permanece disponible para cuentas creadas manualmente y recuperación. ## 3. Verificación y reparación ```powershell .\Test-SguClientEnrollment.ps1 ` -RequireDomainJoined ` -RequireRemoteAccess ` -RequireBrokerHealth ` -Enforce Get-ScheduledTask -TaskName SGU-CredentialProvider-EnrollmentGuard Start-ScheduledTask -TaskName SGU-CredentialProvider-EnrollmentGuard ``` Un resultado válido exige simultáneamente binario y registro COM, configuración, certificados, .NET 10, proveedor SGU predeterminado y proveedor de contraseña de Microsoft preservado. El script de reparación se encuentra en `C:\ProgramData\SGU\Enrollment` con ACL exclusiva para `SYSTEM` y administradores. ## 4. Experiencia de LogonUI El proveedor usa un mosaico genérico dedicado, no una credencial asociada al SID anónimo de **Other user**. Windows puede mostrar ahora la imagen institucional y la etiqueta `Universidad La Salle · Acceso SGU`, además del encabezado `Acceso institucional SGU`. El orden visual exacto de los iconos de opciones lo decide Windows; lo administrable y exigido es cuál aparece seleccionado por defecto. Referencias de Microsoft: - -