当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] SharePoint Online:使用 PowerShell 禁用版本控制

作者:精品下载站 日期:2024-12-14 15:11:37 浏览:14 分类:玩电脑

SharePoint Online:使用 PowerShell 禁用版本控制


要求:使用 PowerShell 在 SharePoint Online 中禁用版本控制。

如何在 SharePoint Online 中禁用版本控制?

当有人更改文档时,SharePoint Online 中的版本控制功能会创建项目副本,以便我们可以跟踪文档的每次更改并在需要时恢复到旧版本。尽管这是一个很棒的功能,但您可能需要经常将其关闭。虽然可以通过设置“每次编辑此列表中的项目时创建一个版本吗?”来关闭 SharePoint Online 列表中的版本控制?将选项设置为“否”,文档库的版本控制设置中的“无版本控制”选项已被删除!默认情况下,SharePoint Online 文档库中启用版本控制。

[玩转系统] SharePoint Online:使用 PowerShell 禁用版本控制

无法从 Web 用户界面禁用文档库的版本历史记录。所以,我们只剩下 PowerShell 了!让我们看看如何在 SharePoint Online 中关闭版本控制。

SharePoint Online:用于禁用版本控制的 PowerShell

让我们使用 PowerShell 禁用 SharePoint Online 文档库中的版本控制。


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
 
Function Disable-SPOVersioning()
{
    param
    (
        [Parameter(Mandatory=$true)] [string] $SiteURL,
        [Parameter(Mandatory=$true)] [string] $ListName
    )
    Try {
        #Get Credentials to connect
        $Cred= Get-Credential
  
        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
          
        #Get the List
        $List = $Ctx.Web.Lists.GetByTitle($ListName)
         
        #sharepoint online powershell disable versioning
        $List.EnableVersioning = $False
        $List.Update()
        $Ctx.ExecuteQuery() 
        Write-host -f Green "Versioning has been turned OFF at $ListName"
    }
    Catch {
        write-host -f Red "Error:" $_.Exception.Message
    }
}
 
#Set Parameters
$SiteURL="https://crescent.sharepoint.com/sites/marketing"
$ListName="Migration Documents"
 
#Call the function 
Disable-SPOVersioning -SiteURL $SiteURL -ListName $ListName

此 PowerShell 禁用给定文档库的版本历史记录!如何在 SharePoint Online 网站集的所有文档库中禁用版本历史记录?

PnP PowerShell 禁用列表上的版本控制

如何使用 PnP PowerShell 禁用 SharePoint Online 文档库中的版本历史记录?要使用 PnP PowerShell 在 SharePoint Online 中禁用版本控制,请按照下列步骤操作:

  1. 使用 Connect-PnPOnline cmdlet 连接到 SharePoint Online 网站。
  2. 假设您想要禁用站点上特定列表的版本控制。因此,您需要传递相关的站点 URL 和列表名称。
  3. 将 EnableVersioning 属性设置为“False”以禁用版本控制。该属性是一个布尔值,指示是否启用版本。在这种情况下,我们会将此值设置为 $false,因为我们想要完全禁用版本控制。
  4. 这里的所有都是它的!运行此 PowerShell 脚本后,将禁用 SharePoint Online 网站集中指定列表的版本控制。

#Set Parameter
$SiteURL="https://crescent.sharepoint.com/sites/marketing"
$ListName = "Migration Documents"

#Connect to the site
Connect-PnPOnline $SiteURL -Interactive

#Set versioning settings of the List
Set-PnPList -Identity $ListName -EnableVersioning $False

在 SharePoint Online 网站的所有文档库中禁用版本控制

让我们关闭 SharePoint Online 网站集中的版本历史记录:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
 
#Function to Disable Versioning on All Document Libraries in a SharePoint Online Site
Function Disable-SPOVersionHistory()
{
    param
    (
        [Parameter(Mandatory=$true)] [string] $SiteURL
    )
    Try {
        Write-host -f Yellow "Processing site:"$SiteURL

        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = $Global:Credentials
  
        #Get the site, subsites and lists from given site
        $Web = $Ctx.web
        $Ctx.Load($Web)
        $Ctx.Load($Web.Lists)
        $Ctx.Load($web.Webs)
        $Ctx.executeQuery()

        #Array to exclude system libraries
        $SystemLibraries = @("Form Templates", "Pages", "Preservation Hold Library","Site Assets", "Site Pages", "Images",
                            "Site Collection Documents", "Site Collection Images","Style Library")
        
        #Get All document libraries
        $DocLibraries = $Web.Lists | Where {$_.BaseType -eq "DocumentLibrary" -and $_.Hidden -eq $False -and $_.Title -notin $SystemLibraries}
        ForEach($Library in $DocLibraries)
        {
            #disable versioning in each document library
            $Library.EnableVersioning = $False
            $Library.Update()
            $Ctx.ExecuteQuery() 
            Write-host -f Green "`tVersioning has been turned OFF at '$($Library.Title)'"
        }
 
        #Iterate through each subsite
        ForEach ($Subweb in $Web.Webs)
        {
            #Call the function recursively
            Disable-SPOVersionHistory($Subweb.url)
        }
    }
    Catch {
        write-host -f Red "Error:" $_.Exception.Message
    }
}

