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 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 $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, computername parametresinin Invoke-Commanddeğ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-Commandkullanı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

Ayrıca bkz.