about_Remote
Kısa açıklama
PowerShell'de uzak komutların nasıl çalıştırıldığı açıklanır.
Uzun açıklama
Uzak komutları, geçici veya kalıcı bir bağlantı kullanarak tek veya birden çok uzak bilgisayarda çalıştırabilirsiniz. Tek bir uzak bilgisayarla etkileşimli oturum da başlatabilirsiniz.
Not
PowerShell uzaktan iletişimini kullanmak için yerel ve uzak bilgisayarları uzaktan iletişim için yapılandırmanız gerekir. Daha fazla bilgi için bkz . about_Remote_Requirements.
Etkileşimli oturum başlatma
Uzak komutları çalıştırmanın en kolay yolu, uzak bir bilgisayarla etkileşimli bir oturum başlatmaktır.
Oturum başladığında, yazdığınız komutlar doğrudan uzak bilgisayarda yazdığınız gibi uzak bilgisayarda çalıştırılır. Her etkileşimli oturumda yalnızca bir bilgisayara bağlanabilirsiniz.
Etkileşimli oturum başlatmak için cmdlet'ini Enter-PSSession
kullanın. Aşağıdaki komut, Server01 bilgisayarıyla etkileşimli bir oturum başlatır:
Enter-PSSession Server01
PowerShell, komut istemini uzak bilgisayarın adını içerecek şekilde değiştirir.
Server01\PS>
Artık Server01 bilgisayarına komutlar yazabilirsiniz.
Etkileşimli oturumu sonlandırmak için şunu yazın:
Exit-PSSession
Daha fazla bilgi için bkz . Enter-PSSession.
Uzak komut çalıştırma
Uzak bilgisayarlarda diğer komutları çalıştırmak için cmdlet'ini Invoke-Command
kullanın.
Tek bir komut veya ilişkisiz birkaç komut çalıştırmak için uzak bilgisayarları belirtmek için computername parametresini Invoke-Command
kullanın. Komut belirtmek için ScriptBlock parametresini kullanın.
Örneğin, aşağıdaki komut Server01 bilgisayarında bir Get-Culture
komut çalıştırır.
Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture}
Kalıcı bağlantı oluşturma
Cmdlet'in Invoke-Command
ComputerName parametresini kullandığınızda, PowerShell uzak bilgisayara geçici bir bağlantı kurar. Komut tamamlandığında bağlantıyı kapatır. Bu geçici oturumda tanımlanan tüm değişkenler veya işlevler kaybolur.
Uzak bilgisayara kalıcı bir bağlantı oluşturmak için cmdlet'ini New-PSSession
kullanın. Örneğin, aşağıdaki komut Server01 ve Server02 bilgisayarlarında PSSessions oluşturur ve ardından PSSessions'ı değişkene $s
kaydeder.
$s = New-PSSession -ComputerName Server01, Server02
PSSession'da komut çalıştırma
PSSession ile işlevler, diğer adlar ve değişkenlerin değerleri gibi verileri paylaşan bir dizi uzak komut çalıştırabilirsiniz. PsSession'da komut çalıştırmak için cmdlet'in Session parametresini Invoke-Command
kullanın.
Örneğin, aşağıdaki komut cmdlet'ini Invoke-Command
kullanarak Server01 ve Server02 bilgisayarlarındaki PSSessions içinde bir Get-Process
komut çalıştırır.
komutu, işlemleri her PSSession'daki bir $p
değişkene kaydeder.
Invoke-Command -Session $s -ScriptBlock {$p = Get-Process}
PSSession kalıcı bir bağlantı kullandığından, değişkeni kullanan $p
aynı PSSession'da başka bir komut çalıştırabilirsiniz. Aşağıdaki komut, içinde $p
kaydedilen işlem sayısını sayar.
Invoke-Command -Session $s -ScriptBlock {$p.count}
Birden çok bilgisayarda uzak komut çalıştırma
Birden çok bilgisayarda uzak komut çalıştırmak için, computername parametresinin Invoke-Command
değerine tüm bilgisayar adlarını yazın. Adları virgülle ayırın.
Örneğin, aşağıdaki komut üç bilgisayarda bir Get-Culture
komut çalıştırır:
Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture}
Bir komutu birden çok PSSessions içinde de çalıştırabilirsiniz. Aşağıdaki komutlar Server01, Server02 ve Server03 bilgisayarlarında PSSessions oluşturur ve ardından PSSessions'ın her birinde bir Get-Culture
komut çalıştırır.
$s = New-PSSession -ComputerName S1, S2, S3
Invoke-Command -Session $s -ScriptBlock {Get-Culture}
Bilgisayarların yerel bilgisayar listesini eklemek için, yerel bilgisayarın adını yazın, bir nokta ().
yazın veya yazın localhost
.
Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}
Uzak bilgisayarlarda betik çalıştırma
Uzak bilgisayarlarda yerel bir betik çalıştırmak için dosyasının FilePath parametresini Invoke-Command
kullanın. Hiçbir dosyayı kopyalamanız gerekmez. Örneğin, aşağıdaki komut betiği S1 ve S2 bilgisayarlarında çalıştırır Sample.ps1
:
Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1
PowerShell, betiğin sonuçlarını yerel bilgisayara döndürür.
Uzak komutu durdurma
Bir komutu kesmek için Ctrl c tuşlarına+basın. PowerShell, kesme isteğini uzak komutu sonlandırdığı uzak bilgisayara geçirir.
Daha fazla bilgi için
uzaktan iletişim için sistem gereksinimleri hakkında bilgi için bkz . about_Remote_Requirements.
Uzak çıkışı biçimlendirme yardımı için bkz . about_Remote_Output.
Uzaktan iletişimin nasıl çalıştığı, uzak verileri yönetme, özel yapılandırmalar, güvenlik sorunları ve diğer sık sorulan sorular hakkında daha fazla bilgi için bkz . PowerShell uzaktan iletişim hakkında SSS.
Uzaktan iletişim hatalarını çözme konusunda yardım için bkz . about_Remote_Troubleshooting.
PSSessions ve kalıcı bağlantılar hakkında bilgi için bkz . about_PSSessions.
PowerShell arka plan işleri hakkında bilgi için bkz . about_Jobs.
Ayrıca bkz.
PowerShell