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 PSSession, PSSession'u oluşturmak ve korumak için PowerShell uzaktan iletiş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. Etkin PSSessions uzak bilgisayarda (veya bağlantının uzak ucundaki veya "sunucu tarafındaki" bilgisayar) 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ı kullanı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, siz silene veya zaman aşımına gelene 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.

Uzak bir komut çalıştırmak veya etkileşimli bir oturum başlatmak için veya cmdlet'in Enter-PSSession ComputerName parametresini Invoke-Command kullanı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 Enter-PSSession'nin Invoke-Command ComputerName 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-WmiObjectgibi Get-Eventlog bir ComputerName 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 cmdlet'ini New-PSSession kullanın. PsSession'u uzak bir bilgisayarda oluşturmak için cmdlet'in ComputerName parametresini New-PSSession kullanın.

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

New-PSSession -ComputerName Server01

Komutu gönderdiğinizde PSSession'u New-PSSession oluşturur ve PSSession'u temsil eden bir nesne döndürür. PSSession oluştururken nesnesini bir değişkene kaydedebilir veya pssession'u daha sonra almak için bir Get-PSSession komut 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 ComputerName parametresini New-PSSession 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 Alma

Geçerli oturumunuzda oluşturulan PSSessions'ı almak için ComputerName parametresi olmadan cmdlet'ini kullanınGet-PSSession. Get-PSSession , döndüren New-PSSession 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 ComputerName 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 yalnızca Get-PSSession geçerli oturumda oluşturulan PSSessions'ı alır. Oturumlar bağlı olsa ve yerel bilgisayarda komut çalıştırsa bile, diğer oturumlarda veya diğer bilgisayarlarda oluşturulan PSSessions'ı almaz.

PSSession'da Komut Çalıştırma

Bir veya daha fazla PSSessions içinde bir komut çalıştırmak için cmdlet'ini Invoke-Command kullanın. PsSessions'ı 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, cmdlet'ini Remove-PSSession kullanarak PSSession'ı silin ve kullandığı kaynakları serbest bırakın.

Remove-PSSession -Session $ps

veya

Remove-PSSession -Id 1

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

Remove-PSSession -ComputerName Server01 -Id 1

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

Boşta pssession için süre sonu ayarlamak için cmdlet'in New-PSSessionOption IdleTimeout 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
  • Bağlan-PSSession: geçerli oturumda PSSession Bağlan
  • PSSession Bağlantısını Kes: PsSession'ın geçerli oturumla 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'da kullanılabilir. Bağlantısı kesilmiş oturumlar hakkında daha fazla bilgi için bkz. about_Remote_Disconnected_Session

Daha Fazla Bilgi İçin

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

Ayrıca bkz.