Frage Wie übernehmen Sie den Besitz von Dateien über die Befehlszeile?


Hin und wieder stoße ich auf eine Datei, die ich übernehmen muss. Ich benutze normalerweise cacls zum Ändern von ntfs-Berechtigungen, aber es scheint nicht zu Eigentum. Unter * nix würde ich sowas laufen lassen chown me:me <file>. Gibt es ein Windows-Äquivalent zu? chown?


33
2018-06-17 14:55


Ursprung


Schade, setACL arbeitet nicht mit dem obigen Skript. Fehlermeldungen auf Win XP, 7 und 8 und du musst ein Experte sein, um herauszufinden, was damit nicht stimmt


Antworten:


subinacl ist ein Windows-Sysadmin-Tool, mit dem Sie alles tun können, was mit Besitzrechten und ACLs zu tun hat. Sie können das Eigentum an jedem ändern, der nicht nur Sie selbst ist (Sie können dies nicht mit der GUI tun).

subinacl /file test.txt /setowner=domain\foo

Auf diese Weise können Sie die Berechtigung für jeden beliebigen Benutzer festlegen, ohne Administrator zu sein (wie ich glaube, dass takeown.exe erforderlich ist).


24
2018-06-17 15:05



Nicht gültig für Windows XP Kann ich SUBINACL.exe (Windows 2003 Resource Kit) herunterladen und in Windows XP verwenden? - Kiquenet
Sicher kannst du! Das ist wahrscheinlich, wo ich es herbekommen habe. Versuchen Hier. - crb


Sie suchen nach "TAKEOWN.EXE", das zuerst in Windows Server 2003 als Standardkomponente verwendet wurde, und ich glaube, ein Resource-Kit-Element vor. Es ist unter Windows 7 und möglicherweise neueren Systemen verfügbar.

takeown /f <some-file-or-folder> /r

/r Führt die Operation rekursiv für alle untergeordneten Elemente des angegebenen Ordners durch. nicht wie subinacl, müssen Sie sich als der Benutzer anmelden, mit dem Sie das Eigentumsrecht übernehmen möchten; oder Sie können einfach der Gruppe "Administratoren" den Eigentümer zuweisen.

Hier ist eine Kopie der Dokumentation, wie sie erhalten geblieben ist SS64:

Syntax         TAKEOWN [/ s Computer [/ u [Domain] Benutzername [/ p [Passwort]]]]            / f Dateiname [/ a] [/ r [/ d {Y | N}]]

Schlüssel / s Computer              Der Name oder die IP-Adresse eines Remote-Computers (keine Backslashes verwenden).              Standard = lokaler Computer.              Dieser Parameter gilt für alle Dateien und Ordner, die im Befehl angegeben sind.

/ u [Domäne] Benutzername              Führen Sie das Skript mit den Berechtigungen des angegebenen Benutzerkontos aus.              Standard = Systemberechtigungen

/ p [Passwort]              Das Kennwort des Benutzerkontos, das im Parameter / u angegeben ist.

/ f Dateiname              Der Dateiname, der UNC-Pfad oder das Verzeichnisnamensmuster.              Akzeptiert das Platzhalterzeichen *

/ a Erteilen Sie der Gruppe Administratoren anstelle der Benutzerrechte das Eigentumsrecht   aktueller Benutzer

/ r Führen Sie eine rekursive Operation für alle Dateien in der angegebenen aus   Verzeichnis              und Unterverzeichnisse.

/ d {Y | N}              Unterdrücken Sie die Bestätigungsaufforderung, die beim aktuellen Benutzer angezeigt wird              hat nicht die Berechtigung "Ordner auflisten" für ein bestimmtes Verzeichnis,              und stattdessen einen Standardwert verwenden:                 Y: Übernimm den Besitz des Verzeichnisses.                 N: Überspringe das Verzeichnis.              Beachten Sie, dass Sie diese Option in Verbindung mit der Option / r verwenden müssen. Wenn der Parameter / a nicht angegeben wird, ist die Dateieigentümerschaft   an den Benutzer, der gerade am Computer angemeldet ist.

Gemischte Muster mit (? Und *) werden vom Take-down nicht unterstützt   Befehl.

Nachdem Sie den Eigentümer für eine Datei / einen Ordner geändert haben, können Sie ihn voll zuweisen   Berechtigungen für die Dateien und anschließend lesen oder löschen sie.


24
2018-06-17 15:00



