Onboard
AD onboarding tool, Revelstoke Mountain Resort
Turns hiring-form responses into Active Directory accounts: a PowerShell engine with a browser front end, and a dry run before anything is created.
- Role
- Built for my own team at Revelstoke Mountain Resort
- Year
- 2026
- Runs on
- Runs on a domain-joined Windows workstation. The web app listens on localhost only.
Problem
New staff at the resort come in through a hiring form. Each account used to be built by hand in Active Directory Users and Computers: name, OU, department, manager, groups and start date. Seasonal hiring means many of these land at once.
What I built
- A PowerShell tool of about 2,500 lines that reads the form's response workbook, shows a dry run of every account it would create, then creates them one at a time with a confirmation for each.
- OUs, baseline groups and the department mapping live in a config file, not in the code, and a setup check confirms that every OU and group exists before a run.
- Accounts waiting for their start date are tracked until they're switched on. Every run writes a CSV record of what was created.
- The same menu handles everyday account work outside the form: find, edit, disable, enable, groups, proxy addresses and password resets.
- A browser front end that listens on localhost only and asks for a PIN. It calls the same PowerShell library, and adds Microsoft 365 guest invites through Microsoft Graph and Exchange Online tasks.
Stack
PowerShell, Active Directory, Microsoft Graph, Exchange Online, Python, ImportExcel
Outcome
Creating accounts from the form is now a dry run, then one confirmation per person, with a CSV record of every run.
Proof
Runs on a domain-joined Windows workstation. The web app listens on localhost only.