Alle vorhandenen Profile für Administratoren lesbar machen

Dieses Thema Alle vorhandenen Profile für Administratoren lesbar machen im Forum "Windows Server-Systeme" wurde erstellt von Martin von Wittich, 29. Aug. 2007.

Thema: Alle vorhandenen Profile für Administratoren lesbar machen So, ich mal wieder. Lang ist's her :> Ich will knapp 200 Profile von einem Windows-Server auf einen Linux-Server...

  1. So, ich mal wieder. Lang ist's her :>

    Ich will knapp 200 Profile von einem Windows-Server auf einen Linux-Server kopieren; zweiterer soll ersteren in absehbarer Zeit ersetzen. Praktischerweise wurden die meisten Profile jedoch so angelegt, dass der Benutzer selber Besitzer des Profils ist, und die Admins nicht reinschauen dürfen. Mein erster Gedanke war: irgendwie das SeBackupPrivilege aktivieren, um sich an den blöden Permissions vorbeizumogeln. Ideal wäre es, einfach per cygwin+rsync+SeBackupPrivilege die Profile auf den Linux-Server zu übertragen. Leider reicht es wohl nicht, einfach nur dem Prozess irgendwie das SeBackupPrivilege zu geben und der Rest klappt dann schon, nein, so ziemlich jeder API-Aufruf, der von Cygwin durchgeführt wird, muss ebenfalls bescheid wissen, dass SeBackupPrivilege verwendet werden soll. Da ich jetzt gerade keine Lust habe, Cygwin neuzuschreiben, fällt mir nur noch eine Alternative ein...

    Ein Script muss her, dass in einer for-Schleife alle Profilordner durchgeht, den Besitz aller Ordner übernimmt, die Administratoren und den Benutzer zur ACL hinzufügt, und dann den Besitz an den Benutzer wieder zurückgibt. Bevor ich das jetzt selberschreibe... hat sowas schon mal jemand gemacht? :)

    Martin
     
  2. Hi,

    wieso nicht per GPO die Option setzen, dass Administratoren den Benutzerprofilen hinzugefügt werden sollen?

    Gruß
    Sven
     
  3. Wird das dann noch nachträglich behoben, oder gilt das nur für neue Profile? Für neue Profile würde mir ja nichts mehr nützen, da der Server eh wegkommt.
     
  4. Hi,

    sobald die GPO zieht - also sprich bei der nächsten Nutzeran- bzw. Abmeldung.
    Daher _KANN_ es natürlich eine Weile dauern, bis sich alle User einmal an-und abgemeldet haben.

    Gruß
    Sven
     
  5. IMHO funktioniert das nicht nachträglich... Die Berechtigigung muss bereits bei der Erzeugung des Profils via GPO erteilt sein.
     
  6. Richtig, nachträglich funzt das nicht.
     
  7. Ich hab mal angefangen, ein Script zu schreiben, dass die Berechtigungen für einen einzelnen Ordner korrigiert.

    Code:
    @echo off
    
    REM Besitz übernehmen
    REM /a: Administratoren den Besitz geben
    REM /r: rekursiv
    REM /d J: Ja, ich bin sicher ;)
    REM /f: Dateiname, %1: übergebener Benutzername
    ECHO Uebernehme den Besitz von %1...
    TAKEOWN /a /r /d J /f %1>nul
    
    REM ACL durch Administratoren:Vollzugriff ersetzen
    ECHO Setze Vollzugriff fuer Administratoren...
    ICACLS %1 /GRANT:R Administratoren:F /T>nul
    
    REM ACL-Eintrag fuer den Benutzer
    ECHO Setze Vollzugriff fuer %1...
    ICACLS %1 /GRANT:R %1:F /T>nul
    
    REM Besitz zurueckgeben
    ECHO Besitz zurueckgeben...
    ICACLS %1 /setowner %1 /T
    
    Theoretisch würde das wunderbar funktionieren, praktisch scheitert es aus einen mir völlig unerklärbaren Grund an icacls /setowner:

    Code:
    PS D:\Profile> icacls Albert.Einstein /setowner albert.einstein /t
    Albert.Einstein: Zugriff verweigert
    0 Dateien erfolgreich verarbeitet, bei 1 Dateien ist ein Verarbeitungsfehler aufgetreten.
    
    Tja... was nützt mir die ach-so-tolle PowerShell, wenn der Rest des Systems scheiße ist? :/
    Ich glaub, ich geh gleich ins Bett und träume von chown.

    Martin
     
  8. Hm, denk ich mir, auch wenn du das alles in die PS eintippst, nutzt du ja nicht irgendwelche sonstige Funktionalität davon. Also, gesagt, getan:

    Code:
    $acl=get-acl albert.einstein
    $act = New-Object system.security.principal.ntaccount(albert.einstein)
    $acl.setowner($act)
    
    PS D:\Profile> $acl | format-list
    Path  : Microsoft.PowerShell.Core\FileSystem::D:\Profile\albert.einstein
    Owner : GSS-OS\Albert.Einstein
    Group : GSS-OS\Domänen-Benutzer
    Access : VORDEFINIERT\Administratoren Allow FullControl
         GSS-OS\Albert.Einstein Allow FullControl
    Audit :
    Sddl  : O:S-1-5-21-1547161642-1450960922-725345543-2167G:DUD:PAI(A;OICI;FA;;;BA)(A;OICI;FA;;;S-1-5-21-1547161
         642-1450960922-725345543-2167)
    
    PS D:\Profile> set-acl -aclobject $acl -path albert.einstein
    Set-Acl : Die Sicherheits-ID darf nicht der Besitzer dieses Objekts sein.
    At line:1 char:8
    + set-acl <<<< -aclobject $acl -path albert.einstein
    
     
  9. Ich hab noch keine Lösung, aber zumindest die Ursache gefunden: http://mikedimmick.blogspot.com/2005/02/how-to-set-owner-of-object-in-windows.html
    Kurz zusammengefasst: auch wenn ich als Admin das Privileg zum Setzen von Besitzern zur Verfügung habe (SE_RESTORE_NAME), müssen die Anwendungen dieses Privileg auch aktivieren, ansonsten darf ich als Besitzer nur mich selbst setzen. Die grafische Oberfläche tut dies, icacls und die PowerShell offensichtlich nicht. Klasse.
     
  10. oh man, ich habs geschafft.

    Code:
    @echo off
    
    ECHO Uebernehme den Besitz von %1...
    TAKEOWN /a /r /d J /f %1>nul
    
    ECHO Aktiviere Vererbung...
    ICACLS %1 /RESET /T>NUL
    
    ECHO Setze Vollzugriff fuer %1...
    REM nicht rekursiv, da alle Objekte die Einstellungen dieses Ordner erben
    ICACLS %1 /GRANT %1:(CI)(OI)(F)>nul
    
    ECHO Besitz zurueckgeben...
    SETACL -on D:\Profile\%1 -ot file -actn setowner -ownr n:%1;s:n -rec cont_obj -silent
    
    Benötigt SetACL, scheint wohl die einzige Software zu sein, die SE_RESTORE_NAME nutzt. Dass die Powershell das nicht macht, betrachte ich als Bug.
     
Die Seite wird geladen...

Alle vorhandenen Profile für Administratoren lesbar machen - Ähnliche Themen

Forum Datum
Mein PC stürzt bei allen Spielen ab Windows 10 Forum 4. Dez. 2016
blocked events sony windows installer Windows 7 Forum 4. Aug. 2016
Win 7 & 10 Parallel aber getrennt voneinander Software: Empfehlungen, Gesuche & Problemlösungen 6. Juni 2016
Indizierung findet nicht alle Dateien Windows 7 Forum 17. Apr. 2016
dllhost.exe wird alle 5 sec beendet und neu gestartet Windows 7 Forum 17. Apr. 2016