breppe
Goto Top

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%face-sadF)
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%face-sadRX)
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%face-sadF)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

Content-ID: 187503

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

Ausgedruckt am: 05.11.2024 um 18:11 Uhr

Penny.Cilin
Penny.Cilin 05.07.2012 um 10:37:06 Uhr
Goto Top
Möglicherweise musst Du den Besitz übernehmen, damit Du die Berechtigungen ändern kannst.

Gruss Penny
DerWoWusste
DerWoWusste 05.07.2012 um 11:25:24 Uhr
Goto Top
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.
breppe
breppe 09.07.2012 um 14:18:47 Uhr
Goto Top
Hallo,

vielen Dank für eure Antworten. Hab übersehen, mir die Benutzerrechte zu schnappen. Nun funktioniert´s!

Gruß