Aracılığıyla paylaş


about_PSSessions

Kısa açıklama

PowerShell oturumlarını (PSSessions) açıklar ve uzak bir bilgisayara kalıcı bağlantı kurmayı açıklar.

Uzun açıklama

Uzak bir bilgisayarda PowerShell komutlarını çalıştırmak için, cmdlet'in ComputerName parametresini kullanabilir veya bir PowerShell oturumu (PSSession) oluşturabilir ve PSSession'da komutlar çalıştırabilirsiniz.

PSSession oluşturduğunuzda PowerShell uzak bilgisayara kalıcı bir bağlantı kurar. Uzak bir bilgisayarda bir dizi ilgili komut çalıştırmak için PSSession kullanın. Aynı PSSession'da çalışan komutlar değişkenlerin, diğer adların ve işlevlerin değerleri gibi verileri paylaşabilir.

Ayrıca yerel bilgisayarda bir PSSession oluşturabilir ve içinde komutlar çalıştırabilirsiniz. Yerel bir PSSession, PSSession'u oluşturmak ve sürdürmek için PowerShell uzaktan erişim altyapısını kullanır.

Windows PowerShell 3.0 sürümünden itibaren Windows'taki PSSessions, oluşturuldukları oturumlardan bağımsızdır. Uzak bilgisayarda (veya bağlantının uzak ucunda, yani "sunucu tarafında" bulunan bilgisayarda) etkin PSSessions korunur. Sonuç olarak, Windows'ta uzak bir Windows bilgisayarda PSSession bağlantısını kesebilir ve daha sonra aynı bilgisayardan veya farklı bir Windows bilgisayarından bu bilgisayara yeniden bağlanabilirsiniz.

Bu konuda PSSessions oluşturma, kullanma, alma ve silme işlemleri açıklanmaktadır. Daha gelişmiş bilgi için bkz. about_PSSession_Details.

Not: PSSessions, PowerShell uzaktan iletişim altyapısını kullanmaktadır. PSSessions 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.

Windows Vista'da ve Windows'un sonraki sürümlerinde, yerel bir bilgisayarda PSSession oluşturmak için PowerShell'i "Yönetici olarak çalıştır" seçeneğiyle başlatmanız gerekir.

Oturum Nedir?

Oturum, PowerShell'in çalıştığı bir ortamdır.

PowerShell'i her başlattığınızda, sizin için bir oturum oluşturulur ve oturumda komutları çalıştırabilirsiniz. Ayrıca, oturumunuza modüller ve ek bileşenler gibi öğeler ekleyebilir ve değişkenler, işlevler ve diğer adlar gibi öğeler oluşturabilirsiniz. Bu öğeler yalnızca oturumda bulunur ve oturum sona erdiğinde silinir.

Ayrıca, yerel bilgisayarda veya uzak bir bilgisayarda "PowerShell oturumları" veya "PSSessions" olarak bilinen kullanıcı tarafından yönetilen oturumlar da oluşturabilirsiniz. Varsayılan oturumda olduğu gibi, pssession'da komutları çalıştırabilir ve öğe ekleyip oluşturabilirsiniz. Ancak, otomatik olarak başlayan oturumun aksine, oluşturduğunuz PSSessions'ı denetleyebilirsiniz. Bunları alabilir, oluşturabilir, yapılandırabilir ve kaldırabilir, bağlantıyı kesebilir ve bunlara yeniden bağlanabilir ve aynı PSSession'da birden çok komut çalıştırabilirsiniz. PSSession, tarafınızdan silinene veya zaman aşımına uğrayana kadar kullanılabilir durumda kalır.

Genellikle, uzak bir bilgisayarda bir dizi ilgili komutu çalıştırmak için bir PSSession oluşturursunuz. Uzak bir bilgisayarda PSSession oluşturduğunuzda, PowerShell oturumu desteklemek için uzak bilgisayara kalıcı bir bağlantı kurar.

