A PowerShell 7 automation and validation toolkit for Windows device build certification. This project ensures all required software, settings, and configurations are completed, validated, and documented for ITSM and compliance.
Warning
Extreme Alpha - Not even close to being intended for prime time
This repository is still under major development and testing, and isn't even close to being ready for prime time use. It's great that you're interested in it however, and feel welcome to let me know if you feel there's anything that could be done or enhanced as I get this ready.
- Project Overview
- Features
- Getting Started
- Usage
- Folder Structure
- Modules and Functions
- Testing
- Logging and Troubleshooting
- Accessibility
- Contributing
- Changelog
- License
- Contact and Support
WindowsBuildCertificate automates and validates the build process for Windows devices, ensuring all required steps are completed and documented. It supports pre- and post-deployment scripting, user prompts, and robust logging for ITSM workflows.
For more information, please see Project Overview.
- Modular PowerShell 7 scripts for pre/post build
- Device and configuration validation (naming, Secure Boot, BitLocker, PCR7, etc.)
- Company Portal, OneDrive, Office 365, Teams, Edge, and required app checks
- Intune and AD join validation
- Build certificate generation and export
- Robust logging, error handling, and accessibility
- Exportable scripts for OOBE and post-deployment integration
- Advanced CLI menu: tabbed navigation, paging, multi-select, real-time change tracking
- Robust, accessible, and extensible configuration management
- EN-AU spelling and accessibility compliance
For more information, please see Features.
For more information, please see Getting Started.
-
Clone the repository and review the documentation.
git clone https://github.com/twcau/WindowsBuildCertificate cd WindowsBuildCertificate
-
Run the entry script:
.\WindowsBuildCertificate.ps1
-
Configure your build steps and modules as needed. Information on menu options for navigation is available from Menu Structure.
-
Use the provided scripts to automate and validate your device builds.
- See
scripts/for main entry points. - See
modules/for reusable functions. - See
tests/for Pester and validation scripts. - Use numbers or comma-separated numbers to toggle options
- Use 'A' to select all, 'N' to select none, 'S' to save, 'R' to reload, 'Q' to quit
- Tabs and paging: use tab keys and F/B for navigation
- Changed options are marked with an asterisk (*) and red text
For more information, please see Menu Structure.
For more information, please see Folder Structure.
For more information, please see Modules and Functions.
- Pester tests for critical functions
- Manual and automated validation steps
For more information, please see Testing.
- Logs are written to
$env:TEMP/WindowsBuildCertificate.log - See KNOWNISSUES.md for troubleshooting
- If the “changed” state does not update, or you see error messages, ensure you are using the latest version
- For property errors, check that all object properties are initialised at creation
- For accessibility issues, ensure your terminal supports colour and screen reader cues
- All scripts and documentation follow accessibility and EN-AU standards
- All menu cues have non-colour fallbacks (e.g., asterisk for changed state)
- EN-AU spelling throughout
- Screen reader and keyboard navigation friendly
For more information, please see Accessibility.
For guidelines, please see Contributing.
For release history, please see Changelog.
MIT License. See LICENSE.
For support or to open a GitHub issue, please see Support.