schottenrock
Goto Top

BATCH: Dateibesitzer mit kopieren

Hallo Zusammen,

ich brüte schon länger über folgenderm Problem:

In einem umfangreichen Batch-Ablauf werden zeitgetriggert alle PDF-Dateien im Verzeichnis "t:\Scan" bearbeitet. D.h. umwandeln in PNG, dann wird jedes PNG nach einem bestimmten QR-Code mit Qualifier durchsucht (XY;123456) und anhand Qualifier und Dokumentnummer mit entsprechenden Parametern einer automatischen Archivierung zugeführt. Klappt alles einwandfrei.

Es gibt aber auch Dokumente ohne QR-Code und die User leeren nicht regelmäßig das Fehlerverzeichnis. Da das Batch auf einem Server läuft, weil ich nicht, wer die Datei gespeichert hat. Daher hole ich mir den Dateibesitzer des Files. Im Fehlerfall möchte ich dem user eine Email senden.

Das funktioniert in der Theorie und solange die Dateien verschoben werden, geht der Dateibesitzer mit. Nun möchte ich aber zum Testen der neuen Funktion ein paar Testfiles kopieren. Und beim Kopieren werde immer ich Besitzer. Mit xcopy /o habe ich keinen Zugriff. Hat sonst noch jemand eine Idee, wie man den Dateibesitzer kopieren kann ohne Admin zu sein?

Sparsame Grüße vom Schottenrock face-smile

Content-ID: 644671

Url: https://administrator.de/contentid/644671

Ausgedruckt am: 08.11.2024 um 07:11 Uhr

Fennek11
Fennek11 26.01.2021 um 12:56:27 Uhr
Goto Top
Hallo,

vor kurzem habe ich einen Code gefunden (und nicht getestet), der den Besitzer einer Datei ausgeben soll. Es ist ein VBA-Code.

Function GetFileUser(FileDir As String, FileName As String) As String
Dim secUtil As Object
Dim secDesc As Object

Set secUtil = CreateObject("ADsSecurityUtility")  
Set secDesc = secUtil.GetSecurityDescriptor(FileDir & FileName, 1, 1)
GetFileUser = secDesc.owner
End Function

Kannst Du damit etwas anfangen?

mfg

(Code von "Flotter Feger")
Schottenrock
Schottenrock 26.01.2021 aktualisiert um 13:16:47 Uhr
Goto Top
@tagol.de:
Ich habe bereits umfangreich das Internet und Administrator.de durchsucht. Die Frage der richtigen Suchbegriffe ist natürlich entscheidend. Aber Deine Suchergebnisse sind auch nicht besser, als das, was ich bisher gefunden habe. Mir geht es ganz klar um "ohne Admin-Rechte". Bei Deinen Suchergebnissen bekomme ich ebenfalls die Meldung "Zugriff verweigert". Trortdem Danke für Deine Mühen. Wenn Du mir ein wenug Kritik erlaubst: als Suchender sind mir konkrete Lösungen wichtiger. Immer diese vereckte Hinweise auf google doch erst mal, bringen weder ich weiter noch denjenigen, der in Zukunft auf diesen Thread stösst und dann auch kein Ergebnis findet.

@Fennek11:
Danke, muss ich mal in Ruhe anschauen. Aber auslesen tue ich den User momentan mit dir/q, das in einer FOR-Schleife, dann kann ich Dateinamen und User jeweils aus einem Token auslesen. ICh müsste jetzt nebenher eine LOG-Datei mitschriebne, welcher Dateiname und User zusammengehören. Ich will aber eigentlich beim kopieren, den Dateibesitzer mitnehmen. Aber trotzdem vielen Dank.
beidermachtvongreyscull
beidermachtvongreyscull 26.01.2021 um 16:06:40 Uhr
Goto Top
Sehe ich auch so.
Friemler
Friemler 27.01.2021 um 16:20:13 Uhr
Goto Top
Hallo @Schottenrock,

der XCOPY-Befehl hat die Option /O, durch deren Verwendung

Informationen über den Besitzer und die ACL

mitkopiert werden sollen. Teste das doch mal.

Gruß
Friemler
Schottenrock
Schottenrock 28.01.2021 um 16:15:04 Uhr
Goto Top
Danke, aber xcopy /o habe ich schon versucht, Zugriff verweigert. Steht schon oben in der Frage 😉. Trotzdem danke!
Friemler
Friemler 28.01.2021 um 19:47:35 Uhr
Goto Top
Sorry, hätte Dein Eröffnungsposting wohl zu Ende lesen sollen...

Eine weitere Möglichkeit wäre die Verwendung von ROBOCOPY mit der Option /B oder /ZB und der Option /COPY:DATO oder /COPY:DATOS, siehe die Doku zu ROBOCOPY.

Voraussetzung dafür ist, dass der Benutzer, unter dem Dein Script läuft, zumindest Mitglied in der Gruppe der Sicherungsoperatoren ist.

Ist aber schon lange her, dass ich mich damit beschäftigt habe, bin mir deshalb nicht ganz sicher. Aber Versuch macht kluch.

Grüße
Friemler