IIS erstellt die W3SVCx-Ordner nach der ersten Anforderung an eine neu erstellte Site. Außerdem legt IIS die NTFS-Berechtigungen unabhängig von den Berechtigungen des übergeordneten Ordners und seinen Vererbungseinstellungen fest. Es werden folgende Berechtigungen festgelegt:
NT AUTHORITY\SYSTEM:(OI)(CI)(F)
BUILTIN\Administrators:(OI)(CI)(F)
Ich kenne keinen Weg, um IIS zu sagen, dies nicht zu tun. Sie müssen daran denken, dass Sie nach dem Einrichten einer neuen Site einmal darauf klicken und dann die Berechtigungen für den Protokollordner festlegen.
Wenn Sie viele Sites einrichten, verwenden Sie stattdessen ein Skript. Ich benutze PowerShell:
New-WebSite -Name "peter.superuser.com" -port 80 -id 106 -PhysicalPath "C:\inetpub\peter.superuser.com" -HostHeader peter.superuser.com
(New-Object System.Net.WebClient).DownloadString("http://peter.superuser.com")
start-sleep -seconds 1
& icacls.exe "C:\inetpub\logs\LogFiles\W3SVC106" /Q /grant "BUILTIN\Users:`(OI`)`(CI`)`(RX`)"
Ich erstelle die Site, klicke dann auf die Homepage, warte eine Sekunde und setze dann die Berechtigungen für den Protokollordner.
Wenn Sie die ID der Site nicht kennen, verwenden Sie
$newId = (get-childitem IIS:\Sites | where{$_.Name -eq "peter.superuser.com"}).Id
& icacls.exe "C:\inetpub\logs\LogFiles\W3SVC$newId" /Q /grant "BUILTIN\Users:`(OI`)`(CI`)`(RX`)"
um die ID zu erhalten, nachdem Sie die Site erstellt haben.
Um dies zu verwenden, müssen Sie je nach Betriebssystem das Scripting für IIS aktivieren.