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ı tek bir bilgisayarda veya birden çok bilgisayarda geçici veya kalıcı bir bağlantı kullanarak çalıştırabilirsiniz. Tek bir uzak bilgisayarla etkileşimli oturum da başlatabilirsiniz.

Bu konuda, farklı uzak komut türlerini çalıştırmayı gösteren bir dizi örnek verilmiştir. Bu temel komutları denedikten sonra, bu komutlarda kullanılan her cmdlet'i açıklayan Yardım konularını okuyun. Konular ayrıntıları sağlar ve komutları gereksinimlerinizi karşılayacak şekilde nasıl değiştirebileceğinizi açıklar.

Not: PowerShell uzaktan iletişimini kullanmak için yerel ve uzak bilgisayarların uzaktan iletişim için yapılandırılması gerekir. Daha fazla bilgi için bkz. about_Remote_Requirements.

ETKILEŞIMLI OTURUM BAŞLATMA (ENTER-PSSESSION)

Uzak komutları çalıştırmanın en kolay yolu, uzak bir bilgisayarla etkileşimli bir oturum başlatmaktır.

Oturum başlatıldığında, yazdığınız komutlar uzak bilgisayarda doğrudan uzak bilgisayarda yazdığınız gibi çalışır. Her etkileşimli oturumda yalnızca bir bilgisayara bağlanabilirsiniz.

Etkileşimli bir 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

Komut istemi, Server01 bilgisayarına bağlı olduğunuzu gösterecek şekilde değişir.

Server01\PS>

Artık Server01 bilgisayarına komut yazabilirsiniz.

Etkileşimli oturumu sonlandırmak için şunu yazın:

Exit-PSSession

Daha fazla bilgi için bkz. Enter-PSSession.

UZAK VERILERI ALMAK IÇIN COMPUTERNAME PARAMETRESINE SAHIP CMDLET'LERI KULLANMA

Çeşitli cmdlet'ler, uzak bilgisayarlardan nesne almanızı sağlayan bir ComputerName parametresine sahiptir.

Bu cmdlet'ler WS-Management tabanlı PowerShell uzaktan iletişimini kullanmadığından, Bu cmdlet'lerin ComputerName parametresini PowerShell çalıştıran herhangi bir bilgisayarda kullanabilirsiniz. Bilgisayarların PowerShell uzaktan iletişim için yapılandırılması gerekmez ve bilgisayarların uzaktan iletişim için sistem gereksinimlerini karşılaması gerekmez.

Aşağıdaki cmdlet'ler bir ComputerName parametresine sahiptir:

Clear-EventLog    Limit-EventLog
Get-Counter       New-EventLog
Get-EventLog      Remove-EventLog
Get-HotFix        Restart-Computer
Get-Process       Show-EventLog
Get-Service       Stop-Computer
Get-WinEvent      Test-Connection
Get-WmiObject     Write-EventLog

Örneğin, aşağıdaki komut Server01 uzak bilgisayarındaki hizmetleri alır:

Get-Service -ComputerName Server01

Genellikle, özel yapılandırma olmadan uzaktan iletişimi destekleyen cmdlet'lerin bir ComputerName parametresi vardır ve Session parametresi yoktur. Oturumunuzda bu cmdlet'leri bulmak için şunu yazın:

Get-Command | Where-Object {
  $_.Parameters.Keys -contains 'ComputerName' -and
  $_.Parameters.Keys -notcontains 'Session'
}

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 birkaç ilgisiz komut çalıştırmak için, uzak bilgisayarları belirtmek üzere Invoke-Command ComputerName 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}

ComputerName parametresi, tek bir komutu veya bir veya birden çok bilgisayarda ilişkisiz birkaç komutu çalıştırdığınız durum için tasarlanmıştır. Uzak bir bilgisayara kalıcı bağlantı kurmak için Session parametresini kullanın.

KALıCı BAĞLANTı OLUŞTURMA (PSSESSION)

Invoke-Command cmdlet'in ComputerName parametresini kullandığınızda, Windows PowerShell yalnızca komutu için bir bağlantı kurar. Ardından, komut tamamlandığında bağlantıyı kapatır. komutunda tanımlanan tüm değişkenler veya işlevler kaybolur.

Uzak bilgisayara kalıcı 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 Invoke-Command cmdlet'in Session parametresini kullanın.

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

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

PSSession kalıcı bir bağlantı kullandığından, aynı PSSession içinde $p değişkenini kullanan başka bir komut çalıştırabilirsiniz. Aşağıdaki komut, $p kaydedilen işlemlerin 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'un ComputerName 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 PSSession 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 (.) veya "localhost" yazın.

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 Invoke-Command dosyasının FilePath parametresini kullanın.

Ö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

Betiğin sonuçları yerel bilgisayara döndürülür. Herhangi bir dosyayı kopyalamanız gerekmez.

UZAK KOMUTU DURDURMA

Bir komutu kesmek için CTRL+C tuşlarına basın. Kesme isteği uzak komutu sonlandırdığı uzak bilgisayara geçirilir.

DAHA FAZLA BİlGİ İÇİN

ANAHTAR KELİME -LER

about_Remoting

Ayrıca bkz.