2023-02-01

Powershell ile bilgisayarlar arasında dosya aktarımı

Eğer bir etki alanına üye iki bilgisayar söz konusuysa

Copy-Item \\pc1\paylasim\dosya1 -Destination \\pc2\ortak
$oturum1 = New-PSSession -Computername pc1 -Credential (Get-Credential "pc1\user1")
$oturum2 = New-PSSession -Computername pc2 -Credential (Get-Credential "pc2\user2")

Maalesef, iki oturum arasında bir seferde dosya aktarabilmek için şöyle bir şansımız yok:

Copy-Item C:\klasor1\dosya1.txt -Destination C:\klasor2 -FromSession $oturum1 -ToSession $oturum2

Bunu yapmayı denersek powershell bize FromSession ve ToSession parametrelerinin aynı anda kullanılamayacağını söyler. Bunun yerine kopyalamak istediğimiz dosyayı önce kendi bilgisayarımıza aktarabilir, daha sonra pc2'ye aktarabiliriz:

Copy-Item C:\klasor1\dosya1.txt -Destination D:\depo -FromSession $oturum1
Copy-Item D:\depo\dosya1.txt -Destination C:\klasor2 -ToSession $oturum2

Ya da pc1'deki oturuma girip, $oturum2 nesnesini bu bilgisayarda oluşturup, hedef dosyayı doğrudan pc2'ye aktarabiliriz. Burada sorun pc1'deki oturumda get-credential gibi bir cmdlet'i çağırmak olurdu. Bu durumda da iki seçeneğimiz var. Birincisi credential nesnesini kendi makinemizde oluşturup, bunu $using ile pc1'e göndermek:

$cred2 = Get-Credential "PC2\user2"
Enter-PSSession -Session $oturum1
# pc1
$oturum_pc2 = New-PSSession -Computer pc2 -Credential $using:cred2
# pc1
Copy-Item C:\klasor1\dosya1.txt -Destination C:\klasor2 -ToSession $oturum_pc2

İkinci seçeneğimizde ise credentials nesnesi yerine pc1 üzerindeki oturumda şifreyi açıkça yazmak:

Enter-PSSession -Session $oturum1
# pc1
$kullanici = "PC2\user2"
# pc1
$parola = ConvertTo-SecureString -String "parolamiz" -AsPlainText -Force
# pc1
$cred2 = New-Object -TypeName System.Management.Automation.PSCredential -Argumentlist $kullanici, $parola
# pc1
$oturum_pc2 = New-PSSession -Computername pc2 -Credential $cred2
# pc1
Copy-Item C:\klasor1\dosya1.txt -Destination C:\klasor2 -ToSession $oturum_pc2

En az güvenli olan yöntem, sanıyorum en sondaki oldu, çünkü parolayı açık açık girmek zorunda kaldık.

Hiç yorum yok: