Batchdatei: Eine Dateie eines bestimmen Besitzers löschen lassen?

2 Antworten

Das Autostartverzeichnis liegt im Profilordner der jeweiligen User - wenn du da rein deine Batch schreibst, dann wird auch nur bei diesem User, die Datei gelöscht...

bei einem DC könnte man die Datei ins vorher zugewiesene Home Verzeichnis legen...

Wie? Ist das wirklich so? Aber die Datei, welche gelöscht werden soll, liegt nicht im Benutzerprofil sondern unter C:/Programme/x. Also kann ich in die Batchdatei schreiben, dass alle Dateien des Ordners gelöscht werden sollen und wenn ich die Batch dann in den Autostart-Ordner lege werden aber nur die Dateien von dem Benutzer gelöscht der sich gerade anmeldet? Wirklich? Das wäre dann ja irgendwie zu einfach :/

0
@Hash0

Unter normalen Umständen sollte außer dem Administrator, welcher ein Programm installiert hat kein normaler Nutzer in c:\programme und dessen Unterordner schreiben dürfen.

Da hat wohl schon mal jemand die Zugriffsrechte von Hand geändert????

Oben habe ich schon mal beschrieben wie man den Besitzer einer Datei erkennt.

Das hat jedoch einen Pferdefuß, denn wenn

"Max Muster" eine Datei Namens "Beispiel.txt" erzeugt ist er der Besitzer

schreibt "Tante Elfriede" nun etwas in "Beispiel.txt" ist Max noch immer der Besitzer.

Das ganze ist vom Prinzip her blödsinn.

0

Edit: Hab's gerade getestet es werden einfach alle Dateien gelöscht. Das interessiert der Batchdatei nicht welcher Benutzer was erstellt hat... Schade auch

0
@Hash0

Also,, ich habe die Frage anders verstanden..

Wenn sich Person A anmeldet wird eine bestimmte Datei gelöscht, wenn sich B anmeldet wird nichts gelöscht - so habe ich das verstanden..

Und so sollte es eigentlich gehen...

0

Leider is Deine Frage nicht sehr Aussagekräftig.

Gewöhnlich werden Nutzerspezifische Dateien irgendwo im Nutzerprofile gespeichert. Die Environ-/Batchvariable %userprofile% enthält den aktuellen Benutzerpfad.

hier eine kleine Demo.cmd

@echo off
echo  Aktueller  Nutzerordner "%userprofile%"
echo erzeuge Datei "%userprofile%\Desktop\Test Datei.txt"
  rem datei auf dem Desktop erzeugen:
echo ich  bin ein inhalt >"%userprofile%\Desktop\Test Datei.txt"
echo druecke eine Taste  um "%userprofile%\Desktop\Test Datei.txt" zu loeschen...
pause>nul
del /f /q "%userprofile%\Desktop\Test Datei.txt"
pause

Das ermitteln des Besitzers einer beliebigen Datei irgendwo im DateiSystem ist in purem Batch nicht wirklich vorgesehen es ginge zwar rein optisch mit " dir /q " das eignet sich jedoch kaum zum Automatischen Auflösen der Zeichenketten.

Da ein guter Batcher auch irgendwann in der Modernen Zeit ankommt und eine Batchdatei gefragt ist, quetsche ich einfach ein komplettes Powershellscript in eine Batchzeile:

demo2.cmd

echo test>"Mein Text.txt" 
  rem Owner von 'Mein Text.txt' anzeigen
powershell -command "&{Get-ACL 'Mein Text.txt'|Select Owner}"
  rem Aufräumen
del /q /f "Mein Text.txt" 
pause

demo3.cmd

  rem gehe zum Verzeichnis...
cd %systemroot%
  rem  zeige  Besitzer  aller Dateien im Ordner....
powershell -command "&{Get-ChildItem | Select @{Name='Owner';Expression={(Get-ACL $_.Fullname).Owner}},FullName|ConvertTo-Csv}"
pause

Was möchtest Du wissen?