Missa inte Månadens Drop!

Radera versioner på Sharepoint?

Permalänk
Medlem

Radera versioner på Sharepoint?

Suttit halva dagen igår i Powershell med diverse olika script men inget har fungerat hittills.

Vad jag vill göra:
Radera alla utom de 10 sista versioner på alla filer på en Sharepoint-sida.
Finns inget inbyggt i SP för detta, helt galet.
Även om man sätter ned antalet/tid på versioner så tar det inte bort de versioner som redan finns.
De ligger då och tar upp en massa utrymme.

DMS Shuttle är det enda fungerande jag hittat men det kostar.
Något tips?

Visa signatur

[ Corsair 460X ] [ Corsair HX750i ] [ AMD Ryzen 5800X ] [ Zotac RTX3080 Trinity OC] [ Asus ROG Strix X570-F Gaming]
[ 32GB G.Skill TridentZ Neo 3800Mhz DDR4 ] [ Samsung 980 Pro 500GB + 960 EVO 500GB ] [ Logitech PRO X 2 ] [ Corsair H115i ] [ Win11 ] [Asus TUF Gaming VG27AQ]

Permalänk
Medlem
Skrivet av SirMacke:

Vad jag vill göra:
Radera alla utom de 10 sista versioner på alla filer på en Sharepoint-sida.
Finns inget inbyggt i SP för detta, helt galet.
Även om man sätter ned antalet/tid på versioner så tar det inte bort de versioner som redan finns.
De ligger då och tar upp en massa utrymme.

Är det Online eller On-Prem?

Har inte jobbat med SharePoint "på riktigt" på flera år nu, utan är endast site owner/admin numera.

Kanske kan detta peka dig åt rätt håll?
https://www.sharepointdiary.com/2018/05/sharepoint-online-del...

Har själv dokument här med nära 100-tals versioner. Kanske inte gör något med en fil på 50kB, men utrymmet krymper snabbt!

Exempel från sidan ovan, där VersionsToKeep är satt till 5;

#Define Parameters $SiteURL = "https://crescent.sharepoint.com/sites/Retail" $FileRelativePath = "/sites/Retail/Shared Documents/Sitemaps.xlsx" $VersionsToKeep = 5 #Connect to PnP Online Connect-PnPOnline -Url $SiteURL -Interactive #Get File Versions $File = Get-PnPFile -Url $FileRelativePath $Versions = Get-PnPProperty -ClientObject $File -Property versions #Notification of file collected Write-host -f Yellow "Scanning File:"$File.Name $VersionsCount = $Versions.Count write-host -f Cyan "`t Total Number of Versions of the File:" $VersionsCount $VersionsToDelete = $VersionsCount - $VersionsToKeep If($VersionsToDelete -gt 0) { write-host -f Cyan "`t Total Number of Versions to be deleted:" $VersionsToDelete #Delete versions For($i=0; $i -lt $VersionsToDelete; $i++) { If($Versions[$i].IsCurrentVersion) { $VersionsToDelete++ Continue } write-host -f Cyan "`t Deleting Version:" $Versions[$i].VersionLabel Remove-PnPFileVersion -Url $FileRelativePath -Identity $Versions[$i].ID -Force } Write-Host -f Green "`t Version History is cleaned for the File:"$File.Name }

Permalänk
Medlem

Nu har jag inte testat detta och jag saxxade det med hjälp av Copilot. Men det ser rimligt ut med den limiterade kodkunskap jag har. Någon annan får gärna bekräfta / modifiera. Testar du bör du göra det på en testsite först!

Install SharePoint Online Management Shell:
If you haven’t already, download and install the SharePoint Online Management Shell.
Connect to SharePoint Online:
Open the SharePoint Online Management Shell and run the following command to connect:
Connect-SPOService -Url https://yourdomain-admin.sharepoint.com

$siteUrl = "https://yourdomain.sharepoint.com/sites/yoursite" $libraryName = "Documents" # Connect to the site Connect-SPOService -Url $siteUrl # Get the list $list = Get-SPOSite -Identity $siteUrl | Get-SPOList -Identity $libraryName # Get all items in the list $items = Get-SPOListItem -List $list foreach ($item in $items) { # Get the versions of the item $versions = $item.Versions # Delete all versions except the last 10 for ($i = 0; $i -lt $versions.Count - 10; $i++) { $versions[$i].Delete() } }

Dold text
Visa signatur

I7 12700K, Asus RTX 3080 TI, Alienware AW3423DW och annat smått o gott.

Permalänk
Medlem

Online.
Har dock testat bägge dessa i PS 5+7 och får en massa om att dena ena och andra modulen inte finns eller argument inte går.
Installerat moduler men samma sak.
Testat olika datorer men icke.
Ska kolla igen på era när jag är vid datorn, kanske skiljer.

Skrivet av walkir:

Är det Online eller On-Prem?

Har inte jobbat med SharePoint "på riktigt" på flera år nu, utan är endast site owner/admin numera.

Kanske kan detta peka dig åt rätt håll?
https://www.sharepointdiary.com/2018/05/sharepoint-online-del...

Har själv dokument här med nära 100-tals versioner. Kanske inte gör något med en fil på 50kB, men utrymmet krymper snabbt!

