Aktueller Besitzer der aktuellen Datei herausfinden und in Variable schreiben
Hallo,
ich habe über
Besitzer einer Datei herausfinden
erfahren, dass es den Befehl "dir /q" gibt, der mir schön alle Besitzer auflistet im aktuellen Ordner.
Ich glaube ich bin mit meinem Code auch schon sehr nahe dran, allerdings komme ich nicht drauf, den Besitzer mit in eine Variable zu schreiben:
Ich glaube, ich muss nur irgendwie den Code SINNGEMÄß so hinkriegen:
Wobei Variable2 hier der aktuelle Besitzer sein soll.
Wisst ihr, wie ich das richtig hinbekomme?
Danke im Voraus!
LG
Peter
ich habe über
Besitzer einer Datei herausfinden
erfahren, dass es den Befehl "dir /q" gibt, der mir schön alle Besitzer auflistet im aktuellen Ordner.
Ich glaube ich bin mit meinem Code auch schon sehr nahe dran, allerdings komme ich nicht drauf, den Besitzer mit in eine Variable zu schreiben:
for /f "delims=" %%a in ('dir /od /b "C:\Folder"') DO (
set "Variable1=%%a"
call :SomeOtherScript
)
Ich glaube, ich muss nur irgendwie den Code SINNGEMÄß so hinkriegen:
for /f "delims=" %%a in ('dir **/q** /od /b "C:\Folder"') DO (
set "Variable1=%%a"
**set "Variable2=%%b"**
call :SomeOtherScript
)
Wobei Variable2 hier der aktuelle Besitzer sein soll.
Wisst ihr, wie ich das richtig hinbekomme?
Danke im Voraus!
LG
Peter
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 317878
Url: https://administrator.de/forum/aktueller-besitzer-der-aktuellen-datei-herausfinden-und-in-variable-schreiben-317878.html
Ausgedruckt am: 17.04.2025 um 07:04 Uhr
11 Kommentare
Neuester Kommentar

Powershell -Executionpolicy ByPass -Command "(Get-Acl 'c\datei.txt').Owner"
Hallo,
Was passiert denn oder passiert denn nicht? Oder erwartest du das wir uns alle deinen Fehler selbst generieren? Keiner weiss wo dieser Schnipsel welcher ja nur ein teil deines Problems ist herkommt oder was drum herum noch alles passiert und evtl. schon das Problem ist.
http://ss64.com/nt/delayedexpansion.html
Batch Anfänger Fragen zu setlocal, enabledelayedexpansion, set, for
Gruß,
Peter
Was passiert denn oder passiert denn nicht? Oder erwartest du das wir uns alle deinen Fehler selbst generieren? Keiner weiss wo dieser Schnipsel welcher ja nur ein teil deines Problems ist herkommt oder was drum herum noch alles passiert und evtl. schon das Problem ist.
http://ss64.com/nt/delayedexpansion.html
Batch Anfänger Fragen zu setlocal, enabledelayedexpansion, set, for
Gruß,
Peter

Wie immer bei sowas: Mit FOR-Schleife kappseln:
for /f "delims=" %%a in ('Powershell -Executionpolicy ByPass -NoProfile -Command "(Get-Acl 'c\datei.txt').Owner.split('\')[1]"') do set "owner=%%a"

Zitat von @Peter32:
Allerdings habe ich hier das Problem, dass nach wie vor der PC-Name mit ausgegeben wird.
Im letzten Post so geändert das es passt Allerdings habe ich hier das Problem, dass nach wie vor der PC-Name mit ausgegeben wird.
Zudem: Bei meiner Maschine dauert es ca 10s bis dieser Befehl ausgeführt wird. Gibt es noch einen schnelleren weg?
Dein Rechner ist zu langsam. Habe oben noch den Parameter -NoProfile hinzugefügt. Geht hier in unter einer Sekunde.
Du solltest deine Skripte schnellstens zu nativer Powershell migieren. Wird höchste Eisenbahn sich damit auseinanderzusetzen.

Hahaha.. der war gut
, wohl die Ressourcen im Oberstübchen was
[sarkasmus ende]
anderen tipp?
Mehr "Ressourcen" einbauen.
Hallo Peter32,
würde auch zu Powershell raten. Wenn du Performance-Probleme hast, die lassen sich lösen wenn du deine Hardware und dein OS entsprechend optimierst.
Es gibt noch eine VBS Variante für den Einbau in deine Batch:
Auch mein Tipp, steige um. Du wirst um mindestens 500% effektiver in der Bewältigung von administrativen Aufgaben.
Grüße Uwe
würde auch zu Powershell raten. Wenn du Performance-Probleme hast, die lassen sich lösen wenn du deine Hardware und dein OS entsprechend optimierst.
Es gibt noch eine VBS Variante für den Einbau in deine Batch:
@echo off & setlocal
set "datei=C:\deinedatei.txt"
echo Dim objSD : GetObject^("winmgmts://./root/cimv2"^).Get^("Win32_LogicalFileSecuritySetting='" ^& wscript.arguments(0) ^& "'"^).GetSecurityDescriptor objSD : WScript.Echo objSD.Owner.Name >"%Temp%\GetOwner.vbs"
for /f "delims=" %%a in ('cscript //NOLOGO "%Temp%\GetOwner.vbs" "%datei%"') DO set "owner=%%a"
echo Owner of "%datei%" : "%owner%"
Grüße Uwe