SharePoint Online: PowerShell'i Kullanarak Bir Klasörün Var Olup Olmadığını Kontrol Edin


Gereksinim: SharePoint Online belge kitaplığında bir klasör olup olmadığını kontrol edin.

SharePoint Online: Klasörün Var Olup Olmadığını Kontrol Etmek için PowerShell

SharePoint Online PowerShell komut dosyalarıyla çalışırken, yeni bir klasör oluşturmadan veya mevcut bir klasörü silmeden önce SharePoint Online'da bir klasörün mevcut olup olmadığını belirlemeniz gerekebilir. Bu blog yazısında, SharePoint Online'da bir klasörün olup olmadığını hızlı bir şekilde kontrol etmek için PowerShell'i nasıl kullanacağınızı göstereceğiz!

Bir klasörün mevcut olup olmadığını kontrol etmek için SharePoint Online için PowerShell buradadır:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

#Function to check if folder Exists
Function Check-SPOFolderExists()
{
  param
    (
        [Parameter(Mandatory=$true)] [string] $SiteURL,
        [Parameter(Mandatory=$true)] [string] $FolderRelativeURL
    )
    Try {
        #Get Credentials to connect
        $Cred= Get-Credential
        $Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
 
        #Setup the context
        $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
        $Ctx.Credentials = $Credentials

        #Get the Web
        $Web = $Ctx.Web
        $Ctx.Load($Web)
        $Ctx.ExecuteQuery()

        #Check Folder Exists
        Try { 
            $Folder = $Web.GetFolderByServerRelativeUrl($FolderRelativeURL)
            $Ctx.Load($Folder)
            $Ctx.ExecuteQuery() 

            Write-host -f Green "Folder Exists!"
        }
        Catch {
            Write-host -f Yellow "Folder Doesn't Exist!"
        }        
    }
    Catch {
        write-host -f Red "Error Checking Folder Exists!" $_.Exception.Message
    }
}
 
#Set parameter values
$SiteURL="https://crescent.sharepoint.com/"
$FolderRelativeURL="/Shared Documents/2018"

#Call the function 
Check-SPOFolderExists -SiteURL $SiteURL -FolderRelativeURL $FolderRelativeURL 

Alternatif olarak diğer makalemde kullandığım yöntemi de kullanabilirsiniz: SharePoint Online: PowerShell kullanarak Klasör Oluşturma

SharePoint Online'da bir klasörün olup olmadığını kontrol etmek için PnP PowerShell

Verilen konumda bir klasörün var olup olmadığını kontrol etmenin PnP PowerShell yolu buraya gelir:


#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Operations"
$FolderURL = "/sites/Operations/Shared Documents/Classifieds" #Server Relative URL

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Try to Get the Folder 
$Folder = Get-PnPFolder -Url $FolderURL -ErrorAction SilentlyContinue

#sharepoint online powershell To check if folder exists
If($Folder -ne $null)
{
    Write-Host -f Green "Folder exists!"
}
Else
{
    Write-Host -f Yellow "Folder does not exists!"
}

Tamam, yukarıdaki iki komut dosyası, verilen klasörün belirtilen URL'de bulunup bulunmadığını kontrol eder. SharePoint Online'da bir klasörün belirli bir alt klasörü olup olmadığını kontrol etmeye ne dersiniz?


#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Operations"
$ParentFolderURL = "/Shared Documents" #Site Relative URL
$FolderName = "Classified"

Try{
    #Connect to PnP Online
    Connect-PnPOnline -Url $SiteURL -Interactive

    #Try to Get the Folder from given parent folder
    $Folder = Get-PnPFolderItem -FolderSiteRelativeUrl $ParentFolderURL -ItemType Folder -ItemName $FolderName

    #Powershell To check if folder exists
    If($Folder -ne $null)
    {
        Write-Host -f Green "Folder exists!"
    }
    Else
    {
        Write-Host -f Yellow "Folder does not exists!"
    }
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

Belge Kitaplığının belirli bir Klasöre sahip olup olmadığı PowerShell kullanılarak nasıl kontrol edilir?

Aşağıdaki komut dosyası, verilen belge kitaplığının belirli bir klasöre (kök düzeyinde) sahip olup olmadığını kontrol eder.


#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Operations"
$LibraryName = "Documents"
$FolderName = "Classified"

Try{
    #Connect to PnP Online
    Connect-PnPOnline -Url $SiteURL -Interactive

    #Try to Get the Folder from document library
    $Folder = Get-PnPFolder -List $ListName | Select -ExpandProperty Name | Where {$_.Name -eq $FolderName}

    # check if folder exists in the document library - ONLY AT ROOT LEVEL
    If($Folder -ne $null)
    {
        Write-Host -f Green "Folder exists!"
    }
    Else
    {
        Write-Host -f Yellow "Folder does not exists!"
    }
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

Bu makale, SharePoint Online'da bir klasörün mevcut olup olmadığını belirlemek için PowerShell'i kullanabileceğimizi gösterir. Bu adımları kullanarak, bir klasörü oluşturmadan önce belge kitaplığında veya listede zaten mevcut olup olmadığını veya belirli bir klasörün silindiğini kolayca doğrulayabilirsiniz.

Mevcut değilse yeni bir klasör oluşturmak isterseniz ne olur? PowerShell kullanarak SharePoint Online'da bir klasör oluşturmak için şuraya bakın: PowerShell ile SharePoint Online'da Yeni Klasör nasıl oluşturulur?

İlgili makaleler