当前位置: 首页>>技术教程>>正文


我们如何在SharePoint Foundation 2010中激活审核?

webfans 技术教程 , , , 去评论

问题描述

我们正在尝试将SharePoint审核设置为audit reading of list items,并且在查找如何启用它时遇到问题。

基金会版本是否支持此功能?如果是这样,我们如何激活它?

最佳解决方案

WSS3或SharePoint Foundation中没有审核用户界面。 (非常)基本的接口和报告工具是MOSS 2007和SharePoint Server 2010的一部分。

但是,您可以在SharePoint Foundation上以编程方式启用审核。这不提供任何报告工具,您需要自己编写。

作为third party SharePoint auditing tool背后的作者之一,我已经彻底调查了这一点,请考虑以下因素:

  • 与免费和付费版本的SharePoint一起提供的审计存在严重缺陷。有许多情况根本没有被审计或被错误地审计。

  • 审计数据以非常神秘的方式存储。即使使用’paid for’版本的SharePoint附带的报告工具,也很难解释这些信息。同时报告超时/导致错误的次数。

如果您认真考虑审核,那么请使用get a third party solution。正如我所提到的,我为一家提供这类解决方案的公司工作,因此通常的免责声明适用。

次佳解决方案

我知道这是一个旧帖子,但我有相同的要求,我刚刚使用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 page

有关可以设置的审计标志的完整列表,请参阅MSDN SPAuditMaskType page。要设置多个标志,请将它们列在由按位或运算符分隔的一行上:’-bxor’。例如。

$item.Audit.AuditFlags = [Microsoft.SharePoint.SPAuditMaskType]::View -bxor [Microsoft.SharePoint.SPAuditMaskType]::Update -bxor [Microsoft.SharePoint.SPAuditMaskType]::Delete

第三种解决方案

您需要以编程方式更改SPAudit.AuditFlags属性(有关示例,请参阅链接的文章)。

第四种方案

有一个codeplex项目可以通过功能切换SharePoint Foundation的此设置。它还提供了一些漂亮的UI,用于在浏览器中查看审核日志 – 包括从ECB菜单选项查看单个项目的日志条目的有用功能。

AuditLog for SharePoint 2010 Foundation http://auditlogsp.codeplex.com/

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2705.html,转载请务必附带本地址声明。