Ordner Zugriffsrechte per CMD oder PS bearbeiten

Orihalcon

Cadet 1st Year
Registriert
Juni 2014
Beiträge
15
Hallo Leute,

ich hoffe hier finde ich ein paar Fachkräfte, die sich besser mit den Funktionsmöglichkeiten von CMD und PS auskennen, denn mir fehlt da leider noch der durchblick, außer das PS deutlich mehr kann als CMD und vermutlich vielleicht auch das was ich erreichen will.

Der Grund warum ich diesen Beitrag schreibe:
Ich hab seit neuem neue Hardware von Gaming Logitech und nutze dafür das neue GHUB. Die Software hat eine folgenschwere programmtechnische Macke, dass diese nicht mehr startet, wenn ein bestimmter Ordner existiert in dem sich Inhalt befindet.

Die Lösung war nun für mich, den Subordner "integrations" zu löschen, diesen neu zu Erstellen, in den Erweiterten Sicherheitseinstellungen die Vererbung zu deaktivieren und für alle Benutzer die Schreibrechte zu entfernen und nur Lesen zuzulassen.
Die Gruppen SYSTEM, Administratoren und mein Benutzer.
Witzigerweise kann ich die beiden Gruppen auch entfernen und nur meinen User mit Leserechten belassen, das juckt die Software kein Stück und sie startet.

Hin und wieder hängt sie sich Software zwar immer noch auf im Dienst tut es aber dank dieser Maßnahme nicht bei jedem Start des Programmes und ist somit deutlich erträglicher.

Hier nun das, was ich gerne als Script für CMD oder PS gerne hätte (vermutlich PS bietet da bessere Funktionen für?):
OS: Windows 10 1903
Arbeitspfad: %LocalAppData%\LGHUB\integrations
Gruppen: System, Administratoren
Benutzer: $User

Schritt 1:
Löschen und Erstellen des Ordners:
rmdir %LocalAppData%\LGHUB\integrations​
mkdir %LocalAppData%\LGHUB\integrations​
Deaktivieren der Vererbung mit kopieren der ACL:
icacls %LocalAppData%\LGHUB\integrations /inheritance:d​

Schritt 2:
Entfernen der Schreibrechte aller bestehenden Benutzer und Gruppen
??????​

Schritt 3:
Profit.

Schritt 1 funktioniert schonmal und mir fehlt nur noch Schritt 2. Da weiß ich leider nicht die Befehle um für die genannten Gruppen und Benutzer die Schreibrechte zu entfernen. Verboten werden müssen sie nicht, es reicht aus sie zu entfernen.

Vielen Dank schonmal im voraus für die Mühen und ich hoffe jemand hat die passende Lösung. :)

Gruß Ori
 
Habe ich erklärt warum ich das so will.
Lies dich schlau. :)

Ja ok, ich krieg halbwegs verständnis für das icacals aber so ganz blick ich da nicht durch.
Ich habs mit Grant probiert, da passiert so gar nix, wenn ich deny mache dann erstellt er einen neuen eintrag Anstatt den angegeben User zu bearbeiten, mach ich remove kickt er mir die Gruppe oder User raus, was ich auch nicht wollte.
Welcher Parameter ist denn damit ich nur die Schreibrechte entferne, ohne neue User einzufügen?

Wenn ich das probiere, dann passiert halt gar nix. Irgendwie frisst er's nicht richtig.
icacls integrations /grant:r System:RX
Bearbeitete Datei: integrations
1 Dateien erfolgreich verarbeitet, bei 0 Dateien ist ein Verarbeitungsfehler aufgetreten.
 
Zuletzt bearbeitet:
Vergiß Batch, nimm PowerShell.

Dort gibt es direkten Zugriff auf die ACLs mit *-Acl und das Ganze ist sogar sprechend. Kein Grund, sich mit icacls herumzuärgern. Plus, man kann auf .NET zugreifen und hat dafür die MSDN als Dokumentation zur Verfügung.

Vererbte Berechtigungen lassen sich nicht entfernen. Sie sind vererbt, nicht wirklich "da". Man könnte sie überschreiben - per Verweigern --- sollte man aber nicht machen, weil wenn was dazukommt, darf derjenige doch wieder. Ergo, wie ja schon festgestellt, zunächst die Vererbung deaktivieren und in dem Kontext die bisher vererbten Berechtigungen entfernen.

