VBScript: Shortcuts for IIS Log Directories

I love parsing through IIS logfiles but I dislike the directory structure that Microsoft creates for IIS logging. Each site has a randomly generated directory name so, for example, “netnerds.net” could store its files in “C:\windows\system32\logfiles\W3SVC720199813.” Who wants to track that down? Not me! Use the attached script to change your ugly directory names into something that’s human readable.

' This script created by Chrissy LeMaire ([email protected])
' Website: http://netnerds.net/
' This script creates human readable shortcuts to your
' IIS logging directories.
' Requirements -- ability to read IIS:// and permissions to
' create subdirectories and files in your logging directory. If you encounter
' any problems, its probably because you don't have proper permissions.
' This script has only been tested on Windows Server 2003.
' "What it does"
' 1. Reads the master log file path (usually C:\windows\system32\logfiles)
' 2. Creates a directory called Shortcuts in the master log file path
' 3. Creates shortcuts to each directory using the website name
'    listed in the IIS websites tree. Done!

  Set objW3SVC = GetObject("IIS://localhost/W3SVC")
  MasterLogFilePath = objW3svc.LogFileDirectory
  shortcutDir = MasterLogFilePath & "\Shortcuts"

     Set fso = CreateObject("Scripting.FileSystemObject")
      If fso.FolderExists(shortcutDir) = FALSE Then
   fso.DeleteFolder(shortcutDir) 'empty it out..keep it clean. so you can run this every few months
    End If
   Set fso = Nothing

For Each objSITE in objW3SVC
  If objSITE.class = "IIsWebServer" Then
   websiteName = objSITE.ServerComment
   w3LogFilePath =  objSITE.LogFileDirectory & "\w3svc" & objSITE.Name

    if  objSITE.LogType > 0 and objSITE.ServerState <> 4 then 'If logging is enabled and the website is running.

         set WshShell = CreateObject("WScript.Shell")
          set oShellLink = WshShell.CreateShortcut(shortcutDir & "" & websiteName & ".lnk")
          oShellLink.TargetPath = w3LogFilePath
          oShellLink.IconLocation = "explorer.exe, 13"
          oShellLink.Description = "Shortcut Script"
          set oShellLink = Nothing
          set WshShell = Nothing

      siteList = siteList & websiteName & " = " & w3LogFilePath & vbCrLf
       end if
   End if

MsgBox siteList 'or not

Chrissy is a Cloud and Datacenter Management & Data Platform MVP who has worked in IT for over 20 years. She is the creator of the popular SQL PowerShell module dbatools, holds a master's degree in Systems Engineering and is coauthor of Learn dbatools in a Month of Lunches. Chrissy is certified in SQL Server, Linux, SharePoint and network security. You can follow her on Twitter at @cl.

Posted in IIS
One comment on “VBScript: Shortcuts for IIS Log Directories
  1. Kev says:

    Hey I was the hardware tech for a small company here in NZ. Today I was promoted to IT guru in charge of our SBS 2003 (the real guy left and my boss remembered me fixing an old VB6 program a year or so ago)
    So my first job of the day was “check the IIS logs for…”
    Hmm where is the log and what do I read it with?

    Googled to here and your IIS.Microsoft.make.it.hard.jh2jgrhgeg7jhge to human script saved me. Now I have a shortcut to the site logs.

Leave a Reply

Your email address will not be published. Required fields are marked *