Eğer bir etki alanına üye iki bilgisayar söz konusuysa
PS> Copy-Item \\pc1\paylasim\dosya1 -Destination \\pc2\ortak
şeklinde dosya aktarımı yapılabilir. ama daha karmaşık bir durum olduğunu varsayalım. Bu iki bilgisayar da etki alanının üyesi olmasın. İki bilgisayar için de bir powershell uzak oturumu başlatmış olduğumuzu varsayalım
PS> $oturum1 = New-PSSession -Computername pc1 -Credential (Get-Credential "pc1\user1")
PS> $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:
PS> 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:
PS> Copy-Item C:\klasor1\dosya1.txt -Destination D:\depo -FromSession $oturum1
PS> 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:
PS> $cred2 = Get-Credential "PC2\user2"
PS> Enter-PSSession -Session $oturum1
[pc1] PS> $oturum_pc2 = New-PSSession -Computer pc2 -Credential $using:cred2
[pc1] PS> 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:
PS> Enter-PSSession -Session $oturum1
[pc1] PS> $kullanici = "PC2\user2"
[pc1] PS> $parola = ConvertTo-SecureString -String "parolamiz" -AsPlainText -Force
[pc1] PS> $cred2 = New-Object -TypeName System.Management.Automation.PSCredential -Argumentlist $kullanici, $parola
[pc1] PS> $oturum_pc2 = New-PSSession -Computername pc2 -Credential $cred2
[pc1] PS> 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:
Yorum Gönder