SharePoint Foundation 2010の監査をどのようにアクティブ化しますか?
-
16-10-2019 - |
質問
SharePoint監査を設定しようとしています リスト項目の監査読み取り そして、それをオンにする方法を見つけるのに問題があります。
これは財団バージョンでサポートされていますか?もしそうなら、私たちはそれをどのようにアクティブにしますか?
解決
WSS3またはSharePoint Foundationには、監査ユーザーインターフェイスはありません。 (非常に)基本的なインターフェイスおよびレポート機能は、Moss 2007およびSharePoint Server 2010の一部です。
ただし、SharePoint Foundationでプログラムで監査を有効にすることができます。これは、自分自身を書く必要がある報告施設を提供しません。
aの背後にある著者の一人として サードパーティのSharePoint監査ツール これを徹底的に調査しました。以下を考慮してください。
- 監査は、SharePointの無料バージョンと有料の両方のバージョンの両方に出荷されるため、深く欠陥があります。まったく監査されていない、または誤って監査されていない多くの状況があります。
- 監査データは非常に不可解な方法で保存されます。 SharePointの「有料」バージョンに付属のレポート施設を使用しても、情報を解釈することは困難です。また、頻繁にタイムアウト /原因のエラーを報告します。
監査に真剣に取り組んでいる場合 サードパーティのソリューションを取得します. 。私が言ったように、私はこの種のソリューションを提供する会社のために働いているので、通常の免責事項が適用されます。
他のヒント
私はこれが今古い投稿であることを知っていますが、私は同じ要件を持っていて、PowerShellを使用してプログラムで達成したばかりです。
1)アイテムレベルの監査をオンにします。
# Select site
$web = Get-SPWeb http://yoursiteurlhere
# Select document library
$library = $web.lists | Where { $_.Title -eq "Your Doc. Lib. Title Here" }
# Select and loop through library items
$items = $library.items
foreach($item in $items) {
# List current audit flags for item
Write-Host $item.Name $item.Audit.AuditFlags
# Modify audit flags for item
$item.Audit.AuditFlags = [Microsoft.SharePoint.SPAuditMaskType]::View
$item.Audit.Update()
# List new audit flags to confirm change
Write-Host $item.Name $item.Audit.AuditFlags
}
# Dispose of SPWeb variable
$web.Dispose()
2)ログエントリを取得します
# Write header row
Write-Host "File,User,Date/Time,Event,Version"
# Select site
$web = Get-SPWeb http://yoursiteurlhere
# Select document library
$library = $web.lists | Where { $_.Title -eq "Your Doc. Lib. Title Here" }
# Loop through each library item
$items = $library.items
foreach($item in $items) {
# Loop through each audit entry
$entries = $item.Audit.GetEntries()
foreach($entry in $entries) {
# Select the properties from the audit log you want
$file = $entry.DocLocation
# Resolve audit log user ID to SharePoint site user name
$userName = $web.SiteUsers.GetByID($entry.UserId).Name
$dateTime = $entry.Occurred
$event = $entry.Event
$version = $entry.EventData
# Output selected log data
Write-Host "$file,$userName,$dateTime,$event,$version"
}
}
# Dispose of SPWeb variable
$web.Dispose()
このスクリプトは、コンマ分離テキストとして結果を出力し、CSVにコピーして貼り付けて出力する準備ができています。 警告: EventDataプロパティにリストされているドキュメントバージョンは、変更時にSharePointサイトを介して表示されるバージョンの履歴番号と一致しない場合があります。
スクリプトの変更
これらのスクリプトは、ライブラリ/リスト内のすべてのアイテムの監査とログを取得します。ドキュメントライブラリの特定のドキュメントまたはリストの単一のアイテムをターゲットにする必要がある場合は、リスト/ライブラリ内のすべてのアイテムをループするためにForeachを使用する代わりに、アイテム名のクエリを使用してください。例えば
$item = $library.items | where { $_.Name -eq "YourFileName.doc" }
を参照してください msdn spauditentryページ プロパティの完全なリストについては、監査ログから選択できます。
を参照してください msdn spauditmasktypeページ 監査フラグの完全なリストについては、設定できます。複数のフラグを設定するには、ビットワイズまたは演算子で区切られた1つの行にそれらをリストします: '-bxor'。例えば
$item.Audit.AuditFlags = [Microsoft.SharePoint.SPAuditMaskType]::View -bxor [Microsoft.SharePoint.SPAuditMaskType]::Update -bxor [Microsoft.SharePoint.SPAuditMaskType]::Delete
変更する必要があります spaudit.auditflags プロパティプログラム(例については、リンクされた記事を参照)。
機能を介してSharePoint Foundationのこの設定を切り替えるCodePlexプロジェクトがあります。また、ECBメニューオプションから単一のアイテムのログエントリを表示する便利な機能を含め、ブラウザで監査ログを表示するための気の利いたUIも提供します。
SharePoint 2010 Foundationの監査ログhttp://auditlogsp.codeplex.com/