# AD Bulk Tool Cross-platform Avalonia UI app for bulk Active Directory operations from a CSV file. ## Prerequisites - [.NET 8 SDK](https://dotnet.microsoft.com/download/dotnet/8.0) ### Windows ```powershell winget install Microsoft.DotNet.SDK.8 ``` ### Linux (Arch / CachyOS) ```bash sudo pacman -S dotnet-sdk-8.0 ``` ### Linux (Ubuntu / Debian) ```bash # Register Microsoft repository, then: sudo apt install dotnet-sdk-8.0 ``` ### macOS ```bash brew install dotnet-sdk-8.0 ``` ## Build & Run ```bash git clone https://gitea.mikisoq.cc/mikisoq/ADBulk.git cd ADBulk dotnet restore dotnet build dotnet run ``` On Windows, you can also open the folder in Visual Studio and run from there. ## Features - Load a CSV with any column structure - Auto-discover the AD domain and domain controller via DNS (click **Discover** or runs on startup) - Supports LDAP 389 (normal edits) and LDAPS 636 (password resets) - Built-in port/connectivity health check - Dry-run mode to validate before making changes - Actions: enable, disable, add/remove from group, set/force password change ## Quick start 1. Launch the app 2. Click **Discover** (or let it auto-detect on startup) 3. Enter your AD bind username and password 4. Click **Test ports + LDAP/LDAPS** to verify connectivity 5. Load a CSV 6. Select the username column and an action 7. Run **Preview** then **Dry run** before executing ## Safety - Test with a dedicated test OU and test accounts first - Keep **Dry run** enabled until you are sure the mapping is correct - Password reset actions require LDAPS and are blocked on plain LDAP - Do not use **Ignore cert errors** in production ## LDAPS certificate trust ### Linux Place your root CA certificate and run: ```bash # Arch / CachyOS sudo cp your-root-ca.crt /etc/ca-certificates/trust-source/anchors/ sudo trust extract-compat # Ubuntu / Debian sudo cp your-root-ca.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates ``` ### Windows If the domain controller certificate is already trusted by the domain, nothing extra is needed. Otherwise, import the root CA into the **Trusted Root Certification Authorities** store.