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
12 Antworten
- LÖSUNG superboh schreibt am 22.06.2006 um 12:40:22 Uhr
- LÖSUNG onkelfu schreibt am 22.06.2006 um 14:03:36 Uhr
- LÖSUNG Biber schreibt am 22.06.2006 um 21:58:44 Uhr
- LÖSUNG onkelfu schreibt am 22.06.2006 um 22:15:21 Uhr
- LÖSUNG superboh schreibt am 23.06.2006 um 00:15:47 Uhr
- LÖSUNG onkelfu schreibt am 23.06.2006 um 09:02:38 Uhr
- LÖSUNG Biber schreibt am 23.06.2006 um 10:50:06 Uhr
- LÖSUNG onkelfu schreibt am 23.06.2006 um 11:09:35 Uhr
- LÖSUNG Biber schreibt am 23.06.2006 um 13:01:27 Uhr
- LÖSUNG onkelfu schreibt am 23.06.2006 um 13:11:38 Uhr
- LÖSUNG Biber schreibt am 25.06.2006 um 21:48:44 Uhr
- LÖSUNG superboh schreibt am 26.06.2006 um 00:10:15 Uhr
- LÖSUNG Biber schreibt am 25.06.2006 um 21:48:44 Uhr
- LÖSUNG onkelfu schreibt am 23.06.2006 um 13:11:38 Uhr
- LÖSUNG Biber schreibt am 23.06.2006 um 13:01:27 Uhr
- LÖSUNG onkelfu schreibt am 23.06.2006 um 11:09:35 Uhr
- LÖSUNG Biber schreibt am 23.06.2006 um 10:50:06 Uhr
- LÖSUNG onkelfu schreibt am 23.06.2006 um 09:02:38 Uhr
- LÖSUNG superboh schreibt am 23.06.2006 um 00:15:47 Uhr
- LÖSUNG onkelfu schreibt am 22.06.2006 um 22:15:21 Uhr
- LÖSUNG Biber schreibt am 22.06.2006 um 21:58:44 Uhr
- LÖSUNG onkelfu schreibt am 22.06.2006 um 14:03:36 Uhr
LÖSUNG 22.06.2006 um 12:40 Uhr
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
LÖSUNG 22.06.2006 um 14:03 Uhr
LÖSUNG 22.06.2006 um 21:58 Uhr
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"
- 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
LÖSUNG 22.06.2006 um 22:15 Uhr
LÖSUNG 23.06.2006 um 00:15 Uhr
LÖSUNG 23.06.2006 um 09:02 Uhr
LÖSUNG 23.06.2006 um 10:50 Uhr
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
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"
Gruß
Biber
LÖSUNG 23.06.2006 um 11:09 Uhr
LÖSUNG 23.06.2006 um 13:01 Uhr
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
LÖSUNG 23.06.2006 um 13:11 Uhr
LÖSUNG 25.06.2006 um 21:48 Uhr
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
LÖSUNG 26.06.2006 um 00:10 Uhr