veya Invoke-Command cmdlet'inin Enter-PSSession parametresini kullanarak uzak bir komut çalıştırır veya etkileşimli bir oturum başlatırsanız, PowerShell uzak bilgisayarda geçici bir oturum oluşturur ve komut tamamlanır tamamlanmaz veya etkileşimli oturum biter bitmez oturumu kapatır. Bu geçici oturumları denetleyemezsiniz ve bunları tek bir komut veya tek bir etkileşimli oturum için kullanamazsınız.

PowerShell'de "geçerli oturum", üzerinde çalıştığınız oturumdur. "Geçerli oturum", geçici oturum veya PSSession da dahil olmak üzere herhangi bir oturuma başvurabilir.

Neden PSSession Kullanmalısınız?

Uzak bir bilgisayara kalıcı bir bağlantıya ihtiyacınız olduğunda PSSession kullanın. PSSession ile değişkenlerin değeri, işlevin içeriği veya diğer ad tanımı gibi verileri paylaşan bir dizi komut çalıştırabilirsiniz.

PSSession oluşturmadan uzak komutları çalıştırabilirsiniz. Uzak etkinleştirilmiş cmdlet'lerin ComputerName parametresini kullanarak bir veya birden çok bilgisayarda tek bir komut veya bir dizi ilişkisiz komut çalıştırın.

veya Invoke-CommandEnter-PSSession parametresini kullandığınızda, PowerShell uzak bilgisayara geçici bir bağlantı kurar ve komut tamamlanır tamamlanmaz bağlantıyı kapatır. Oluşturduğunuz tüm veri öğeleri, bağlantı kapatıldığında kaybolur.

ve Get-Eventloggibi Get-WmiObject parametresine sahip diğer cmdlet'ler, veri toplamak için farklı uzaktan iletişim teknolojileri kullanır. Hiçbiri PSSession gibi kalıcı bir bağlantı oluşturmaz.

PSSession Oluşturma

PSSession oluşturmak için New-PSSession cmdlet'ini kullanın. PsSession'u uzak bir bilgisayarda oluşturmak için cmdlet'in New-PSSession parametresini kullanın.

Örneğin, aşağıdaki komut Server01 bilgisayarında yeni bir PSSession oluşturur.

New-PSSession -ComputerName Server01

komutu gönderdiğinizde, New-PSSession PSSession'u oluşturur ve PSSession'u temsil eden bir nesne döndürür. PSSession'u oluştururken nesneyi bir değişkene kaydedebilir veya pssession'u daha sonra almak için bir Get-PSSession komutu kullanabilirsiniz.

Örneğin, aşağıdaki komut Server01 bilgisayarında yeni bir PSSession oluşturur ve sonuçta elde edilen nesneyi $ps değişkenine kaydeder.

$ps = New-PSSession -ComputerName Server01

Birden Çok Bilgisayarda PSSessions Oluşturma

Birden çok bilgisayarda PSSessions oluşturmak için, cmdlet'in New-PSSession parametresini kullanın. Uzak bilgisayarların adlarını virgülle ayrılmış bir listeye yazın.

Örneğin, Server01, Server02 ve Server03 bilgisayarlarında PSSessions oluşturmak için şunu yazın:

New-PSSession -ComputerName Server01, Server02, Server03

New-PSSession uzak bilgisayarların her birinde bir PSSession oluşturur.

PSSessions Nasıl Alınır

Geçerli oturumunuzda oluşturulan PSSessions'ı almak için, Get-PSSession parametresi olmadan cmdlet'ini kullanın. Get-PSSession, New-PSSession döndürdüğü nesnenin türünü döndürür.

Aşağıdaki komut geçerli oturumda oluşturulan tüm PSSessions'ı alır.

Get-PSSession

PSSessions'ın varsayılan görüntüsü, kimliklerini ve varsayılan görünen adını gösterir. Oturumu oluştururken alternatif bir görünen ad atayabilirsiniz.

Id   Name       ComputerName    State    ConfigurationName
---  ----       ------------    -----    ---------------------
1    Session1   Server01        Opened   Microsoft.PowerShell
2    Session2   Server02        Opened   Microsoft.PowerShell
3    Session3   Server03        Opened   Microsoft.PowerShell

