PowerShell kullanarak Ağ Dosya Paylaşımını SharePoint'e Geçirme


Gereksinim: PowerShell'i kullanarak Ağ Dosya Paylaşımını SharePoint'e geçirin.

Ağ Dosya Paylaşımını SharePoint'e Aktarmak için PowerShell Komut Dosyası

Ağ dosya paylaşımlarınızı SharePoint'e geçirmenin karmaşık olması gerekmez. PowerShell ile dosyalarınızı hızlı ve kolay bir şekilde SharePoint klasörlerine taşıyabilirsiniz. Bu gönderi size PowerShell kullanarak bir ağ dosya paylaşımının SharePoint'e nasıl taşınacağını gösterecektir.

Tüm dosya ve klasörleri bir ağ yolundan SharePoint belge kitaplığına aktarmak için bu PowerShell betiğini kullanın:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Function to migrate all Files and Folders from FileShare to SharePoint
Function Migrate-FileShareToSharePoint()
{ 
    param
    (
        [Parameter(Mandatory=$true)] [string] $SiteURL,
        [Parameter(Mandatory=$true)] [string] $TargetLibraryName,
        [Parameter(Mandatory=$true)] [string] $SourceFolderPath,
        [Parameter(Mandatory=$false)] [bool] $Overwrite = $False
    )

    #Get the Target Folder to Upload
    $Web = Get-SPWeb $SiteURL
    $TargetLibrary = $Web.Lists[$TargetLibraryName]
    $TargetFolder= $TargetLibrary.RootFolder
 
    #Get All Files and Folders from the Source
    Get-ChildItem $SourceFolderPath -Recurse | ForEach-Object {
        #Get Source Item's metadata
        $CreatedDate= [DateTime]$_.CreationTime
        $ModifiedDate =  [DateTime]$_.LastWriteTime

        If ($_.PSIsContainer -eq $True) #If its a Folder!
        {
            #Frame Target Folder URL
            $TargetFolderRelativeURL = $TargetFolder.ServerRelativeURL+$_.FullName.Replace($SourceFolderPath,[string]::Empty).Replace("\","/")            
            #$Subfolder = $Web.GetFolder($TargetFolder.URL + "/" + $_.Name)
            $FolderToCreate = $Web.GetFolder($TargetFolderRelativeURL)
            
            Write-host -f Yellow "Ensuring Folder '$TargetFolderRelativeURL'" -NoNewline
            #Ensure Target Folder Exists
            If ($FolderToCreate.Exists -eq $false)
            {
                #Create New Sub-Folder
                $FolderToCreate=$Web.Folders.Add($TargetFolderRelativeURL)
                $FolderToCreate.Item["Created"] = $CreatedDate
                $FolderToCreate.Item["Modified"] = $ModifiedDate
                $FolderToCreate.Item.Update()
                
                Write-host -f Green "`tCreated Folder!"
            }
            Else
            {
               Write-host -f Green "`tFolder Already Exists!"
            }
        }
        Else #If its a File
        {   
            $FolderToUpload = $TargetFolder.ServerRelativeURL + $_.DirectoryName.Replace($SourceFolderPath,[string]::Empty).Replace("\","/")
            $TargetFileURL = $FolderToUpload+"/"+$_.Name
            $SourceFilePath = $_.FullName
            
            Write-host -f Yellow "Ensuring File '$TargetFileURL'" -NoNewline
            #Check if file exists
            $FileToUpload = $Web.GetFile($TargetFileURL)
            If($FileToUpload.Exists -and $Overwrite -eq $False)
            {
                Write-host -f Green "`tFile Already Exists!"
            }
            Else
            {
                #Get the file from disk
                $FileStream = ([System.IO.FileInfo] (Get-Item $SourceFilePath)).OpenRead()
    
                #Upload the File to SharePoint Library's Folder
                $ParentFolder = $Web.GetFolder($FolderToUpload)
                $FileToUpload = $ParentFolder.Files.Add($_.Name, $FileStream, $TRUE)
                #Set Metadata
                $FileToUpload.Item["Created"]=$CreatedDate
                $FileToUpload.Item["Modified"]=$ModifiedDate
                $FileToUpload.Item.Update() 
   
                #Close file stream
                $FileStream.Close()
 
                Write-host "`tFile Uploaded Successfully!" -ForegroundColor Green
            }
        }
        #Read-Host
    }
}

#Set parameter values
$SiteURL="https://intranet.crescent.com/sites/marketing/us"
$TargetLibraryName="Documents"
$SourceFolderPath= "\\Cre-LT575\Salaudeen\Project Documents" #Or any local path: "C:\Temp\Docs"
  
#Call the function to Upload All files & folders from network Fileshare to SharePoint library
Migrate-FileShareToSharePoint -SiteURL $SiteURL -SourceFolderPath $SourceFolderPath -TargetLibraryName $TargetLibraryName

Sonuç olarak, bir ağ dosya paylaşımının PowerShell kullanarak SharePoint'e taşınması, büyük miktarlarda veriyi bir platformdan diğerine taşımanın güçlü ve etkili bir yoludur. PowerShell'i kullanarak dosyalar ve klasörler de dahil olmak üzere verilerin ağ dosya paylaşımından SharePoint'e geçişini otomatikleştirebilirsiniz. Bu, verilerin SharePoint'te düzgün şekilde aktarılmasını ve düzenlenmesini sağlarken zamandan ve kaynaklardan tasarruf sağlayabilir.

Ağ dosya paylaşımını SharePoint Online'a geçirmek için şunu kullanın: PowerShell Kullanarak Dosya Paylaşımını SharePoint Online'a Nasıl Geçirirsiniz?

İlgili makaleler