Note 1: SYSTEM und Administratoren haben "well-known SIDs", sprich vordefinierte SIDs, die man einfach nehmen und verwenden kann.

Note 2: "Mein Benutzer" ist immer eine schlechte Idee. Steck ihn in eine eigene Gruppe und gib dieser Gruppe die benötigten Berechtigungen. An der Stelle reicht es ja, diese Gruppe auf dem "integrations"-Ordner zu verknüpfen - woanders muß das ja nicht hin.
 
Vergiß Batch, nimm PowerShell.

Dort gibt es direkten Zugriff auf die ACLs mit *-Acl und das Ganze ist sogar sprechend. Kein Grund, sich mit icacls herumzuärgern. Plus, man kann auf .NET zugreifen und hat dafür die MSDN als Dokumentation zur Verfügung.
Da komm ich wie gesagt nicht klar mit und bräuchte da direkte Hilfe für PS.
Ich blick bei PS ISE nicht durch bei den ganzen Angaben die man machen kann.
Vererbte Berechtigungen lassen sich nicht entfernen. Sie sind vererbt, nicht wirklich "da". Man könnte sie überschreiben - per Verweigern --- sollte man aber nicht machen, weil wenn was dazukommt, darf derjenige doch wieder. Ergo, wie ja schon festgestellt, zunächst die Vererbung deaktivieren und in dem Kontext die bisher vererbten Berechtigungen entfernen.
Ja das hatte ich probiert mit dem Schalter von icacls grant:r. So wie ich die Helps verstanden hatte sollten dadurch Berechtigungen eigentlich ersetzt werden, hat jedoch nicht so funktioniert wie ich es mir vorgestellt habe.
Note 1: SYSTEM und Administratoren haben "well-known SIDs", sprich vordefinierte SIDs, die man einfach nehmen und verwenden kann.

Note 2: "Mein Benutzer" ist immer eine schlechte Idee. Steck ihn in eine eigene Gruppe und gib dieser Gruppe die benötigten Berechtigungen. An der Stelle reicht es ja, diese Gruppe auf dem "integrations"-Ordner zu verknüpfen - woanders muß das ja nicht hin.
Das erscheint mir Kontraproduktiv.
Zum einen bin ich der Ersteller und Besitzer des Ordners, also taucht dieser so oder so schonmal in der Vererbung mit auf, zusammen mit den beiden Gruppen System und Administrator. Zusätzlich dazu ist mein Benutzer auch Mitglied der Gruppe Administrator, weshalb eine weitere Gruppe zu erstellen da gar keinen Sinn ergibt.

Mir bleibt daher keine andere Wahl als dieser Weg, Vererbung deaktivieren und den Vererbten Elementen die Schreibrechte zu entziehen. Über die Erweiterten Sicherheitseinstellungen im Explorer funktioniert das alles super, aber ich will das ja als Script umsetzen und da spielt CMD nicht mit irgendwie, keine Ahnung warum und um das mit der PS hinzubekommen brauche ich hilfe, da weiß ich nicht wie der Befehl aussehen muss.
Hab es mit PS ISE probiert und gnadenlos versagt weil ich die grottenschlechte Hilfe von Micorsoft nicht verstehe.
Deshalb bräuchte ich da Hilfe von jemanden, der sich besser auskennt mit PS, im besten Falle wie gesagt sogar jemand der mir netter weise schon den Befehl mit einem Platzhalter für die Benutzer und Ordner erstellt, die krieg ich auch noch selbst eingefügt, aber der korrekte Syntax, da versage ich total.
 
Ok, ich hab es jetzt mit CMD ind icacls gelöst. Hab mich ständig an dem grant:r aufgehalten, bis mir endlich mal einfiel, dass die vererbten Rechte ja keine expliziten Rechte sind.
Habe nun ein Script dass alle User entfernt und meinen Nutzer danach separat neu hinzufügt mit den erforderlichen Leserechten.
Danke wenigstens für den Versuch.
 
Zurück
Oben