Home > Windows にまつわる e.t.c.

IIS のログ場所を PowerShell で取得する


IIS のログをかき集める事があったので、PowerShell で IIS のログ出力先を取得する関数を書きました。
戻り値オブジェクトに、サイト名と IIS ログの full path 返します。

 

function GetIISLogLocation(){

    # 戻り値
    $ReturnDatas = New-Object System.Collections.ArrayList

    # IIS モジュールインポート
    Import-Module WebAdministration

    $WebSites = Get-Website
    foreach($WebSite in $WebSites){
        # 戻り値用オブジェクト
        $ReturnData = New-Object PSObject | Select-Object SiteName, LogPath

        # サイト名
        $ReturnData.SiteName = $WebSite.name

        # ログ出力先
        $LogDir = $Website.logFile.directory

        # サブディレクトリ名
        $SubDir = "\W3SVC" + $WebSite.id

        # サイトのログ full path
        $LogPathBase = Join-Path $LogDir $SubDir

        # %SystemDrive% を置き換える
        $ReturnData.LogPath = $LogPathBase.Replace( "%SystemDrive%", $env:SystemDrive )

        # 戻り値にセット
        [void]$ReturnDatas.Add($ReturnData)
    }

    return $ReturnDatas
}

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.