I will automate active directory user tasks with powershell
About this Gig
Bulk user work in Active Directory shouldn't cost you an afternoon of clicking. I recently created 500 users from a single CSV in 41 seconds with a run log accounting for every account.
I write PowerShell for AD and Microsoft 365 user lifecycle work: bulk creation, attribute updates, licence assignment, group membership, onboarding and offboarding.
What you get:
- A parameterised .ps1 script, no hardcoded values, no paths pointing at my machine
- A CSV template matched to your exact fields
- Error handling with a per-row run log
- A - dry run so you can see the result before anything touches production
- A README your team can follow without me
Why me: I work in real AD and Entra ID (Azure AD) environments - including non-domain-joined machines, Exchange Online PowerShell, and Microsoft Graph permission limits. I've already hit the edge cases your script is going to hit.
Send me your CSV headers and one sentence on the end state you want. I'll tell you the right package and delivery time before you order.
Operating system:
Windows
Also delivering:
Documentation
•
Multiple revisions
My Portfolio
FAQ
I'm not domain-joined / we're cloud-only. Does this still work?
Yes. Cloud-only tenants are handled through Microsoft Graph and Exchange Online PowerShell rather than the AD module. Tell me which you're on and I'll build for that environment specifically. It changes the approach, not the deliverable.
Will I need to give you access to our tenant?
No. I build against a test environment and deliver a script you run yourself. You keep full control of credentials and permissions. If you'd like, I'll list the exact roles and Graph scopes the script needs so your admin can review before anything runs.
What if it breaks on a row?
The script logs the failure, keeps going, and gives you a summary at the end listing which rows succeeded and which didn't, with the reason. You re-run only the failed rows.
Can you modify a script I already have?
Yes -- send it over and I'll quote from there. Fixing an existing script is usually a Basic or Standard.

