2017-08-08 14 views
0

このロジックが意味をなさないかどうか確認するか、何か不足しているかどうかを確認してください。最後にアクセスしたウェブサイトを見つける

各IISサイトにはそれぞれ独自のサイトIDがあります。このサイトには、そのサイトIDに基づいた独自のIISログフォルダがあります。したがって、サイトIDが2385の場合、ログフォルダはW3SVC2385です。

「%windir%\ system32 \ inetsrv \ appcmd list site」を実行すると、コマンドラインで各サイトのサイトIDを取得できます。サイトIDは、サイト「サイト名」(ID:####、bindings、State )

ファイルにそのデータをプルすると、サイト名とIDの両方を分離してから、IISログフォルダごとに変数を作成できるはずです。この情報を使用すると、IISログフォルダからファイル情報を取得できます。最後に作成されたログファイルまたは変更されたログファイルが各フォルダで作成/更新された日付を確認することで、そのサイトが最後にアクセスされた日を教えてください。または私は何かを逃していますか?

+0

おそらく、他のコマンドレットを使用してみて、appcmdを使用しないでください。 Get-Websiteは同じことを行い、通常は使いやすくなっています。また、ログファイルがどこに格納されているかを簡単に調べる方法があり、Get-WebConfigurationPropertyを使用してハードコードする必要はありません。 dirの正確なコマンドは次のとおりです。Get-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter 'system.applicationHost/log/centralW3CLogFile' -Name 'directory.value' – Paolis

+0

Paolis - 素晴らしいヒント!ありがとう! –

答えて

0

これは私が思いついたコードです。これは、サイト名がサイトのURLでもある場合にのみ有効です(ここでの例です)。ウェブサイト名をURLステムの最初の部分に挿入します。

これはSharePointファーム向けのものですから、LogParserコマンドでdefault.aspxとhome.aspxもフィルタリングしました。

Get-Websiteを使用して、私はサイト名& idの両方を取得します。私は、URLのステムに名前を追加し、適切なログフォルダに入るためにidを使用し、サイト名に基づいてcsvファイルを作成します。

これが他の人に役立つことを願っています。

$Sites = Get-WebSite 

foreach ($site in $sites) 
{ 
    $id = $SITE.id 
    $name = $site.name 
    $name = $name -replace '\s','' 
    $filename = $name + '.csv' 
    $logfolder = 'D:\LOGS\IISLOGS\W3SVC' + $id 
    $logpath = $logfolder + "\*.*" 

    & "C:\Program Files (x86)\Log Parser 2.2\LogParser.exe" -i:iisw3c "SELECT DISTINCT TO_LOWERCASE(cs-uri-stem),max(date) into "$filename" from $logpath WHERE cs-uri-stem LIKE '%Default.asp%' OR cs-uri-stem LIKE '%home.asp%' group by cs-uri-stem" -o:CSV 

    $Content = @() 
    $NewContent = @() 
    $Content = Get-Content $filename 
    foreach ($line in $Content) 
    { 
     $NewContent += $name + $line 
     } 
    $NewContent[0] = "Site URL,DateLastAccessed" 
    $NewContent | Set-Content $filename 
} 
+0

ニースの解決策。 IISW3C形式では、サイトID(例:SELECT * FROM <2385>)やサイト名(例:SELECT * FROM )の指定もサポートされています。 –

0

私はSharePointタグがこの問題に気付いています。これはSharePointのコンテキストにあるため、SharePoint分析では https://technet.microsoft.com/en-us/library/jj219554.aspx というSharePoint Webアプリケーションの使用状況を追跡しています。これを念頭において、アナリティクスにプログラムでアクセスすることができます: https://radutut.wordpress.com/2013/01/27/how-to-get-search-analytics-reports-programmatically-in-sharepoint-2013/ 最近の利用状況のデータを取得するには

関連する問題