Alle Dateien eines Nutzers übernehmen - Wie?
Hallo zusammen!
In unserem Betrieb gibt es regelmäßig wechselndes Personal. Diese User müssen auch regelmäßig Dateien auf öffentlichen Freigaben erstellen und damit arbeiten. Wenn die User den Betrieb verlassen, wird Ihr Account gelöscht. Das Problem ist nur, dass die Files trotzdem noch die User-ID als Besitzer tragen. Ich würde diese Dateien gern alle in den Besitz des Admins geben, um damit wieder vernünftig arbeiten zu können (Kontingente spielen da mit rein und so).
Mit einer kleinen batch-Datei mit "dir" Befehl kann ich bereits alle Dateien eines Users auflisten, jedoch bräuchte ich ein Tool bzw. einen Befehl, um auch auf einen Schlag alle Files eines Users einem anderen User (Bsp: Admin) in den Besitz zu geben.
Kennt jemand ein solches Tool (am besten natürlich Freeware) bzw. geht das mit Boardmitteln?
Danke für die Hilfe
onkelfu
In unserem Betrieb gibt es regelmäßig wechselndes Personal. Diese User müssen auch regelmäßig Dateien auf öffentlichen Freigaben erstellen und damit arbeiten. Wenn die User den Betrieb verlassen, wird Ihr Account gelöscht. Das Problem ist nur, dass die Files trotzdem noch die User-ID als Besitzer tragen. Ich würde diese Dateien gern alle in den Besitz des Admins geben, um damit wieder vernünftig arbeiten zu können (Kontingente spielen da mit rein und so).
Mit einer kleinen batch-Datei mit "dir" Befehl kann ich bereits alle Dateien eines Users auflisten, jedoch bräuchte ich ein Tool bzw. einen Befehl, um auch auf einen Schlag alle Files eines Users einem anderen User (Bsp: Admin) in den Besitz zu geben.
Kennt jemand ein solches Tool (am besten natürlich Freeware) bzw. geht das mit Boardmitteln?
Danke für die Hilfe
onkelfu
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 34664
Url: https://administrator.de/contentid/34664
Ausgedruckt am: 23.11.2024 um 15:11 Uhr
12 Kommentare
Neuester Kommentar
Verzeichnis mit der rechten Maustaste anklicken --> Eigenschaften --> Register Sicherheit --> Erweitert --> Register Besitzer --> in der Mitte den neuen Besitzer auswählen und unten noch den Haken für rekursiv rein
Ansonsten gibt es hier http://wwwthep.physik.uni-mainz.de/~frink/nt.html ein "chown"-Kommandozeilen-Tool, mit dem der Besitzer auch auf jeden anderen user geändert werden kann.
Gruß,
Thomas
Ansonsten gibt es hier http://wwwthep.physik.uni-mainz.de/~frink/nt.html ein "chown"-Kommandozeilen-Tool, mit dem der Besitzer auch auf jeden anderen user geändert werden kann.
Gruß,
Thomas
Moin, onkelfu,
vielleicht kann ich Thomas' Lösung mit einem Einzeiler ergänzen.
Output bei mir im Beispiel:
- Vier Dateien des alten Users AltBau\Biber namens Test1.txt....test4.txt sind versteckt.
Das GROSSGESCHRIEBENE @echo kann/muss natürlich zum Scharf-Schalten gelöscht werden
- so zeigt der Batch ja nur, was er tun würde.
Nämlich alle Dateien vom User Altbau\Biber durch den User NewLodge\Beaver übernehmen.
Bin nicht so gut im Erklären, aber es ist ja auch nur ein Oneliner...
Gruß
Biber
vielleicht kann ich Thomas' Lösung mit einem Einzeiler ergänzen.
:: ---snipp TakeOwnerShip.bat
:: Übernimmt alle Dateien eines bestimmten Users ab einem bestimmten Unterverzeichnis
:: [mit Alexander Frinks "Chown"-Utility] durch einen neuen Benutzer
:: Parameter: <Startverzeichnis> <DOMAIN\AlterUser> DomainDesNeuenUsers NeuerUsername
:: Beispiel TakeOwnership d:\test OldDOM\OldUSER NewDOM NewUSER
@echo off & for /r %1 %%i in (.) do for /f "tokens=4,5" %%a in ('dir /q /a:-d "%%~sfi" ^2^>nul') do (
if /i [%%a]==[%2] @ECHO chown -d %3 %4 "%%~fi\%%~nxb" )
:: ---snapp TakeOwnerShip.bat
- Vier Dateien des alten Users AltBau\Biber namens Test1.txt....test4.txt sind versteckt.
>f:\TakeOwnerShip.bat d:\temp Altbau\Biber NewLodge Beaver
chown -d NewLodge Beaver "d:\temp\test1.txt"
chown -d NewLodge Beaver "d:\temp\Backup1\test2.txt"
chown -d NewLodge Beaver "d:\temp\Backup1\WINDOWS\system\test3.txt"
chown -d NewLodge Beaver "d:\temp\Crossing The Bridge - Istanbul Hatirasi\test4.txt"
Das GROSSGESCHRIEBENE @echo kann/muss natürlich zum Scharf-Schalten gelöscht werden
- so zeigt der Batch ja nur, was er tun würde.
Nämlich alle Dateien vom User Altbau\Biber durch den User NewLodge\Beaver übernehmen.
Bin nicht so gut im Erklären, aber es ist ja auch nur ein Oneliner...
Gruß
Biber
Zugegeben, ist eine berechtigte Frage... wenn der Benutzer bereits gelöscht ist.
Musste ich selbst erstmal probieren.
Also - habe Benutzer "Just4Del" (lokal) angelegt, den eine Datei übernehmen lassen, "Just4Del" gelöscht.
> also: jeder "nicht identifizierbare Eigentümer" wird vom CMD-Befehl "DIR /Q", den ich ja oben verwende, als "..." (drei Punkte) angezeigt.
Logischerweise OHNE die Information, welcher gelöschte/nicht bekannte Benutzer das ist.
Ergo würde ich alle Dateien aller gelöschten Benutzer übernehmen (müssen) mit [mein Test am CMD-Prompt, ich hatte den Schnipsel von gestern noch]
Works as designed , wie wir Biber sagen...
Gruß
Biber
Musste ich selbst erstmal probieren.
Also - habe Benutzer "Just4Del" (lokal) angelegt, den eine Datei übernehmen lassen, "Just4Del" gelöscht.
....
>dir /q test*.txt
....
Datenträger in Laufwerk D: ist 3KiloSchwer
Volumeseriennummer: 0815-4711
Verzeichnis von D:\temp
22.08.2005 20:30 2.163 BIBERSBESTER\just4del test1.txt
...
(=10:31:37 D:\temp=)
>net user /del just4del
Der Befehl wurde erfolgreich ausgeführt.
(=10:32:18 D:\temp=)
>dir /q test*.txt
Datenträger in Laufwerk D: ist 3KiloSchwer
Volumeseriennummer: 0815-4711
Verzeichnis von D:\temp
22.08.2005 20:30 2.163 ... test1.txt
> also: jeder "nicht identifizierbare Eigentümer" wird vom CMD-Befehl "DIR /Q", den ich ja oben verwende, als "..." (drei Punkte) angezeigt.
Logischerweise OHNE die Information, welcher gelöschte/nicht bekannte Benutzer das ist.
Ergo würde ich alle Dateien aller gelöschten Benutzer übernehmen (müssen) mit [mein Test am CMD-Prompt, ich hatte den Schnipsel von gestern noch]
>f:\TakeOwnerShip.bat d:\temp ... MyDomain Administrator
chown -d MyDomain Administrator "d:\temp\test1.txt"
Works as designed , wie wir Biber sagen...
Gruß
Biber
Na ja.. fast perfekt.
Eine nötige Ergänzung hab ich noch eingebaut, nämlich die Verarbeitung von
"Test-Datei mit Leerzeichen im Namen.txt"
Dafür muss es so aussehen:
Output beim Test:
Bei Dateien OHNE Leerzeichen im Namen kommt zwar als Ergebniszeile raus:
aber chown.exe stört sich NICHT an dem überflüssigen Leerzeichen am Ende.
Nun sollte es brauchbar sein (von der fehlenden Parameterprüfung und Hilfe abgesehen).
Setz dann bitte den Thread auf "Gelöst", onkelfu.
Schönes Wochenende
Biber
Eine nötige Ergänzung hab ich noch eingebaut, nämlich die Verarbeitung von
"Test-Datei mit Leerzeichen im Namen.txt"
Dafür muss es so aussehen:
:: ---snipp TakeOwnerShip.bat Vers. 0.2 auch für "Datei mit Leerzeichen im Namen.txt"
:: Übernimmt alle Dateien eines bestimmten Users ab einem bestimmten Unterverzeichnis
:: [mit Alexander Frinks "Chown"-Utility] durch einen neuen Benutzer
:: Parameter: <Startverzeichnis> <DOMAIN\AlterUser> DomainDesNeuenUsers NeuerUsername
:: Beispiel TakeOwnership d:\test OldDOM\OldUSER NewDOM NewUSER
@echo off & for /r %1 %%i in (.) do for /f "tokens=4,5,*" %%a in ('dir /q /a:-d "%%~sfi" ^2^>nul') do (
if /i [%%a]==[%2] @ECHO chown -d %3 %4 "%%~fi\%%b %%c" )
:: ---snapp TakeOwnerShip.bat
>f:\TakeOwnerShip.bat d:\temp ... MyDomain Administrator
chown -d MyDomain Administrator "d:\temp\test langername1.txt"
chown -d MyDomain Administrator "d:\temp\test.txt "
chown -d MyDomain Administrator "d:\temp\Backup1\test.txt "
Nun sollte es brauchbar sein (von der fehlenden Parameterprüfung und Hilfe abgesehen).
Setz dann bitte den Thread auf "Gelöst", onkelfu.
Schönes Wochenende
Biber
Um das Thema nun wirklich abzuschließen und das Bätschelchen ein bissi schneller zu machen, noch eine kleine Tuningmaßnahme.
[Musste ich tun - bin ja auch Perfektionist]
Gruß
Biber
:: ---snipp TakeOwnerShip.bat Vers. 0.3 auch für "Datei mit Leerzeichen im Namen.txt" und Verzeichnisse
:: Übernimmt alle Dateien/Unterverzeichnisse eines bestimmten Users durch einen neuen Benutzer
:: [mit Alexander Frinks "Chown"-Utility] ab einem bestimmten Unterverzeichnis
:: Parameter: <Startverzeichnis> <DOMAIN\AlterUser> DomainDesNeuenUsers NeuerUsername
:: Beispiel TakeOwnership d:\test OldDOM\OldUSER NewDOM NewUSER
@echo off & for /r %1 %%i in (.) do (
for /f "tokens=4,*" %%a in ('dir /q "%%~sfi" ^2^>nul^|find /i "%2"') do (
@ECHO chown -d %3 %4 "%%~fi\%%b" ))
:: ---snapp TakeOwnerShip.bat
Gruß
Biber
@Biber:
Ich bin immer wieder erstaunt, was Du alles in einen Einzeiler quetscht ...
Ich bin immer wieder erstaunt, was Du alles in einen Einzeiler quetscht ...