Zurückgezogener Inhalt  microsoft.com/en-US/download/details.aspx?id=53314 - Kiquenet
SS64 Hat eine bessere Dokumentationsverbindung: ss64.com/nt/takeown.html - jpaugh


Besitz und volle Rechte des Ordners und alles darin übernehmen:

takeown /F somedir /A /R
icacls somedir /grant:r User:F /T

Ich musste eine Eingabeaufforderung als Administrator starten, aber es funktionierte für mich in Windows 8.1. Mit Windows 8.1 Unbeholfenheit musste ich nach "Befehl" suchen, klicken Sie mit der rechten Maustaste auf das Befehlszeilensymbol, um die Option "Als Administrator ausführen" zu sehen. Ich hatte eine Eingabeaufforderung an meine Taskleiste angeheftet, aber mit einem Rechtsklick darauf wurde die Option "Als Administrator ausführen" nicht angezeigt.

Icacls [/ GRANT [: r]: [...]] [/ Denegar: [...]] [/ Entfernen [: g |: d]] [...]] [/ t] [/ c] [/ l] [/ q] [/ setintegritylevel: [...]] Icacls [/ sustituir [...]] [/ wiederherstellen [/ c] [/ l] [/ q]]


14
2017-08-31 16:41



Seien Sie sich bewusst, dass Icacls lange Pfadnamen ersticken. Die Fehlermeldung "Datei nicht gefunden" ist ein bisschen irreführend, schlimmer icalcs bricht die Verarbeitung des Rests des Baumes ohne Nachricht ab. Sie können den Trick verwenden, ein SUBST-Volume tiefer im Baum zu erstellen, um dies manchmal zu umgehen. Takeown.exe toleriert lange Namen. - Andrew Dennison
Nicht gültig für Windows XP - Kiquenet


Ich weiß, das ist ein Ja wirklich alter Post, aber es gibt einen Weg in Windows 7 und neuer (vielleicht in Windows Vista, aber ich bin mir nicht sicher). Führen Sie Folgendes in einer eskalierten Eingabeaufforderung in dem Ordner aus, den Sie zurücksetzen möchten. /t erzählt icacls um die Operation rekursiv durchzuführen.

icacls .\* /setowner %UserDomain%\%UserName% /t
icacls .\* /reset /t

Der erste Befehl setzt den Besitzer auf den Benutzer zurück, der über die Umgebungsvariablen angemeldet ist. Natürlich kann stattdessen ein bestimmter Name verwendet werden.

Der zweite Befehl erzwingt dann die erneute Vererbung der Berechtigungen in der Struktur in alle untergeordneten Ordner und Dateien.

Hoffe das hilft jemandem in der Zukunft.


5
2017-11-09 15:35



Der erste Befehl war genug für mich. - Benoit Blanchon


Vielleicht möchten Sie einen Blick darauf werfen SetACL, das Schweizer Taschenmesser der Erlaubnisverwaltung. Hier ist ein Beispiel So weisen Sie das Eigentumsrecht für alle Dateien auf Laufwerk C: "Administratoren" zu und entfernen Sie den Schutz der Vererbung von allen untergeordneten Objekten auf einmal:

SetACL.exe -on "C:\\" -ot file -actn setprot
           -op "dacl:np;sacl:nc"
           -rec cont_obj
           -actn setowner -ownr "n:S-1-5-32-544;s:y"

Sie können auch hinzufügen -silent.


5
2018-01-14 08:53





In Windows Server 2003 R2 (und höher) können Sie das integrierte Tool nutzen icacls.exe Ändern des Besitzes über die Befehlszeile sowie alle traditionellen cacls.exe-Manipulationen, auf die es erweitert wird ...

Beachten Sie, dass icacls.exe standardmäßig auf den Modus "edit" eingestellt ist, während cacls.exe standardmäßig auf den Modus "replace" gesetzt ist - eine willkommene Abwechslung für diejenigen von uns, die (mehr als einmal) von dieser kleinen Nuance von cacls gebissen wurden!


3
2018-03-22 14:06



Icacls ist nett, weil es in den letzten Windows-Versionen enthalten ist und jedem Benutzer die Eigentumsrechte zuweisen kann. - David


Für Windows 2003, 2008 oder Vista oder 7 verwenden Einnahme.

Für Windows 2000 verwenden Dateieigner.pl.


3
2018-06-17 15:03



Nicht gefunden support.microsoft.com/es-es/help/320046 Keine Lösung für Windows XP - Kiquenet