#Set Parameters
$SiteURL="https://crescent.sharepoint.com/sites/marketing"

#Get Credentials to connect
$Cred= Get-Credential
$Global:Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

#Call the function to disable versions on all document libraries
Disable-SPOVersionHistory -SiteURL $SiteURL

这将禁用给定网站集的所有文档库(隐藏和排除的系统库除外)中的版本控制。这是有关配置版本历史记录设置 SharePoint Online 的另一篇文章:SharePoint Online:使用 PowerShell 启用版本控制

启用“无版本控制”并删除租户级别的最低版本控制限制

您可以使用以下 PowerShell cmdlet 在租户级别启用“无版本控制”并禁用 100 的最低版本要求:


Import-Module Microsoft.Online.SharePoint.Powershell -DisableNameChecking

#Parameters
$AdminCenterURL="https://Crescent-admin.sharepoint.com"

#Setup Credentials to connect
Connect-SPOService -Url $AdminCenterURL -Credential (Get-Credential)

Set-SPOTenant -EnableMinimumVersionRequirement $False

需要一段时间才能反映此更改(我花了 5 分钟),并启用版本控制设置下的“无版本控制”选项,并删除了 100 个最低版本要求(这样您就不会得到“您必须输入100 到 50000 之间的数字。”验证消息!)

[玩转系统] SharePoint Online:使用 PowerShell 禁用版本控制

创建一个新的文档库,并关闭版本历史记录

这是创建禁用版本控制的文档库的另一个技巧:

  1. 转到:网站内容页面>>单击“添加应用程序”>>选择“文档库”。
  2. 单击“高级选项”链接。现在,您将获得一个选项来禁用要创建的新文档库的版本控制。
  3. 只需为“每次编辑此文档库中的文件时创建一个版本”选择“否”即可。

    [玩转系统] SharePoint Online:使用 PowerShell 禁用版本控制

这将创建一个新的文档库,但未启用版本控制功能。

结论

版本控制功能允许随着时间的推移保存和跟踪文档或文件的多个版本。然而,可能有一天不再需要或不需要版本控制。人们可能出于多种原因想要在 SharePoint 中禁用版本控制,例如节省存储空间和降低成本。如本文所述,在 SharePoint Online 中禁用版本控制是一个简单的过程,可以通过 PowerShell 执行。

经常问的问题:

如何在 SharePoint 中打开版本控制?

若要在 SharePoint Online 中打开版本控制,请转到要在其中启用版本控制的文档库或列表。单击齿轮图标并选择“库设置”或“列表设置”。在“常规设置”下,单击“版本控制设置”。从那里,您可以选择启用版本控制并设置要保留的版本数量。顺便说一句,SharePoint Online 中默认启用版本历史记录。
详细信息:在 SharePoint Online 中启用版本历史记录

如何在SharePoint中上传新版本?

要在 SharePoint 中上传新版本,您可以打开要更新的文档并对其进行更改。然后,保存文档,SharePoint 将自动创建文档的新版本,其中包含元数据,例如保存者和创建时间。或者,如果您在同一位置上传具有相同名称的文档,将会创建一个新版本!

如何删除 SharePoint 中旧版本的文件?

要删除 SharePoint Online 中旧版本的文件,请转到该文件所在的文档库,右键单击该文件,然后选择“版本历史记录”。从那里,您可以选择要删除的版本,然后单击“删除”。您还可以选择通过单击版本历史记录页面中的“删除所有版本”来一次性删除文件的所有先前版本。
更多信息:如何删除 SharePoint 中的版本历史记录?

如何在SharePoint中恢复版本历史记录?

要恢复 SharePoint 中的版本历史记录,您可以转到文件或项目的版本历史记录页面,然后选择要恢复的版本。然后,将鼠标悬停在版本旁边并选择向下箭头以获取选项列表。从那里,选择“恢复”以恢复所选版本。 SharePoint 将删除的版本移至回收站,并可在 93 天内恢复。
详细信息:如何在 SharePoint 中恢复版本历史记录?

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