Archive for Aralık, 2012

Sharepoint Server 2010 bulk file download


Önerdiğim çözüm ile birlikte geçen gün yapmış olduğum telefon görüşmesi ayrıntısı

Merhaba Timur Bey.

Biz ürün çıkar çıkmaz.Sharepoint 2010 dan Sharepoint 2013 e geçmeyi planlıyoruz  Haliyle şu aralar ürünün BETA sürümü üzerinde testler yapıyoruz.

Bu upgrade işleminden hasar görmemek için ek yöntemler üzerine ne önerirsiniz? Inplace upgrade yöntemi  ile upgrade yaparken  kendimizi biraz daha rahat  hissedebilmek için tüm belgeleri kopyalamayı denedik ama check-in edilmiş belgeleri alamadık. Hatta bu sürükle bırak yöntemi server ı biraz zorladı çünkü sayı olarak çok fazla dökümanımız var. Sürümler noktasında da bize zaten son sürümleri yeterli.

Önerim : Eğer Sharepoint Server üzerindeki tüm belgelerinizi klasör yapıları ile birlikte toplu halde download etmek isterseniz aşağıdaki scripti/kod bloğunu kendi sisteminize göre düzenleyip Powershell ile çalıştırın.

Yani adım adım anlatmam gerekirse..

  • Öncelikle Serverınızda ya da network paylaşımınızda bir Backup klasörü oluşturun.
  • Bu klasöre Server da bu işlemi yapmak istediğiniz kullanıcının yazma yetkisi olsun.
  • Sonra aşağıdaki kod bloğunu kopyalayıp notepad I açın ve BulkFileDownload.ps1 ismini vererek Sharepoint Server ın C sine kaydedin.

######################
$destination = "C:\Backup\\"
$webUrl = http://Server/
$listUrl = http://Server/Shared%20Documents/Forms/
##############################################################

$web = Get-SPWeb -Identity $webUrl
$list = $web.GetList($listUrl)

function ProcessFolder {
    param($folderUrl)
    $folder = $web.GetFolder($folderUrl)
    foreach ($file in $folder.Files) {
        #Ensure destination directory
        $destinationfolder = $destination + "/" + $folder.Url
        if (!(Test-Path -path $destinationfolder))
        {
            $dest = New-Item $destinationfolder -type directory
        }
        #Download file
        $binary = $file.OpenBinary()
        $stream = New-Object System.IO.FileStream($destinationfolder + "/" + $file.Name), Create
        $writer = New-Object System.IO.BinaryWriter($stream)
        $writer.write($binary)
        $writer.Close()
        }
}

#Download root files
ProcessFolder($list.RootFolder.Url)
#Download files in folders
foreach ($folder in $list.Folders) {
    ProcessFolder($folder.Url)
}

Örnekte 80 portundan yayın yapan http://Server ismindeki Sharepoint Server ın “Shared Documents”  belge kitaplığındaki tüm klasör yaısı ile birlikte belgeleri “C:\Backup\” klasörüne download ediyoruz.

Not: Başka bir porttan yayın yapıyorsanız lütfen Server isminden sonra portu belirtiniz. Örnek : http://Server:85

  • Sharepoint Server 2010 da “SharePoint 2010 Management Shell” e sağ tıklayın ve Powershell in Administrator yetkisi ile açılmasını sağlayacak “Run as administrator” başlığına tıklayın.

image

  • açılan ekranda sırasıyla

image

cd\ yazıp enter a tıklayın ve root a düşün

  • son olarak C de yani root ta iken BulkFileDownload.ps1 yazıp enter a basın.

image

c:\BulkFileDownload.ps1

 

Sonuç olarak bu script çalışmasını bitirdiğinde adreslediğiniz tüm dokümanların son sürümleri klasör yapıları ile birlikte yine adreslemiş olduğunuz bir paylaşıma toplu halde indirilmiş olur.

 

Önemli bir ayrıntı ; İçinde belge olmayan klasörler download edilmeyecektir.

 

Faydalı olması dileğiyle.

Comments (3)