Skip to content

twcau/WindowsBuildCertificate

Repository files navigation

WindowsBuildCertificate

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

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.

Features

  • 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.

Getting Started

For more information, please see Getting Started.

  1. Clone the repository and review the documentation.

    git clone https://github.com/twcau/WindowsBuildCertificate
    cd WindowsBuildCertificate
  2. Run the entry script:

    .\WindowsBuildCertificate.ps1
  3. Configure your build steps and modules as needed. Information on menu options for navigation is available from Menu Structure.

  4. Use the provided scripts to automate and validate your device builds.

Usage

  • 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.

Folder Structure

For more information, please see Folder Structure.

Modules and Functions

For more information, please see Modules and Functions.

Testing

  • Pester tests for critical functions
  • Manual and automated validation steps

For more information, please see Testing.

Logging and Troubleshooting

  • 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

Accessibility

  • 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.

Contributing

For guidelines, please see Contributing.

Changelog

For release history, please see Changelog.

License

MIT License. See LICENSE.

Contact and Support

For support or to open a GitHub issue, please see Support.