Icacls.exe in einer Batch Datei - Zugriff verweigert trotz Adminrechte
Hallo Community,
ich stehe vor einem kleinen Rätsel. Ich würde in einer Batchdatei gerne die Schreibrechte einer Datei im Windows Verzeichnis ändern, damit ich diese in meiner Batchdatei bearbeiten kann. Es handelt sich um folgende Datei:
C:\Windows\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1
(Wie ihr vielleicht schon richtig vermutet würde ich gerne die Anzahl der erlaubten defekten Verknüpfungen auf dem Desktop erhöhen.
Dazu verwende ich folgendes Script. Es wird lokal als Administrator ausgeführt:
@echo off & setlocal enabledelayedexpansion
echo Setze anzahl der erlaubten defekten Verknueprungen auf Desktop rauf.
set Datei=\\fs01\bez$\Software\UnattendedWorkstationInstallation\InstallFiles\ScriptDraft\TS_BrokenShortcuts.ps1
set Von=###AMOUNTOFLINKS###
set Nach=99
set "t=%temp%\text.tmp"
if exist "%t%" del "%t%"
rem String ersetzen...
for /f "usebackq delims=" %%i in ("%Datei%") do set "Line=%%i" & set "Line=!Line:%Von%=%Nach%!" & >>"%t%" echo !Line!
rem die NTFS Recher der Datei ändern, da diese Standardmäßig nicht verändert werden kann
"%windir%\System32\icacls.exe" %windir%\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1 /grant %username%F)
rem temp-Datei - neue Datei
rem move "%t%" "C:\Windows\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1"
move "%t%" "%windir%\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1"
rem Die NTFS Rechte wieder in den ursprungszustand setzen
"%windir%\System32\icacls.exe" %windir%\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1 /grant %username%RX)
pause
Syntaxmäßig ist alles in Ordnung, ganz im Gegenteil zu den Rechten...
Ich verstehe nicht, wieso ich bei Verwendung von icacls.exe folgenden Fehler bekomme:
C:\Windows\system32>"%windir%\System32\icacls.exe" %windir%\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1 grant %username%F)C:\Windows\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1: Zugriff verweigert
0 Dateien erfolgreich verarbeitet, bei 1 Dateien ist ein Verarbeitungsfehler auf
getreten.
Der angemeldete Benutzer ist lokaler Admin. Das Script wird mit Adminrechten ausgeführt. Wenn ich im Explorer drauf gehe, sehe ich auch alles. Lediglich der Benutzer: TrustedInstaller hat Vollzugriff, alle anderen Benutzer haben lediglich Lesen und Ausführen.
Liegt es evtl. daran, dass der aktuelle Benutzer kein Recht hat, die Rechte der Datei zu ändern? Wieso kann ich es dann aber trotzdem über den Windows Explorer machen und nicht mit dem Tool?
Könnt ihr mir weiter helfen?
Gruß
Breppe
ich stehe vor einem kleinen Rätsel. Ich würde in einer Batchdatei gerne die Schreibrechte einer Datei im Windows Verzeichnis ändern, damit ich diese in meiner Batchdatei bearbeiten kann. Es handelt sich um folgende Datei:
C:\Windows\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1
(Wie ihr vielleicht schon richtig vermutet würde ich gerne die Anzahl der erlaubten defekten Verknüpfungen auf dem Desktop erhöhen.
Dazu verwende ich folgendes Script. Es wird lokal als Administrator ausgeführt:
@echo off & setlocal enabledelayedexpansion
echo Setze anzahl der erlaubten defekten Verknueprungen auf Desktop rauf.
set Datei=\\fs01\bez$\Software\UnattendedWorkstationInstallation\InstallFiles\ScriptDraft\TS_BrokenShortcuts.ps1
set Von=###AMOUNTOFLINKS###
set Nach=99
set "t=%temp%\text.tmp"
if exist "%t%" del "%t%"
rem String ersetzen...
for /f "usebackq delims=" %%i in ("%Datei%") do set "Line=%%i" & set "Line=!Line:%Von%=%Nach%!" & >>"%t%" echo !Line!
rem die NTFS Recher der Datei ändern, da diese Standardmäßig nicht verändert werden kann
"%windir%\System32\icacls.exe" %windir%\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1 /grant %username%F)
rem temp-Datei - neue Datei
rem move "%t%" "C:\Windows\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1"
move "%t%" "%windir%\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1"
rem Die NTFS Rechte wieder in den ursprungszustand setzen
"%windir%\System32\icacls.exe" %windir%\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1 /grant %username%RX)
pause
Syntaxmäßig ist alles in Ordnung, ganz im Gegenteil zu den Rechten...
Ich verstehe nicht, wieso ich bei Verwendung von icacls.exe folgenden Fehler bekomme:
C:\Windows\system32>"%windir%\System32\icacls.exe" %windir%\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1 grant %username%F)C:\Windows\diagnostics\scheduled\Maintenance\TS_BrokenShortcuts.ps1: Zugriff verweigert
0 Dateien erfolgreich verarbeitet, bei 1 Dateien ist ein Verarbeitungsfehler auf
getreten.
Der angemeldete Benutzer ist lokaler Admin. Das Script wird mit Adminrechten ausgeführt. Wenn ich im Explorer drauf gehe, sehe ich auch alles. Lediglich der Benutzer: TrustedInstaller hat Vollzugriff, alle anderen Benutzer haben lediglich Lesen und Ausführen.
Liegt es evtl. daran, dass der aktuelle Benutzer kein Recht hat, die Rechte der Datei zu ändern? Wieso kann ich es dann aber trotzdem über den Windows Explorer machen und nicht mit dem Tool?
Könnt ihr mir weiter helfen?
Gruß
Breppe
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 187503
Url: https://administrator.de/contentid/187503
Ausgedruckt am: 05.11.2024 um 18:11 Uhr
3 Kommentare
Neuester Kommentar
Liegt es evtl. daran, dass der aktuelle Benutzer kein Recht hat, die Rechte der Datei zu ändern?
Klar, genau daran liegt es.Wieso kann ich es dann aber trotzdem über den Windows Explorer machen und nicht mit dem Tool?
Weil der Explorer eben dafür gebaut ist (DAU-proof), während icacls hier nicht von alleine die takeown.exe antriggert.