Pre-deployment endpoint and network readiness validation for Azure Local.
Boots from iDRAC Virtual Media or USB — no installed OS, no domain join, no licensing required. Boot it on bare metal before you touch the deployment wizard. Know your environment is ready.
On boot, Start-AzlBeacon.ps1 presents an interactive menu. Choose your deployment path — it calls Start-AzlValidation.ps1 to run the applicable categories from these 6, all grounded in Microsoft and Dell source documents:
| # | Category | What it checks |
|---|---|---|
| 1 | Basic network | NIC up, IP assigned, gateway reachable |
| 2 | DNS | Forward/reverse lookups, TCP/UDP port 53, AD domain resolution |
| 3 | Active Directory ports | LDAP 389, LDAPS 636, Kerberos 88, RPC 135, DNS 53, SRV records (AD path only) |
| 4 | Azure endpoint sweep | TCP + HTTPS probe — Azure Local firewall requirements + EastUS HCI + Dell OEM endpoints |
| 5 | Environment Checker | Invoke-AzStackHciConnectivityValidation + Invoke-AzStackHciNetworkValidation (Microsoft's official validators) |
| 6 | Arc integration | Invoke-AzStackHciArcIntegrationValidation (optional — requires Azure device-code sign-in) |
Results land at X:\results\ on the WinPE RAM drive in JSON format. Copy off before reboot.
| Requirement | Install |
|---|---|
| Windows ADK | winget install Microsoft.WindowsADK |
| WinPE Add-on | winget install Microsoft.ADKPEAddon |
| PowerShell 7.4+ | winget install Microsoft.PowerShell |
| Administrator rights | DISM mount requires elevation |
| Internet access | For PS7 download + Save-Module (skippable — see air-gap build) |
Dell AX 16G NIC drivers are bundled in the repo at drivers/dell-ax/ (extracted from Dell SBE bundle 5.0.2603.1641). The build script picks them up automatically — no separate download or driver export required.
For non-Dell hardware, supply your own drivers:
.\src\Build-WinPEImage.ps1 -DriverPath C:\my-drivers!!! tip "No pre-configuration required" All environment values (DC IPs, DNS, gateway, domain FQDN) are collected interactively by the Beacon menu at boot. Just build the ISO and boot it.
# Minimal — downloads PS7, no drivers
.\src\Build-WinPEImage.ps1
# Recommended — pre-exported drivers, cached PS7 zip
.\src\Build-WinPEImage.ps1 -DriverPath C:\drivers -PS7ZipPath C:\downloads\PowerShell-7.4.6-win-x64.zip
# Build ISO + write USB simultaneously
.\src\Build-WinPEImage.ps1 -DriverPath C:\drivers -BuildUSB -UsbDriveLetter F
# Air-gapped (no internet)
Save-Module -Name AzStackHci.EnvironmentChecker -Path C:\staging\Modules # on internet-connected machine
.\src\Build-WinPEImage.ps1 -SkipModuleDownload -PS7ZipPath C:\downloads\PowerShell-7.4.6-win-x64.zip
# Dry run
.\src\Build-WinPEImage.ps1 -WhatIfOutput: src/output/azl-validate-<yyyyMMdd>.iso
- Log in to the iDRAC web console.
- Open Virtual Console → Virtual Media → Connect Virtual Media.
- Under Map CD/DVD, select the ISO and click Map Device.
- Reboot: power menu → one-time boot (F11) → Virtual CD/DVD.
- WinPE loads,
startnet.cmdruns, the Beacon menu appears.
To preserve results before reboot:
:: Map a network share inside WinPE
net use Z: \\<server>\<share>
xcopy X:\results Z:\beacon-results /E /Yazurelocal-beacon/
├── src/
│ ├── Build-WinPEImage.ps1 # Build script — creates the bootable ISO
│ ├── Start-AzlValidation.ps1 # Validation engine — runs on boot
│ ├── Convert-EndpointsToJson.ps1 # Regenerates endpoints.json from markdown sources
│ ├── startnet.cmd # WinPE boot entry point
│ └── config/
│ ├── validation-config.example.json # Template — copy and populate per engagement
│ └── endpoints.json # Azure endpoint list (pre-built, regenerate with Convert-*)
├── config/
│ └── endpoints/
│ ├── azurelocal-endpoints.md # Azure Local service endpoints (source for Convert-*)
│ ├── arc-endpoints.md # Arc agent + ARB endpoints
│ └── dell-endpoints.md # Dell SBE endpoints
├── docs/
│ └── index.md # Validation lifecycle and coverage matrix
└── ...
AzL Beacon is stage 1 of 5 in the Azure Local validation lifecycle:
| Stage | When | Tooling |
|---|---|---|
| 1 — Beacon (this tool) | Before OS install, bare hardware | Custom sweep + Invoke-AzStackHciConnectivityValidation |
| 2 — Post-OS, pre-registration | After Azure Stack HCI OS on nodes | Invoke-AzStackHciHardwareValidation, Invoke-AzStackHciSoftwareValidation, azcmagent check |
| 3 — Pre-deployment | After AD prep | Invoke-AzStackHciExternalActiveDirectoryValidation, Invoke-AzStackHciArcIntegrationValidation |
| 4 — Portal wizard | Nodes with answer file | Invoke-AzStackHciNetworkValidation -DeployAnswerFile |
| 5 — Deployment | Cloud deployment (integrated) | All validators re-run automatically |
Rebuild the ISO when:
src/Start-AzlValidation.ps1changessrc/config/validation-config.jsonchanges (engagement-specific values)src/config/endpoints.jsonchanges (regenerate withConvert-EndpointsToJson.ps1after endpoint list updates)- Driver versions change (re-export from node after firmware/driver updates)
- PowerShell 7 minor version bumps
See CONTRIBUTING.md.
MIT — see LICENSE.