İnetpub \ logs \ LogFiles (W3SVC1, W3SVC2, vb.) Altında birden çok web sitesi ve birden çok klasör vardır. Belirli bir web sitesi tarafından hangi klasörün kullanıldığını nasıl bulabilirim?
İnetpub \ logs \ LogFiles (W3SVC1, W3SVC2, vb.) Altında birden çok web sitesi ve birden çok klasör vardır. Belirli bir web sitesi tarafından hangi klasörün kullanıldığını nasıl bulabilirim?
Yanıtlar:
Tamam, bu özelliği buldum - "site kimliği" denir ve web sitesinin "Gelişmiş Özellikler" nde bulunur.
'IIS yöneticisini açın, üst düzey web siteleri klasörünü tıklayın, sağ bölmedeki site listelerini görüntüleyin, Uygulama Kimlikleri'ni listeleyin.'
Komut satırını kullanarak da alabiliriz:
C:\>%windir%\system32\inetsrv\appcmd list site
Çıktı aşağıdaki gibi olacaktır:
SITE "Default Web Site" (id:1,bindings:HTTP/*:80:,state:Started)
SITE "Site1" (id:2,bindings:http/*:81:,state:Started)
Kimlik alanı, günlük dosyalarında bulunan kimliğe karşılık gelir. inetpub \ logs \ LogFiles (W3SVC1, W3SVC2
IIS yöneticisinin web sitesi özelliklerinden bulabilirsiniz. IIS 6 ile Web Sitesi Kimliği, Web Sitesi Kimliği 1 olan Varsayılan Web Sitesi dışında oluşturulan her site için rasgele oluşturulmuş bir sayıdır.
Örneğin:
Bunların hangi web sitesine ait olduğunu bilmek, her web sitesine manuel olarak bakmanızı gerektirdiği için bir sorundur. Aşağıdaki VB betiği, kimliği ve adı vermenize olanak tanır.
Komut dosyasını .VBS dosya uzantısına sahip bir dosyaya kaydedin ve sonra bu komutu kullanarak çalıştırın (IIS 6 için).
cscript MyFile.VBS
Function ProcessWebSite(ServiceType, SiteNumber)
Set IISWebSite = getObject("IIS://localhost/" & ServiceType & "/" & SiteNumber)
Set IISWebSiteRoot = getObject("IIS://localhost/" & ServiceType & "/" & SiteNumber & "/root")
ProcessWebSite = IISWebSite.ServerComment
Set IISWebSiteRoot = nothing
Set IISWebSite = Nothing
end function
Function ShowSites(ServiceType, ClassName, Title)
Wscript.echo "Web Sites Description"
Wscript.echo "==============================================================="
Set IISOBJ = getObject("IIS://localhost/" & ServiceType)
for each Web in IISOBJ
if (Web.Class = ClassName) then
wscript.echo Ucase(ServiceType) & "/" & Web.Name & _
Space(17-(len(Ucase(ServiceType))+1+len(Web.Name))) & " " & _
ProcessWebSite(ServiceType, Web.name)
end if
next
Set IISOBj=Nothing
WScript.Echo ""
End function
Call ShowSites("w3svc", "IIsWebServer", "Web")
Bunu yapmanın başka bir yolu daha var: Tüm IIS günlükleri, PORT Kimliği'ni Günlüklerin bir parçası olarak yazar. Örnek bir IIS günlüğü şöyle görünebilir: 2018-06-08 18:17:29 10.172.87.35 HEAD / hbeat / - 26358 - 192.xxx.xxx.xxx - - 200 0 0 0
yukarıdaki örnekte, 26358 bağlantı noktası kimliğimdir ve bunun aynı sunucudaki web sitelerinizden hangisine karşılık geldiğini bileceksiniz. Yani sadece günlük dosyasını açın ve bağlantı noktası numarasını arayın.