Dieses PowerShell-Skript ermöglicht das automatisierte Anlegen von Benutzern in OwnCloud 10.15.3 über die OCS (OwnCloud Sharing) Provisioning API.
- ✅ Einzelne Benutzer interaktiv anlegen
- ✅ Mehrere Benutzer aus CSV-Datei importieren
- ✅ Anzeigename setzen
- ✅ E-Mail-Adresse hinterlegen
- ✅ Benutzer zu Gruppen hinzufügen (erstellt Gruppen automatisch)
- ✅ Speicher-Quota festlegen
- ✅ Verbindungstest zur OwnCloud-Installation
- ✅ Detaillierte Fehlerbehandlung und Statusmeldungen
- PowerShell 5.1 oder höher
- Netzwerkzugriff zur OwnCloud-Installation
- Administrator-Zugang zu OwnCloud
- OwnCloud 10.15.3 (sollte auch mit anderen 10.x Versionen funktionieren)
- Lade die Skript-Dateien herunter
- Stelle sicher, dass die Ausführung von PowerShell-Skripten erlaubt ist:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
.\Create-OwnCloudUsers.ps1 -OwnCloudUrl "https://cloud.example.com" -AdminUser "admin" -AdminPassword "IhrAdminPasswort"Das Skript fordert dann interaktiv zur Eingabe der Benutzerdaten auf:
- Benutzername
- Passwort
- Anzeigename (optional)
- E-Mail (optional)
- Gruppen (optional, kommagetrennt)
- Quota (optional, z.B. "5 GB" oder "unlimited")
.\Create-OwnCloudUsers.ps1 -OwnCloudUrl "https://cloud.example.com" -AdminUser "admin" -AdminPassword "IhrAdminPasswort" -CsvPath "users.csv"Die CSV-Datei muss folgendes Format haben (Trennzeichen: Semikolon):
Username;Password;DisplayName;Email;Groups;Quota
mmueller;Passwort123!;Max Mustermann;max.mustermann@example.com;Mitarbeiter,Entwicklung;10 GB
sschmidt;Sicher456#;Sarah Schmidt;sarah.schmidt@example.com;Mitarbeiter,Marketing;5 GB| Spalte | Erforderlich | Beschreibung | Beispiel |
|---|---|---|---|
| Username | Ja | Eindeutiger Benutzername | mmueller |
| Password | Ja | Passwort für den Benutzer | Passwort123! |
| DisplayName | Nein | Anzeigename | Max Mustermann |
| Nein | E-Mail-Adresse | max@example.com | |
| Groups | Nein | Gruppen (kommagetrennt) | Mitarbeiter,Entwicklung |
| Quota | Nein | Speicherplatz | 10 GB, unlimited |
Gültige Quota-Werte:
unlimited- Unbegrenzt1 GB- 1 Gigabyte500 MB- 500 Megabyte10 GB- 10 Gigabyte- etc.
.\Create-OwnCloudUsers.ps1 `
-OwnCloudUrl "https://cloud.firma.de" `
-AdminUser "admin" `
-AdminPassword "GeheimesPasswort123!"Dann im interaktiven Modus:
Benutzername: jdoe
Passwort: ****
Anzeigename (optional): John Doe
E-Mail (optional): john.doe@firma.de
Gruppen, kommagetrennt (optional): Mitarbeiter, IT-Abteilung
Quota, z.B. '5 GB' oder 'unlimited' (optional): 20 GB
.\Create-OwnCloudUsers.ps1 `
-OwnCloudUrl "https://cloud.firma.de" `
-AdminUser "admin" `
-AdminPassword "GeheimesPasswort123!" `
-CsvPath "C:\Import\neue_mitarbeiter.csv"Für mehr Sicherheit kannst du das Passwort auch als SecureString übergeben:
$securePassword = Read-Host "Admin-Passwort" -AsSecureString
$password = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($securePassword))
.\Create-OwnCloudUsers.ps1 `
-OwnCloudUrl "https://cloud.firma.de" `
-AdminUser "admin" `
-AdminPassword $passwordDas Skript nutzt die OwnCloud OCS API (v1.php/cloud):
- Verbindungstest: Testet die Verbindung zur OwnCloud-Installation
- Benutzer erstellen: POST-Request an
/ocs/v1.php/cloud/users - Properties setzen: PUT-Requests für DisplayName, Email, Quota
- Gruppen zuweisen:
- Prüft ob Gruppe existiert
- Erstellt Gruppe bei Bedarf
- Fügt Benutzer zur Gruppe hinzu
Das Skript verwendet folgende OwnCloud API-Endpunkte:
GET /ocs/v1.php/cloud/users- Verbindungstest / BenutzerlistePOST /ocs/v1.php/cloud/users- Benutzer erstellenPUT /ocs/v1.php/cloud/users/{userid}- Benutzer-Properties bearbeitenGET /ocs/v1.php/cloud/groups- Gruppenliste abrufenPOST /ocs/v1.php/cloud/groups- Gruppe erstellenPOST /ocs/v1.php/cloud/users/{userid}/groups- Benutzer zu Gruppe hinzufügen
- SSL-Zertifikate: Das Skript enthält Code zum Ignorieren von SSL-Zertifikatsfehlern für Testzwecke. Entferne diesen Abschnitt in Produktivumgebungen:
# Diesen gesamten Block entfernen:
if (-not ([System.Management.Automation.PSTypeName]'ServerCertificateValidationCallback').Type) {
# ... Code zum Ignorieren von SSL-Fehlern ...
}
[ServerCertificateValidationCallback]::Ignore()-
Passwörter: Speichere Admin-Passwörter niemals im Klartext. Verwende:
- Windows Credential Manager
- Azure Key Vault
- Umgebungsvariablen
- SecureString-Objekte
-
CSV-Dateien: Schütze CSV-Dateien mit Benutzerdaten:
- Verschlüssle sensible Daten
- Setze restriktive Dateiberechtigungen
- Lösche nach dem Import
-
Logging: Implementiere Logging für Audit-Zwecke
Das Skript gibt detaillierte Statusmeldungen aus:
- ✓ Grün: Erfolgreiche Operationen
- ✗ Rot: Kritische Fehler
- → Gelb: Warnungen oder Zusatzinformationen
Bei Fehlern wird die Operation fortgesetzt (bei CSV-Import), sodass andere Benutzer trotzdem erstellt werden können.
Lösung:
- Prüfe die OwnCloud-URL (mit/ohne Slash am Ende)
- Stelle sicher, dass der Admin-Benutzer korrekt ist
- Prüfe Firewall-Einstellungen
Lösung:
- Der Benutzername ist bereits vergeben
- Wähle einen anderen Benutzernamen
Lösung:
- Für Tests: Skript ignoriert SSL-Fehler automatisch
- Für Produktion: Installiere gültiges SSL-Zertifikat
Das Skript kann erweitert werden um:
- Benutzer deaktivieren/löschen
- Benutzerinformationen abfragen
- Passwörter ändern
- Gruppen-Management
- Export bestehender Benutzer
- Subadmin-Rechte vergeben
- App-Passwörter erstellen
Dieses Skript ist frei verwendbar für private und kommerzielle Zwecke.
Bei Fragen zur OwnCloud API:
- Dokumentation: https://doc.owncloud.com/server/admin_manual/configuration/user/user_provisioning_api.html
- OwnCloud Community: https://central.owncloud.org/
- Initiale Version
- Unterstützung für OwnCloud 10.15.3
- CSV-Import und interaktiver Modus
- Basis-Benutzerverwaltung