feat(autopilot): implement hardware hash upload#175
Open
mchave3 wants to merge 24 commits into
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This pull request is the implementation track for the Autopilot hardware hash upload feature. It introduces the foundation documentation and the first implementation slice required to support a future WinPE hardware hash capture and Microsoft Graph upload workflow.
The feature goal is to complement the existing offline Autopilot JSON profile provisioning path with a second Autopilot mode: capture the hardware hash from WinPE during OS deployment and upload it to Windows Autopilot through a tenant app registration.
Implementation Plan
Phase 0: Foundation and feasibility
PCPKsp.dll, x64 and ARM64 scope, and retained diagnostics.Phase 1: Configuration model
AutopilotProvisioningModewith JSON profile and hardware hash upload modes.Phase 2: Security and tenant onboarding
Foundry OSD Autopilot Registration.Phase 3: Autopilot page UX
Phase 4: Media build and WinPE assets
WinPE-SecureStartupby default.PCPKsp.dll; it will be copied from the applied Windows image during deployment.Phase 5: Foundry.Deploy runtime branching
Phase 6: Hardware hash capture
PCPKsp.dllfrom the applied OSSystem32toX:\Windows\System32before capture.OA3.xml, extract serial number and hardware hash, and write troubleshooting CSV/log artifacts.PCPKsp.dllcopy/load failure as blocking for the Autopilot hash upload workflow.Phase 7: Microsoft Graph upload
Phase 8: Documentation and release guardrails
Current State In This PR
Completed:
Not included yet:
Merge Notes
Do not merge, squash, or auto-squash this PR automatically. The repository owner will handle merge strategy manually.
Testing
Phase 1 was validated before merge into this foundation branch with:
dotnet build .\src\Foundry.slnx -c Release -p:Platform=x64 --nologodotnet test .\src\Foundry.slnx -c Release -p:Platform=x64 --no-build --nologo