Windows Powershell ile FTP Dosya Upload İşlemi

Benden istenen şey farklı lokasyonlardaki bilgisayarlardan belirli mp3 dosyalarını yedeklemekti. Eski usül olarak kullanıcı ftp programı yardımı ile dosyaları yüklüyordu. 

Biraz daha kolay olması ve anlık yapabilmeleri için Web Disk oluşturmayı düşündüm. Fakat windows 7 de bazı sorunlar çıkarttı dns hataları verdi. DNS sorunlarıyla uğraşmak yerine ilk batch ile ftp'ye dosya yükleme yapbilir miyim diye araştırma yaptım daha sonra batch yerine powershell ile basit daha sağlıklı olacağı kanaatine vardım.

"PowerShell bir komut satırı kabuğundan, bir betik dilinden ve yapılandırma yönetimi çerçevesinden yapılmış platformlar arası bir görev otomasyon çözümüdür."

Fakat uygulamada şöyle bir sorun vardı. Kullanıcı powershell uygulamasına sağ tıklayıp Run With Powershell'e tıklaması gerekli. Bunuda batch ile çözdüm.

Uygulama kısa olarak c altında kayitlar klasöründeki tüm mp3 dosyalarını buluyor ve siteadresi.com/yuklenecekdosya klasörüne yüklüyor. 

Ekran görüntüsü:

powershell ile ftp dosya upload



Yukle.ps1

#bilgisayardan ftp ye yüklenecek klasör

$Dir="c:/kayitlar"

#ftp server ayarları

$ftp = "ftp://ftp.siteadresi.com/yuklenecekdosya"

$user = "kullaniciadi"

$pass = "sifre"

$webclient = New-Object System.Net.WebClient 

$webclient.Credentials = New-Object System.Net.NetworkCredential($user,$pass)  

#klasördeki mp3 dosyalarını listeler

foreach($item in (dir $Dir "*.mp3")){ 

"Uploading $item..."

$uri = New-Object System.Uri($ftp+$item.Name) 

$webclient.UploadFile($uri, $item.FullName) 

 }

#işlem bitince pcyi kapat

Stop-Computer


Batch kodunda dikkat etmeniz gerek powershell kodunun doğru konumda olması. Windows 7 lerde powershell kodunu çalıştırdığınızda hata alabilirsiniz. Windows güvenlikten dolayı programı engelleyecektir. Fakat  executionpolicy remotesigned -File komutu bu sorunu ortadan kaldırır. Uygulamaya tam yetki vermiş oluyorsunuz. 

yukle.bat

Powershell.exe -executionpolicy remotesigned -File  C:\yukle.ps1

Yorumlar

Bu blogdaki popüler yayınlar

Stormfall: Saga of Survival Hile

Php ile Windows Uygulama Yapmak Başlangıç (PHP Desktop)

Rise Of Civilizations