Exempel från sidan ovan, där VersionsToKeep är satt till 5;

#Define Parameters $SiteURL = "https://crescent.sharepoint.com/sites/Retail" $FileRelativePath = "/sites/Retail/Shared Documents/Sitemaps.xlsx" $VersionsToKeep = 5 #Connect to PnP Online Connect-PnPOnline -Url $SiteURL -Interactive #Get File Versions $File = Get-PnPFile -Url $FileRelativePath $Versions = Get-PnPProperty -ClientObject $File -Property versions #Notification of file collected Write-host -f Yellow "Scanning File:"$File.Name $VersionsCount = $Versions.Count write-host -f Cyan "`t Total Number of Versions of the File:" $VersionsCount $VersionsToDelete = $VersionsCount - $VersionsToKeep If($VersionsToDelete -gt 0) { write-host -f Cyan "`t Total Number of Versions to be deleted:" $VersionsToDelete #Delete versions For($i=0; $i -lt $VersionsToDelete; $i++) { If($Versions[$i].IsCurrentVersion) { $VersionsToDelete++ Continue } write-host -f Cyan "`t Deleting Version:" $Versions[$i].VersionLabel Remove-PnPFileVersion -Url $FileRelativePath -Identity $Versions[$i].ID -Force } Write-Host -f Green "`t Version History is cleaned for the File:"$File.Name }

Testade
Connect-PnPOnline -Url $SiteURL -Interactive
Och fick
Connect-PnPOnline : A parameter cannot be found that matches parameter name 'Interactive'.

Skrivet av Sh4d0wfi3nd:

Nu har jag inte testat detta och jag saxxade det med hjälp av Copilot. Men det ser rimligt ut med den limiterade kodkunskap jag har. Någon annan får gärna bekräfta / modifiera. Testar du bör du göra det på en testsite först!

Install SharePoint Online Management Shell:
If you haven’t already, download and install the SharePoint Online Management Shell.
Connect to SharePoint Online:
Open the SharePoint Online Management Shell and run the following command to connect:
Connect-SPOService -Url https://yourdomain-admin.sharepoint.com

$siteUrl = "https://yourdomain.sharepoint.com/sites/yoursite" $libraryName = "Documents" # Connect to the site Connect-SPOService -Url $siteUrl # Get the list $list = Get-SPOSite -Identity $siteUrl | Get-SPOList -Identity $libraryName # Get all items in the list $items = Get-SPOListItem -List $list foreach ($item in $items) { # Get the versions of the item $versions = $item.Versions # Delete all versions except the last 10 for ($i = 0; $i -lt $versions.Count - 10; $i++) { $versions[$i].Delete() } }

Dold text

Har det installerat, kör
Connect-SPOService -Url https://yourdomain-admin.sharepoint.com
Får:
Connect-SPOService : No valid OAuth 2.0 authentication session exists
EDIT: anger jag adm-url så kommer jag en bit längre men får nästan direkt:
Get-SPOList : The term 'Get-SPOList' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify
that the path is correct and try again.

Visa signatur

[ Corsair 460X ] [ Corsair HX750i ] [ AMD Ryzen 5800X ] [ Zotac RTX3080 Trinity OC] [ Asus ROG Strix X570-F Gaming]
[ 32GB G.Skill TridentZ Neo 3800Mhz DDR4 ] [ Samsung 980 Pro 500GB + 960 EVO 500GB ] [ Logitech PRO X 2 ] [ Corsair H115i ] [ Win11 ] [Asus TUF Gaming VG27AQ]

Permalänk
Medlem
Skrivet av SirMacke:

Online.
Har dock testat bägge dessa i PS 5+7 och får en massa om att dena ena och andra modulen inte finns eller argument inte går.
Installerat moduler men samma sak.
Testat olika datorer men icke.
Ska kolla igen på era när jag är vid datorn, kanske skiljer.

Testade
Connect-PnPOnline -Url $SiteURL -Interactive
Och fick
Connect-PnPOnline : A parameter cannot be found that matches parameter name 'Interactive'.

Har det installerat, kör
Connect-SPOService -Url https://yourdomain-admin.sharepoint.com
Får:
Connect-SPOService : No valid OAuth 2.0 authentication session exists
EDIT: anger jag adm-url så kommer jag en bit längre men får nästan direkt:
Get-SPOList : The term 'Get-SPOList' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify
that the path is correct and try again.

Modulen Connect-SPOService är förlegad och ersätts med Connect-PnPOnline, läs på om hur du installerar den nyare modulen på länken nedan.
https://learn.microsoft.com/en-us/sharepoint/dev/declarative-...

Visa signatur

Also found as @piteball@mastodon.rockhost.se
vSphere Node - Dell PowerEdge R720xd, Xeon E5-2690, 272GB, 3TB SSD, Nvidia Tesla P4
XCP-ng Node - Dell PowerEdge R720xd, Xeon E5-2697v2, 256GB, 2TB SSD
Xpenology Storage - SuperMicro X10SLL-F/SC825TQ, Xeon E3-1231 v3, 16GB, 90TB HDD
Xpenology Backup - Dell PowerEdge R230, Xeon E3-1220v6, 16GB, 12TB HDD