Files
ADBulk/README.md
T

89 lines
2.1 KiB
Markdown

# AD Bulk Tool
Cross-platform Avalonia UI app for bulk Active Directory operations from a CSV file.
## Features
- Load a CSV with any column structure
- Auto-discover the AD domain and domain controller via DNS (click **Discover** or runs on startup)
- Built-in port/connectivity health check (DNS, TCP 389, TCP 636, LDAP bind, LDAPS bind)
- Dry-run mode to validate before making changes
- Actions: enable, disable, add/remove from group, set/force password change
- LDAP 389 for normal edits; LDAPS 636 required for password resets
## 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
```
## Install & 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.
## 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
```bash
# Arch / CachyOS — place root CA and run:
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.