Browser Mode (Recommended):
npm run dev:viteThen open: http://127.0.0.1:5173
Desktop Mode (Electron):
npm run devSee How to Run for detailed instructions.
Complete documentation is now organized in the docs/ directory!
- π Documentation Index - Complete documentation catalog
- π Getting Started - New user guide
- β¨ Features - Feature documentation
- π Guides - Configuration and deployment guides
- π§ Technical Docs - Implementation details
- π¨ UI/UX Docs - Branding and design guidelines
- π Status Reports - Implementation status and testing
Tip: Start with the Documentation Index to find what you need!
ADhelper is a modern web/desktop application that combines:
- Active Directory Management - PowerShell-based user onboarding automation
- Jira Ticket Management - Find and update stale tickets automatically
Built with React, TypeScript, Material-UI, and Electron. Works in both browser and desktop modes!
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ADhelper Workflow β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββ
β Enter Username β
ββββββββββ¬βββββββββ
β
βΌ
ββββββββββββββββββββββββββ
β 1. Add to 10 Groups β β
β β’ All_Employees β
β β’ US Employees β
β β’ USEmployees β
β β’ Password Policy β
β β’ Intune Enrollmentβ
β β’ Help Desk Access β
β β’ RehrigVPN β
β β’ RehrigVPN_Distro β
β β’ GeneralDistrib. β
β β’ Selfservice β
ββββββββββ¬ββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββ
β 2. Configure Proxies β βοΈ
β β’ 6 email addressesβ
β β’ SIP address β
ββββββββββ¬ββββββββββββββββ
β
βΌ
βββββββββββ
β Done! β π
βββββββββββ
Time per user: ~2-3 minutes | Manual steps saved: ~15-20 minutes
- π Secure Authentication: Login with admin credentials (a- account) for Active Directory
- π₯ Automatic Group Assignment: Adds users to 10 standard employee groups
- βοΈ Proxy Address Configuration: Automatically configures all required email proxy addresses
- π Account Management: Password reset, account unlock, MFA group removal, and user creation
- π¦ Contractor Account Processing: Extend contractor accounts with proper group and proxy setup
- π Detailed Reporting: Comprehensive logging and status summaries
β οΈ Smart Error Handling: Graceful error recovery with helpful troubleshooting tips
- β‘ Parallel Processing: 60-80% faster processing with configurable concurrent jobs (1-20)
- π¦ Bulk User Processing: Process multiple users via CSV, comma-separated, or multiline input with mode selection (All/Groups Only/Proxies Only)
- π Contractor Account Processing: Move users to Non-Rehrig OU, set expiration, apply groups and proxies
- π MFA Blocking Removal: Remove users from MFA blocking group with email-format support
- π‘οΈ Role-Based Access Control: Admin/Operator roles with permission-gated operations
- π Audit Logging: All sensitive operations logged to structured audit trail
- βοΈ Externalized Configuration: Groups, proxies, and contractor settings in
config/adhelper-config.json - π Real-time Progress Tracking: Native Electron progress bars for all operations
- π€ Voice Commands: Optional voice-controlled interface for hands-free operation (PowerShell)
- π Secure Credential Storage: Windows Credential Manager integration
- Single User: 45-60s β 12-20s (70-75% faster with parallel processing)
- Bulk Users (10): 8-10 min β 2-3 min (70-80% faster)
- Group Assignment: 30-45s β 8-15s (60-80% faster)
- Proxy Configuration: 10-15s β 3-5s (70-80% faster)
- Windows 10/11 or Windows Server 2016+
- PowerShell 5.1 or higher
- RSAT: Active Directory Tools (installed via Windows Features)
- Admin credentials for Active Directory (a- account)
-
Clone or download this repository:
git clone https://github.com/NModlin/ADscripts.git cd ADscripts
-
Run as Administrator (for automatic module installation):
Right-click PowerShell β "Run as Administrator" .\ADhelper.ps1
-
Follow the prompts - the script will automatically install any missing modules!
If RSAT is not installed:
# Install RSAT (Windows 10/11)
# Settings β Apps β Optional Features β Add a feature β "RSAT: Active Directory Domain Services and Lightweight Directory Services Tools"
# Or via PowerShell (Windows Server)
Install-WindowsFeature RSAT-AD-PowerShell-
Launch the script:
.\ADhelper.ps1
-
Module Check: Script automatically checks and installs required modules
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β Checking and Installing Required Modules... β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ Checking Active Directory module... β Active Directory module is already installed and loaded. -
Login: Enter your admin credentials (e.g.,
a-nmodlin) -
Main Menu:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β AD HELPER - Group & Proxy Manager β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ [1] Process User (Validation β Groups β Proxies) [2] Process Bulk Users (CSV or Array) π [3] Reset User Password [4] Unlock User Account [5] Create New User Account [6] Voice Commands Mode π€ [7] Toggle Parallel Processing [8] Settings & Configuration [9] Remove from MFA Blocking Group π [10] Voice Commands Test & Diagnostics π§ [11] Process Contractor Accounts π [12] Exit -
Process a User: Select option 1 and enter the user's sAMAccountName or email
The script performs operations in this order:
-
β Adds to 10 Standard Groups:
- All_Employees
- US Employees (Distribution List)
- USEmployees (Security Group)
- Password Policy - Standard User No Expiration
- Intune User Enrollment
- Help Desk Access
- RehrigVPN
- RehrigVPN_Distro
- GeneralDistribution
- Selfservice
-
β Configures Proxy Addresses:
- smtp:user@rehrigpenn.com
- smtp:user@Rehrigpacific.com
- smtp:user@Rehrig.onmicrosoft.com
- smtp:user@Rehrig.mail.onmicrosoft.com
- SMTP:user@Rehrig.com (primary)
- SIP:user@Rehrig.com
Enter sAMAccountName or Email: jsmith
β
Found user: John Smith
UPN: jsmith@rehrig.com
Account Status: Enabled β
=== Adding User to Standard Groups ===
β
Added to: CN=All_Employees,OU=Adaxes Managed,OU=Security Groups,DC=RPL,DC=Local
β
Added to: CN=US Employees,OU=Distribution Lists,DC=RPL,DC=Local
βΉοΈ Already member of: CN=USEmployees,OU=Adaxes Managed,OU=Security Groups,DC=RPL,DC=Local
β
Added to: CN=Password Policy - Standard User No Expiration,OU=Security Groups,DC=RPL,DC=Local
β
Added to: CN=Intune User Enrollment,OU=Security Groups,DC=RPL,DC=Local
β
Added to: CN=Help Desk Access,OU=Security Groups,DC=RPL,DC=Local
Group Membership Summary:
Groups added: 5
Already member: 1
Failed: 0
=== Fixing Proxy Addresses ===
β
Added: smtp:jsmith@rehrigpenn.com
β
Added: smtp:Jsmith@Rehrigpacific.com
βΉοΈ Already has: smtp:Jsmith@Rehrig.onmicrosoft.com
β
Added: smtp:Jsmith@Rehrig.mail.onmicrosoft.com
βΉοΈ Already has: SMTP:Jsmith@Rehrig.com
β
Added: SIP:Jsmith@Rehrig.com
Proxy Address Summary:
Addresses added: 4
Already configured: 2
Failed: 0
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β FINAL SUMMARY FOR: John Smith β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Operation Results:
Groups: β
Success
Proxies: β
Success
π All operations completed successfully!
Groups, proxy templates, and contractor settings are now in config/adhelper-config.json:
{
"standardGroups": [ "CN=All_Employees,..." ],
"proxyAddressTemplates": [
{ "prefix": "smtp", "domain": "rehrigpenn.com", "casing": "lower" },
{ "prefix": "SMTP", "domain": "Rehrig.com", "casing": "titleCase" }
],
"contractor": {
"targetOU": "OU=Non-Rehrig,OU=Accounts,DC=RPL,DC=Local",
"displayNameSuffix": " - Contractor",
"extensionYears": 1
}
}The config module (scripts/ADConfig.psm1) searches: user override β dev repo β installed app β hardcoded fallback.
Edit the standardGroups array in config/adhelper-config.json, or the $standardGroups array in ADhelper.ps1 (fallback).
Edit proxyAddressTemplates in config/adhelper-config.json, or the Get-ExpectedProxyAddresses function in ADhelper.ps1 (fallback).
PowerShell logs β timestamped files per session:
ADHelper-Log-2025-11-19_12-36-52.txt
Electron logs (in %APPDATA%/adhelper-app/logs/):
adhelper-main.logβ Main process log (5MB rotation)adhelper-audit.logβ Sensitive operation audit trail (10MB rotation)adhelper-ps.logβ PowerShell structured JSON log (5MB rotation)
Logs include:
- All operations performed with structured JSON metadata
- Success/failure status and error details
- Timestamps for each action
- Audit trail for user creation, role changes, and credential access
The script includes comprehensive error handling for common scenarios:
β User 'jsmth' not found in Active Directory.
π‘ Tips:
- Check the spelling of the username
- Make sure the user account has been created
- Try using the full sAMAccountName (e.g., 'jsmith' not 'John Smith')
β οΈ This account is currently disabled. Some operations may fail.
Do you want to continue anyway? (Y/N)
- Credentials: Admin credentials stored securely via Windows Credential Manager
- RBAC: Role-based access control with Admin/Operator tiers restricts sensitive operations
- Audit Logging: All sensitive operations logged to structured audit trail with timestamps
- Logging: Main and PowerShell structured JSON logs; no passwords in logs
- Permissions: Requires appropriate AD admin rights (a- account)
- Scope: Only modifies specified users - no bulk operations without confirmation
- Input Validation: All user inputs are validated before processing
- PowerShell Security: Scripts executed via
-File(never-Command) to prevent injection - Electron Security: Context isolation enabled, node integration disabled, CSP headers enforced
- Rate Limiting: IPC handlers protected against rapid repeated invocations
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
NateDog (NModlin)
- GitHub: @NModlin
- Built for streamlining user onboarding processes
- Designed to reduce manual configuration errors
- Saves IT administrators significant time on repetitive tasks
If you encounter any issues or have questions:
- Check the error messages - they include helpful troubleshooting tips
- Review the log files for detailed operation history
- Open an issue on GitHub with the error details
This repository also includes standalone utility scripts:
A focused script for auditing and fixing proxy addresses for existing users. Useful for:
- Bulk proxy address audits
- Fixing proxy addresses without modifying groups or licenses
- Generating proxy audit reports
A standalone script for adding users to standard employee groups. Useful for:
- Adding groups without license assignment
- Batch group membership operations
- Quick group additions
Note: For new user onboarding, ADhelper.ps1 is recommended as it combines all operations in the correct order.
β‘ Quick Start: .\ADhelper.ps1 (Run as Administrator for best experience)
π― Recommended for: New user onboarding, complete user setup, automated provisioning