PSSessions'ı bir değişkene de kaydedebilirsiniz. Aşağıdaki komut PSSessions alır ve bunları $ps 123 değişkenine kaydeder.

$ps123 = Get-PSSession

PSSession cmdlet'lerini kullanırken, bir PSSession'a kimliğine, adına veya örnek kimliğine (GUID) göre başvurabilirsiniz. Aşağıdaki komut kimliğine göre bir PSSession alır ve $ps 01 değişkenine kaydeder.

$ps01 = Get-PSSession -Id 1

Windows PowerShell 3.0'da başlayarak, PSSessions uzak bilgisayarda korunur. Belirli uzak bilgisayarlarda oluşturduğunuz PSSessions'ı almak için cmdlet'in Get-PSSession parametresini kullanın. Aşağıdaki komut, Server01 uzak bilgisayarında oluşturduğunuz PSSessions'ı alır. Bu, geçerli oturumda ve yerel bilgisayardaki veya diğer bilgisayarlardaki diğer oturumlarda oluşturulan PSSessions'ı içerir.

Get-PSSession -ComputerName Server01

Windows PowerShell 2.0'da Get-PSSession yalnızca geçerli oturumda oluşturulan PSSessions'ı alır. Bağlantılı olsalar ve yerel bilgisayarda komut çalıştırıyor olsalar bile, diğer oturumlarda veya diğer bilgisayarlarda oluşturulan PSSession'ları elde etmez.

PSSession'da Komut Çalıştırma

Bir veya daha fazla PSSessions içinde komut çalıştırmak için Invoke-Command cmdlet'ini kullanın. PSSession'ları belirtmek için Session parametresini ve komutu belirtmek için ScriptBlock parametresini kullanın.

Örneğin, $ps 123 değişkenine kaydedilen üç PSSession'un her birinde bir Get-ChildItem ("dir") komutu çalıştırmak için şunu yazın:

Invoke-Command -Session $ps123 -ScriptBlock { Get-ChildItem }

PSSessions'ı Silme

PSSession ile işiniz bittiğinde, PSSession'ı silmek ve kullandığı kaynakları serbest bırakmak için Remove-PSSession cmdlet'ini kullanın.

Remove-PSSession -Session $ps

veya

Remove-PSSession -Id 1

PsSession'ı uzak bir bilgisayardan kaldırmak için cmdlet'in Remove-PSSession parametresini kullanın.

Remove-PSSession -ComputerName Server01 -Id 1

PSSession'ı silmezseniz, PSSession zaman aşımına gelene kadar kullanılabilir durumda kalır.

Boşta olan bir PSSession için bir süre sonu ayarlamak üzere cmdlet'in New-PSSessionOption parametresini de kullanabilirsiniz. Daha fazla bilgi için bkz. New-PSSessionOption.

PSSession Cmdlet'leri

PSSession cmdlet'lerinin listesi için şunu yazın:

Get-Help *-PSSession
  • Connect-PSSession: PsSession'ı geçerli oturuma bağlar
  • Disconnect-PSSession: Geçerli oturumdan bir PSSession'ın bağlantısını keser
  • Enter-PSSession: Etkileşimli oturum başlatır
  • Çıkış-PSSession: Etkileşimli oturumu sona erdirir
  • Get-PSSession: Geçerli oturumdaki PSSessions'ı alır
  • New-PSSession: Yerel veya uzak bilgisayarda yeni bir PSSession oluşturur
  • Receive-PSSession: Bağlantısı kesilmiş bir oturumda çalıştırılan komutların sonuçlarını alır
  • Remove-PSSession: Geçerli oturumdaki PSSessions'ı siler

Not

Bağlantısı kesilmiş oturumlar yalnızca Windows'ta desteklenir. Connect-PSSession, Disconnect-PSSessionve Receive-PSSession cmdlet'leri yalnızca Windows'ta kullanılabilir. Bağlantısı kesilmiş oturumlar hakkında daha fazla bilgi için bkz. about_Remote_Disconnected_Session.

Daha fazla bilgi için

PSSessions hakkında daha fazla bilgi için bkz. about_PSSession_Details.

Ayrıca bkz.