Skip to content

Grofei/Create-OwnCloudUser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

OwnCloud Benutzer-Verwaltung mit PowerShell

Übersicht

Dieses PowerShell-Skript ermöglicht das automatisierte Anlegen von Benutzern in OwnCloud 10.15.3 über die OCS (OwnCloud Sharing) Provisioning API.

Funktionen

  • ✅ 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

Voraussetzungen

  • 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)

Installation

  1. Lade die Skript-Dateien herunter
  2. Stelle sicher, dass die Ausführung von PowerShell-Skripten erlaubt ist:
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Verwendung

Interaktiver Modus (einzelne Benutzer)

.\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")

CSV-Import (mehrere Benutzer)

.\Create-OwnCloudUsers.ps1 -OwnCloudUrl "https://cloud.example.com" -AdminUser "admin" -AdminPassword "IhrAdminPasswort" -CsvPath "users.csv"

CSV-Datei Format

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

Spalten:

Spalte Erforderlich Beschreibung Beispiel
Username Ja Eindeutiger Benutzername mmueller
Password Ja Passwort für den Benutzer Passwort123!
DisplayName Nein Anzeigename Max Mustermann
Email Nein E-Mail-Adresse max@example.com
Groups Nein Gruppen (kommagetrennt) Mitarbeiter,Entwicklung
Quota Nein Speicherplatz 10 GB, unlimited

Quota-Werte

Gültige Quota-Werte:

  • unlimited - Unbegrenzt
  • 1 GB - 1 Gigabyte
  • 500 MB - 500 Megabyte
  • 10 GB - 10 Gigabyte
  • etc.

Beispiele

Beispiel 1: Einzelner Benutzer mit allen Optionen

.\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

Beispiel 2: Massenimport aus CSV

.\Create-OwnCloudUsers.ps1 `
    -OwnCloudUrl "https://cloud.firma.de" `
    -AdminUser "admin" `
    -AdminPassword "GeheimesPasswort123!" `
    -CsvPath "C:\Import\neue_mitarbeiter.csv"

Beispiel 3: Verwendung mit SecureString für Passwort

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 $password

Funktionsweise

Das Skript nutzt die OwnCloud OCS API (v1.php/cloud):

  1. Verbindungstest: Testet die Verbindung zur OwnCloud-Installation
  2. Benutzer erstellen: POST-Request an /ocs/v1.php/cloud/users
  3. Properties setzen: PUT-Requests für DisplayName, Email, Quota
  4. Gruppen zuweisen:
    • Prüft ob Gruppe existiert
    • Erstellt Gruppe bei Bedarf
    • Fügt Benutzer zur Gruppe hinzu

API-Endpunkte

Das Skript verwendet folgende OwnCloud API-Endpunkte:

  • GET /ocs/v1.php/cloud/users - Verbindungstest / Benutzerliste
  • POST /ocs/v1.php/cloud/users - Benutzer erstellen
  • PUT /ocs/v1.php/cloud/users/{userid} - Benutzer-Properties bearbeiten
  • GET /ocs/v1.php/cloud/groups - Gruppenliste abrufen
  • POST /ocs/v1.php/cloud/groups - Gruppe erstellen
  • POST /ocs/v1.php/cloud/users/{userid}/groups - Benutzer zu Gruppe hinzufügen

Sicherheitshinweise

Für Produktivumgebungen:

  1. 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()
  1. Passwörter: Speichere Admin-Passwörter niemals im Klartext. Verwende:

    • Windows Credential Manager
    • Azure Key Vault
    • Umgebungsvariablen
    • SecureString-Objekte
  2. CSV-Dateien: Schütze CSV-Dateien mit Benutzerdaten:

    • Verschlüssle sensible Daten
    • Setze restriktive Dateiberechtigungen
    • Lösche nach dem Import
  3. Logging: Implementiere Logging für Audit-Zwecke

Fehlerbehandlung

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.

Häufige Probleme

Problem: "Verbindung fehlgeschlagen"

Lösung:

  • Prüfe die OwnCloud-URL (mit/ohne Slash am Ende)
  • Stelle sicher, dass der Admin-Benutzer korrekt ist
  • Prüfe Firewall-Einstellungen

Problem: "Benutzer existiert bereits"

Lösung:

  • Der Benutzername ist bereits vergeben
  • Wähle einen anderen Benutzernamen

Problem: SSL-Zertifikatsfehler

Lösung:

  • Für Tests: Skript ignoriert SSL-Fehler automatisch
  • Für Produktion: Installiere gültiges SSL-Zertifikat

Erweiterungsmöglichkeiten

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

Lizenz

Dieses Skript ist frei verwendbar für private und kommerzielle Zwecke.

Support

Bei Fragen zur OwnCloud API:

Changelog

Version 1.0

  • Initiale Version
  • Unterstützung für OwnCloud 10.15.3
  • CSV-Import und interaktiver Modus
  • Basis-Benutzerverwaltung

About

Projekt zum Erstellen von Benutzerkonten per API in einer OwnCloud-Instanz

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published