Aracılığıyla paylaş


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 Enter-PSSession cmdlet'ini 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 Invoke-Command cmdlet'ini kullanın.

Tek bir komut veya ilgisiz birkaç komut çalıştırmak için, uzak bilgisayarları belirtmek için Invoke-Command parametresini kullanın. komutu belirtmek için ScriptBlock parametresini kullanın.

Örneğin, aşağıdaki komut Server01 bilgisayarında bir Get-Culture komutu çalıştırır.

Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture}

Kalıcı bağlantı oluşturma

cmdlet'in Invoke-Command 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 New-PSSession cmdlet'ini kullanın. Örneğin, aşağıdaki komut Server01 ve Server02 bilgisayarlarında PSSessions oluşturur ve ardından PSSessions'ı $s değişkenine 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 Invoke-Command parametresini kullanın.

Örneğin, aşağıdaki komut Server01 ve Server02 bilgisayarlarındaki PSSessions içinde bir Invoke-Command komutu çalıştırmak için Get-Process cmdlet'ini kullanır. komutu, işlemleri her PSSession'daki bir $p değişkenine kaydeder.

Invoke-Command -Session $s -ScriptBlock {$p = Get-Process}

PSSession kalıcı bir bağlantı kullandığından, aynı PSSession'da $p değişkenini kullanan başka bir komut çalıştırabilirsiniz. Aşağıdaki komut, $pkaydedilen 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, Invoke-Command parametresinin 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 komutu ç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 komutu ç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 localhostyazın.

Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}

Uzak bilgisayarlarda betik çalıştırma

Uzak bilgisayarlarda yerel betik çalıştırmak için dosyasının Invoke-Command parametresini kullanın. Hiçbir dosyayı kopyalamanız gerekmez. Örneğin, aşağıdaki komut S1 ve S2 bilgisayarlarda Sample.ps1 betiğini çalıştırır:

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

Komutu kesmek için Ctrl+ctuş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 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 bakınız