GetxSPORecycleBinItem.ps1


<#PSScriptInfo
 
.VERSION 1.1
 
.GUID b14c62c6-7eca-4fc5-b5c9-325b2879f7fc
 
.AUTHOR Chendrayan Venkatesan
 
.COMPANYNAME
 
.COPYRIGHT
 
.TAGS SharePointOnline,PowerShell
 
.LICENSEURI
 
.PROJECTURI
 
.ICONURI
 
.EXTERNALMODULEDEPENDENCIES
 
.REQUIREDSCRIPTS
 
.EXTERNALSCRIPTDEPENDENCIES
 
.RELEASENOTES
 
 
#>


<#
 
.DESCRIPTION
 Retrieves SharePoint Site Recyclebin Item
 
#>
 
    <#param
    (
        [Parameter(Mandatory,ValueFromPipeline,ValueFromPipelineByPropertyName)]
        $Url,
 
        [Parameter(Mandatory)]
        [System.Management.Automation.CredentialAttribute()]
        [pscredential]
        $Credential
    )#>



Import-Module 'C:\Program Files\NuGet\Packages\Microsoft.SharePointOnline.CSOM.16.1.5312.1200\lib\net45\Microsoft.SharePoint.Client.dll'
function Get-xSPOSiteRecycleBinItem
{
<#
.SYNOPSIS
    Get-xSPOSiteRecycleBinItem is to retrieve recyle bin items from the given SharePoint site
.DESCRIPTION
    This cmdlet is to retrieve all the SharePoint recyle bin items and allows us to choose the required properties.
.EXAMPLE
    C:\PS> Get-xSPOSiteRecycleBinItem -Url https://contoso.sharepoint.com -Credential "Admin@contoso.onmicrosoft.com"
    Shows all the properties
.EXAMPLE
    C:\PS> Get-xSPOSiteRecycleBinItem -Url https://contoso.sharepoint.com -Credential "Admin@contoso.onmicrosoft.com" | Select Title , Size
    Retrieves Title and Size of the item (Choose the properties required by pressing <Tab> , <Tab>)
.LINK
    https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.client.recyclebinitem.aspx
.NOTES
    Read the MSDN Documentation by executing "help Get-xSPOSiteRecycleBinItem -Online"
#>

    [OutPutType('Microsoft.SharePoint.Client.RecycleBinItem')]
    param
    (
        [Parameter(Mandatory,ValueFromPipeline,ValueFromPipelineByPropertyName)]
        $Url,

        [Parameter(Mandatory)]
        [System.Management.Automation.CredentialAttribute()]
        [pscredential]
        $Credential        
    )
    process
    {
       
        try 
        {
            $SPOClientContext = [Microsoft.SharePoint.Client.ClientContext]::new($Url)
            $SPOClientContext.Credentials = [Microsoft.SharePoint.Client.SharePointOnlineCredentials]::new($Credential.UserName,$Credential.Password)
            $Site = $SPOClientContext.Site
            $SPOClientContext.Load($Site)
            $RecycleBinItemCollection = $Site.RecycleBin
            $SPOClientContext.Load($RecycleBinItemCollection)
            $SPOClientContext.ExecuteQuery()
            $SPOClientContext.Dispose()
            foreach($RecycleBinItem in $RecycleBinItemCollection)
            {
                $RecycleBinItem
            }
        }
        catch 
        {
            $_.Exception.Message
        }
    }
}