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.
Ich verwende die folgende Problemumgehung bei jeder neuen Installation von IIS 7/8:
Legen Sie die gewünschten Berechtigungen für den Ordner fest
C:\inetpub\logs\LogFiles
Ändern Sie vorhandene Protokollordner, um Berechtigungen zu erben
Füllen Sie die ersten 99 Protokollordner vorab aus
W3SVC1
...W3SVC99
Damit erben sie Berechtigungen, bevor IIS sogar versucht, eine davon zu erstellen. IIS ändert keine Berechtigungen, wenn bereits ein Protokollordner vorhanden ist.Es ist nicht hübsch, aber es erledigt die Arbeit.
quelle
Ich habe meine Site mit Powershell erstellt. Daher habe ich Folgendes hinzugefügt, um den genauen Ordner basierend auf der Site-ID zu erstellen.
quelle