Mit einer Batchdatei Sicherheitseigenschaften ändern
Hallo zusammen,
kann ich mit einer Batchdatei Sicherheitseigenschaften ändern?
ich habe es ausprobiert aber irgendwie funktioniert es nicht...
Beispiel:
oder:
beides funktioniert nicht. hat jemand eine Idee wie ich es machen könnte?
kann ich mit einer Batchdatei Sicherheitseigenschaften ändern?
ich habe es ausprobiert aber irgendwie funktioniert es nicht...
Beispiel:
@echo off
rem Pfad zur Zieldatei oder zum Zielordner
set "target=C:\Software\TeamViewer_Setup.exe"
rem Vollzugriff für alle Benutzer gewähren
icacls "%target%" /grant Everyone:(OI)(CI)F /T
echo Sicherheitseigenschaften wurden geändert.
pause
oder:
@echo off
set "target=C:\Software\TeamViewer_Setup.exe"
cacls "%target%" /E /G Everyone:F
echo Sicherheitseigenschaften wurden geändert.
pause
beides funktioniert nicht. hat jemand eine Idee wie ich es machen könnte?
Please also mark the comments that contributed to the solution of the article
Content-ID: 668553
Url: https://administrator.de/contentid/668553
Printed on: October 15, 2024 at 06:10 o'clock
12 Comments
Latest comment
Muss man cacls nicht bestätigen?
Jupp...Seite hier sagt muss man pipen
https://ss64.com/nt/cacls.html
Aber...funktioniert nicht....Fehlermeldung oder dergleichen?
Jupp...Seite hier sagt muss man pipen
https://ss64.com/nt/cacls.html
Aber...funktioniert nicht....Fehlermeldung oder dergleichen?
Moin,
wenn du weder Besitzer bist, noch Schreibrechte hast, muss die Batch als Admin gestartet werden und zuerst die Besitzerrechte mit "takeown" übernommen werden. Darüber hinaus musst du in der deutschen Sprachversion "Jeder" statt "Everyone" verwenden.
Zudem: Du willst Rechte für eine Datei setzen, verwendest aber "/T" für Unterordner und willst Objekt- und Containervererbung setzen?!?
Gruß Thomas
wenn du weder Besitzer bist, noch Schreibrechte hast, muss die Batch als Admin gestartet werden und zuerst die Besitzerrechte mit "takeown" übernommen werden. Darüber hinaus musst du in der deutschen Sprachversion "Jeder" statt "Everyone" verwenden.
Zudem: Du willst Rechte für eine Datei setzen, verwendest aber "/T" für Unterordner und willst Objekt- und Containervererbung setzen?!?
@echo off
set "target=C:\Software\TeamViewer_Setup.exe"
REM Besitzerrechte übernehmen
takeown /f "%target%"
REM Berechtigung setzen
icacls "%target%" /grant Jeder:F
Gruß Thomas
Naja> Zitat von @anamet:
und die anderen lässt es unberührt.
Du haste es ja auch nur auf "Jeder" angewendet.
Nutze Powershell und nimm da die gewünschten User oder pack die in eine Sicherheitsgruppe und wende das dann an.
https://blog.netwrix.de/2020/01/31/verwalten-von-dateisystem-acls-mit-po ...
und die anderen lässt es unberührt.
Nutze Powershell und nimm da die gewünschten User oder pack die in eine Sicherheitsgruppe und wende das dann an.
https://blog.netwrix.de/2020/01/31/verwalten-von-dateisystem-acls-mit-po ...
Hallo kpunkt,
Das Problem, das du beschreibst, liegt wahrscheinlich daran, dass du entweder nicht die nötigen Administratorrechte hast oder die Syntax der Befehle nicht ganz passt. Hier sind einige Punkte und ein optimierter Ansatz, wie du die Sicherheitseigenschaften mit einer Batchdatei ändern kannst.
1. Administratorrechte prüfen
Um Sicherheitseinstellungen (wie Zugriffsrechte) mit icacls oder cacls zu ändern, musst du die Batchdatei als Administrator ausführen. Ohne Administratorrechte schlägt die Änderung der Sicherheitseigenschaften fehl.
2. Verwendung von icacls
Der Befehl icacls ist die modernere und bevorzugte Methode, um Berechtigungen zu ändern. cacls ist veraltet und wird nicht mehr empfohlen. Hier ist eine überarbeitete Version deines Skripts:
batch
@echo off
rem Sicherstellen, dass die Batchdatei mit Administratorrechten ausgeführt wird
net session >nul 2>&1
if %errorlevel% neq 0 (
echo Bitte die Batchdatei als Administrator ausfuehren.
pause
exit /b
)
rem Pfad zur Zieldatei oder zum Zielordner
set "target=C:\Software\TeamViewer_Setup.exe"
rem Vollzugriff für alle Benutzer gewähren
icacls "%target%" /grant Everyone:F /T /C
echo Sicherheitseigenschaften wurden erfolgreich geändert.
pause
Erläuterung der Optionen:
Everyone:F: Dies gewährt allen Benutzern ("Everyone") Vollzugriff ("F") auf die Datei oder den Ordner.
/T: Diese Option sorgt dafür, dass die Berechtigungen rekursiv auf alle Unterverzeichnisse und Dateien angewendet werden (nur relevant für Ordner).
/C: Erzwingt die Fortsetzung, auch wenn bei bestimmten Dateien ein Fehler auftritt.
3. Problembehandlung:
Adminrechte erforderlich: Ohne Administratorrechte können die Befehle nicht korrekt ausgeführt werden. Stelle sicher, dass die Batchdatei mit Administratorrechten gestartet wird (Rechtsklick → "Als Administrator ausführen").
Fehlende Berechtigungen: In einigen Fällen könnte es erforderlich sein, zuerst das Besitzrecht (Ownership) einer Datei oder eines Ordners zu ändern, bevor du die Berechtigungen setzen kannst. Dies kannst du mit takeown tun:
batch
takeown /F "%target%"
4. Weitere Tests
Falls das immer noch nicht funktioniert, kannst du testen, ob die Batchdatei korrekt arbeitet, indem du die Berechtigungen mit icacls manuell im CMD überprüfst. Beispiel:
cmd
icacls "C:\Software\TeamViewer_Setup.exe"
So kannst du die aktuellen Berechtigungen einsehen und sicherstellen, dass sie tatsächlich geändert werden.
Fazit:
Nutze den icacls-Befehl mit den richtigen Administratorrechten und stelle sicher, dass der Batchprozess als Administrator gestartet wird. Dann sollten die Berechtigungen wie gewünscht geändert werden können.
Beste Grüße, Simon
Das Problem, das du beschreibst, liegt wahrscheinlich daran, dass du entweder nicht die nötigen Administratorrechte hast oder die Syntax der Befehle nicht ganz passt. Hier sind einige Punkte und ein optimierter Ansatz, wie du die Sicherheitseigenschaften mit einer Batchdatei ändern kannst.
1. Administratorrechte prüfen
Um Sicherheitseinstellungen (wie Zugriffsrechte) mit icacls oder cacls zu ändern, musst du die Batchdatei als Administrator ausführen. Ohne Administratorrechte schlägt die Änderung der Sicherheitseigenschaften fehl.
2. Verwendung von icacls
Der Befehl icacls ist die modernere und bevorzugte Methode, um Berechtigungen zu ändern. cacls ist veraltet und wird nicht mehr empfohlen. Hier ist eine überarbeitete Version deines Skripts:
batch
@echo off
rem Sicherstellen, dass die Batchdatei mit Administratorrechten ausgeführt wird
net session >nul 2>&1
if %errorlevel% neq 0 (
echo Bitte die Batchdatei als Administrator ausfuehren.
pause
exit /b
)
rem Pfad zur Zieldatei oder zum Zielordner
set "target=C:\Software\TeamViewer_Setup.exe"
rem Vollzugriff für alle Benutzer gewähren
icacls "%target%" /grant Everyone:F /T /C
echo Sicherheitseigenschaften wurden erfolgreich geändert.
pause
Erläuterung der Optionen:
Everyone:F: Dies gewährt allen Benutzern ("Everyone") Vollzugriff ("F") auf die Datei oder den Ordner.
/T: Diese Option sorgt dafür, dass die Berechtigungen rekursiv auf alle Unterverzeichnisse und Dateien angewendet werden (nur relevant für Ordner).
/C: Erzwingt die Fortsetzung, auch wenn bei bestimmten Dateien ein Fehler auftritt.
3. Problembehandlung:
Adminrechte erforderlich: Ohne Administratorrechte können die Befehle nicht korrekt ausgeführt werden. Stelle sicher, dass die Batchdatei mit Administratorrechten gestartet wird (Rechtsklick → "Als Administrator ausführen").
Fehlende Berechtigungen: In einigen Fällen könnte es erforderlich sein, zuerst das Besitzrecht (Ownership) einer Datei oder eines Ordners zu ändern, bevor du die Berechtigungen setzen kannst. Dies kannst du mit takeown tun:
batch
takeown /F "%target%"
4. Weitere Tests
Falls das immer noch nicht funktioniert, kannst du testen, ob die Batchdatei korrekt arbeitet, indem du die Berechtigungen mit icacls manuell im CMD überprüfst. Beispiel:
cmd
icacls "C:\Software\TeamViewer_Setup.exe"
So kannst du die aktuellen Berechtigungen einsehen und sicherstellen, dass sie tatsächlich geändert werden.
Fazit:
Nutze den icacls-Befehl mit den richtigen Administratorrechten und stelle sicher, dass der Batchprozess als Administrator gestartet wird. Dann sollten die Berechtigungen wie gewünscht geändert werden können.
Beste Grüße, Simon