Comparing sensitive data, confidential files or internal emails?

Most legal and privacy policies prohibit uploading sensitive data online. Diffchecker Desktop ensures your confidential information never leaves your computer. Work offline and compare documents securely.

powershell shell diff

Created Diff never expires
82 removals
95 lines
71 additions
82 lines
function Get-SPOFolderFiles
function Get-sPOFolderFiles
{
{
param (
param(
[Parameter(Mandatory=$true,Position=1)]
[Parameter(Mandatory = $true,Position = 1)]
[string]$Username,
[string]$Username,
[Parameter(Mandatory=$true,Position=2)]
[Parameter(Mandatory = $true,Position = 2)]
[string]$Url,
[string]$Url,
[Parameter(Mandatory=$true,Position=3)]
[Parameter(Mandatory = $true,Position = 3)]
$password,
$password,
[Parameter(Mandatory=$true,Position=4)]
[Parameter(Mandatory = $true,Position = 4)]
[string]$ListTitle,
[string]$ListTitle
[Parameter(Mandatory=$true,Position=5)]
)
[string]$CSVPath
)



$ctx=New-Object Microsoft.SharePoint.Client.ClientContext($Url)
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext ($Url)
$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $password)
$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials ($Username,$password)
$ctx.Load($ctx.Web)
$ctx.Load($ctx.Web)
$ctx.ExecuteQuery()
$ctx.ExecuteQuery()
$ll=$ctx.Web.Lists.GetByTitle($ListTitle)
$ll = $ctx.Web.Lists.GetByTitle($ListTitle)
$ctx.Load($ll)
$ctx.Load($ll)
$ctx.ExecuteQuery()
$ctx.ExecuteQuery()
$spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery
$spqQuery = New-Object Microsoft.SharePoint.Client.CamlQuery
$spqQuery.ViewXml ="<View Scope='RecursiveAll' />";
$spqQuery.ViewXml = "<View Scope='RecursiveAll'><RowLimit>100</RowLimit></View>";
$itemki=$ll.GetItems($spqQuery)
$ctx.Load($itemki)
$ctx.ExecuteQuery()


foreach($item in $itemki)
do {
{
$itemki = $ll.GetItems($spqQuery)
$ctx.Load($itemki)
$ctx.ExecuteQuery()


Write-Host $item["FileRef"]
foreach ($item in $itemki)
$file =
{
$ctx.Web.GetFileByServerRelativeUrl($item["FileRef"]);
$ctx.Load($file)
$ctx.Load($file.Versions)
$ctx.ExecuteQuery()
if ($file.Versions.Count -eq 0)
{
$obj=New-Object PSObject
$obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl)
$obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"])
$obj | Add-Member NoteProperty Versions("No Versions Available")


$obj | export-csv -Path $CSVPath -Append
Write-Host $item["FileRef"]
$file =
$ctx.Web.GetFileByServerRelativeUrl($item["FileRef"]);
$ctx.Load($file)
$ctx.Load($file.Versions)
$ctx.ExecuteQuery()
if ($file.Versions.Count -eq 0)
{
$obj = New-Object PSObject
$obj | Add-Member NoteProperty ServerRelativeUrl ($file.ServerRelativeUrl)
$obj | Add-Member NoteProperty FileLeafRef ($item["FileLeafRef"])
$obj | Add-Member NoteProperty Versions ("No Versions Available")
}
else
{
$file.Versions.DeleteAll()

try { $ctx.ExecuteQuery()
$obj = New-Object PSObject
$obj | Add-Member NoteProperty ServerRelativeUrl ($file.ServerRelativeUrl)
$obj | Add-Member NoteProperty FileLeafRef ($item["FileLeafRef"])
$obj | Add-Member NoteProperty Versions ($file.Versions.Count + " versions were deleted")
}
}
else
catch {
{
$obj = New-Object PSObject
$file.Versions.DeleteAll()
$obj | Add-Member NoteProperty ServerRelativeUrl ($file.ServerRelativeUrl)

$obj | Add-Member NoteProperty FileLeafRef ($item["FileLeafRef"])
try { $ctx.ExecuteQuery()
$obj | Add-Member NoteProperty Versions ($file.Versions.Count + " versions. Failed to delete")
$obj=New-Object PSObject
$obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl)
$obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"])
$obj | Add-Member NoteProperty Versions($file.Versions.Count + " versions were deleted")

$obj | export-csv -Path $CSVPath -Append
}
catch {
$obj=New-Object PSObject
$obj | Add-Member NoteProperty ServerRelativeUrl($file.ServerRelativeUrl)
$obj | Add-Member NoteProperty FileLeafRef($item["FileLeafRef"])
$obj | Add-Member NoteProperty Versions($file.Versions.Count + " versions. Failed to delete")

$obj | export-csv -Path $CSVPath -Append

}
}
}

}

}
$spqQuery.ListItemCollectionPosition = $itemki.ListItemCollectionPosition
}
} while ($itemki.ListItemCollectionPosition)






}
}


#Paths to SDK
#Paths to SDK
Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path ".\Lib\Microsoft.SharePoint.Client.dll"
Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Add-Type -Path ".\Lib\Microsoft.SharePoint.Client.Runtime.dll"

#Enter the data
#Enter the data
$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString
$Url = "https://TODO-my.sharepoint.com/personal/TODO_SITE_NAME"
$username="trial@trialtrial125.onmicrosoft.com"
$Url="https://trialtrial125.sharepoint.com/sites/teamsitewithlibraries"
$ListTitle="Not-Empty-Document-Library"
$csvPath="C:\Users\ivo\Desktop\testpath114.csv"


$username = "TODO_USERNAME"
$AdminPassword = ConvertTo-SecureString -String "TODO_PASSWORD" -AsPlainText -Force
#$AdminPassword=Read-Host -Prompt "Enter password" -AsSecureString


Get-sPOFolderFiles -Username $username -Url $Url -password $AdminPassword -ListTitle $ListTitle -CSVPath $csvPath
#$ListTitle = "文档"
$ListTitle="Documents"

Get-sPOFolderFiles -UserName $username -Url $Url -password $AdminPassword -ListTitle $ListTitle