Share via


about_PSSession_Details

Kısa açıklama

PowerShell oturumları ve uzak komutlarda oynadıkları rol hakkında ayrıntılı bilgi sağlar.

Uzun açıklama

Oturum, PowerShell'in çalıştığı bir ortamdır. PowerShell'i her başlattığınızda sizin için bir oturum oluşturulur. Bilgisayarınızda veya başka bir bilgisayarda "PowerShell oturumları" veya "PSSessions" olarak adlandırılan ek oturumlar oluşturabilirsiniz.

PowerShell'in sizin için oluşturduğu oturumlardan farklı olarak, oluşturduğunuz PSSessions'ı denetler ve yönetirsiniz.

PSSessions, uzaktan bilgi işlemde önemli bir rol oynar. Uzak bilgisayara bağlı bir PSSession oluşturduğunuzda PowerShell, PSSession'u desteklemek için uzak bilgisayara kalıcı bir bağlantı kurar. PSSession'u kullanarak veri paylaşan bir dizi komut, işlev ve betik çalıştırabilirsiniz.

Bu konu, PowerShell'deki oturumlar ve PSSessions hakkında ayrıntılı bilgi sağlar. Oturumlarla gerçekleştirebileceğiniz görevler hakkında temel bilgiler için bkz . about_PSSessions.

Oturumlar Hakkında

Teknik olarak oturum, PowerShell'in çalıştığı bir yürütme ortamıdır. Her oturum, System.Management.Automation altyapısının bir örneğini ve PowerShell'in çalıştığı bir konak programı içerir. Konak, tanıdık PowerShell konsolu veya Cmd.exe gibi komutları çalıştıran başka bir program veya Windows PowerShell Tümleşik Betik Ortamı (ISE) gibi PowerShell'i barındırmak için oluşturulmuş bir program olabilir. Windows perspektifinden bakıldığında oturum, hedef bilgisayardaki bir Windows işlemidir.

Her oturum bağımsız olarak yapılandırılır. Kendi özelliklerini, kendi yürütme ilkesini ve kendi profillerini içerir. Oturum oluşturulduğunda var olan ortam, bilgisayardaki ortamı değiştirseniz bile yaşam süresi boyunca devam eder. Tüm oturumlar, bir betikte oluşturduğunuz oturumlar bile genel kapsamda oluşturulur.

Bir oturumda aynı anda yalnızca bir komut (veya komut işlem hattı) çalıştırabilirsiniz. İkinci bir komut zaman uyumlu olarak çalıştırılır (her seferinde bir komut), ilk komutun tamamlanması için dört dakikaya kadar bekler. İkinci bir komut zaman uyumsuz (eşzamanlı) çalıştırılamaz.

PSSessions hakkında

PowerShell'i her başlattığınızda bir oturum oluşturulur. PowerShell, tek tek komutları çalıştırmak için geçici oturumlar oluşturur. Ancak, denetlediğiniz ve yönettiğiniz oturumlar ("PowerShell oturumları" veya "PSSessions" olarak da adlandırılır) oluşturabilirsiniz.

PSSessions uzak komutlar için kritik öneme sahiptir. veya Enter-PSSession cmdlet'lerinin Invoke-Command ComputerName parametresini kullanırsanız, PowerShell komutu çalıştırmak için geçici bir oturum oluşturur ve komut veya etkileşimli oturum tamamlanır tamamlanmaz oturumu kapatır.

Ancak, pssession oluşturmak için cmdlet'ini New-PSSession kullanırsanız, PowerShell uzak bilgisayarda birden çok komut veya etkileşimli oturum çalıştırabileceğiniz kalıcı bir oturum oluşturur. Oluşturduğunuz PSSessions, siz silene kadar veya oluşturuldukları oturumu kapatana kadar açık ve kullanılabilir durumda kalır.

Uzak bir bilgisayarda PSSession oluşturduğunuzda, sistem uzak bilgisayarda bir PowerShell işlemi oluşturur ve yerel bilgisayardan uzak bilgisayardaki işleme bir bağlantı kurar. Yerel bilgisayarda pssession oluşturduğunuzda, hem yeni işlem hem de bağlantılar yerel bilgisayarda oluşturulur.

PsSession'a Ne Zaman Ihtiyacım Var?

ve cmdlet'leri Invoke-Command hem ComputerNamehem de Session parametrelerine sahiptir.Enter-PSSession Uzak bir komut çalıştırmak için birini kullanabilirsiniz.

Bir veya birden çok bilgisayarda tek bir komut veya bir dizi ilişkisiz komut çalıştırmak için ComputerName parametresini kullanın.

Veri paylaşan komutları çalıştırmak için uzak bilgisayara kalıcı bir bağlantı gerekir. Bu durumda, bir PSSession oluşturun ve ardından PsSession'da komutları çalıştırmak için Session parametresini kullanın.

, , Get-EventLogve gibi Get-ServiceGet-Processuzak bilgisayarlardan veri almak ve Get-WmiObject yalnızca bir ComputerName parametresine sahip diğer birçok cmdlet. Uzaktan veri toplamak için PowerShell uzaktan iletişim dışındaki teknolojileri kullanır. Bu cmdlet'lerin Session parametresi yoktur, ancak cmdlet'ini Invoke-Command kullanarak bu komutları bir PSSession'da çalıştırabilirsiniz.

Nasıl PSSession Oluşturabilirim?

PSSession oluşturmak için cmdlet'ini New-PSSession kullanın. Yerel veya uzak bir bilgisayarda PSSession oluşturmak için kullanabilirsiniz New-PSSession .

Herhangi Bir Bilgisayarda PSSession Oluşturabilir miyim?

Uzak bir bilgisayara bağlı bir PSSession oluşturmak için, bilgisayarın PowerShell'de uzaktan iletişim için yapılandırılması gerekir. Geçerli kullanıcının uzak bilgisayardaki Yönetici istrators grubunun üyesi olması veya geçerli kullanıcının Yönetici istrators grubunun bir üyesinin kimlik bilgilerini sağlayabilmesi gerekir. Daha fazla bilgi için bkz . about_Remote_Requirements.

PsSessions'imi Diğer Oturumlarda Görebilir miyim?

Windows PowerShell 3.0'dan başlayarak, cmdlet'in Get-PSSession ComputerName parametresi, belirtilen uzak bilgisayarlarda oluşturduğunuz PSSessions'ı alır.

Etkin PSSessions uzak bilgisayarda (bir bağlantının "sunucu tarafı") korunur ve bunları herhangi bir bilgisayardaki herhangi bir oturumdan alabilirsiniz.

Örneğin, Server01 bilgisayarından Server02 bilgisayarına bir PSSession oluşturur ve ardından Server03 bilgisayarına geçerseniz, oturumu almak için aşağıdakine benzer bir komut kullanabilirsiniz.

Get-PSSession -ComputerName Server02

Oturum bağlantısını kesseniz bile, siz silene veya zaman aşımına gelene kadar oturum uzak bilgisayarda tutulur.

Windows PowerShell 2.0'da, yalnızca geçerli oturumda oluşturduğunuz PSSessions'ı alabilirsiniz. Diğer oturumlarda oluşturduğunuz PSSessions'ı alamazsınız.

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

Başkalarının Bilgisayarımda Oluşturduğu PSSessions'ı Görebilir miyim?

Yalnızca başkalarının oluşturduğu PSSessions'ı yalnızca PSSession'u oluşturan kullanıcının kimlik bilgilerini veya PSSession'un kullandığı oturum yapılandırmasını RunAs kimlik bilgilerini içeriyorsa alabilir ve yönetebilirsiniz. Aksi takdirde, yalnızca oluşturduğunuz PSSessions'ı alabilir, bunlara bağlanabilir, kullanabilir ve yönetebilirsiniz.

Farklı Bir Bilgisayardan PSSession'a Bağlan miyim?

Windows PowerShell 3.0'da başlayarak, Windows bilgisayarlardaki PSSessions, oluşturuldukları oturumlardan bağımsızdır. Etkin PSSessions, bir bağlantının uzak veya "sunucu tarafında" bilgisayarda tutulur.

Windows bilgisayarda, pssession bağlantısını kesmek için cmdlet'ini kullanabilirsiniz Disconnect-PSSession . PSSession'ın yerel oturumla bağlantısı kesilir, ancak uzak bilgisayarda korunur. Komutlar bağlantısı kesilmiş PSSession'da çalışmaya devam eder. PSSession'ı kesintiye uğratmadan PowerShell'i kapatabilir ve kaynak bilgisayarı kapatabilirsiniz.

Ardından, saatler sonra bile, farklı bir Windows bilgisayarda yeni bir oturumdan PSSession'a bağlanmak için PSSession ve Connect-PSSession cmdlet'ini almak için cmdlet'ini kullanabilirsinizGet-PSSession.

Daha fazla bilgi için bkz . about_Remote_Disconnected_Sessions.

Bilgisayarım Durursa PSSession'ıma Ne Olur?

Bağlantısı kesilmiş PSSessions, oluşturuldukları oturumlardan bağımsızdır. PsSession bağlantısını keser ve ardından kaynak bilgisayarı kapatırsanız, PSSession uzak bilgisayarda korunur.

Buna ek olarak, PowerShell bilgisayarın yeniden başlatılması, geçici güç kesintisi veya ağ kesintisi gibi istemeden bağlantısı kesilen etkin PSSessions'ı kurtarmaya çalışır. PowerShell, PSSession'ı Açık durumda, kaynak oturum hala kullanılabilir durumdaysa veya kullanılamıyorsa bağlantısız durumda sürdürmeyi veya kurtarmayı dener.

"Etkin" PSSession, komutları çalıştırandır. Bir PSSession bağlıysa (bağlantısı kesilmemişse) ve bağlı oturum kapatıldığında PSSession'da komutlar çalışıyorsa, PowerShell uzak bilgisayarda PSSession'ı korumayı dener. Ancak, PSSession'da hiçbir komut çalışmıyorsa, bağlı oturum kapatıldığında PowerShell PSSession'ı kapatır.

Daha fazla bilgi için bkz . about_Remote_Disconnected_Sessions.

PSSession'da Arka Plan İşi Çalıştırabilir miyim?

Evet. Arka plan işi, geçerli oturumla etkileşim kurmadan arka planda zaman uyumsuz olarak çalışan bir komutdur. bir işi başlatmak için bir komut gönderdiğinizde, komut bir iş nesnesi döndürür, ancak iş tamamlanana kadar arka planda çalışmaya devam eder.

Yerel bir bilgisayarda arka plan işi başlatmak için komutunu kullanın Start-Job . Arka plan işini geçici bir bağlantıda (ComputerName parametresini kullanarak) veya PSSession'da (Session parametresini kullanarak) çalıştırabilirsiniz.

Uzak bilgisayarda bir arka plan işi başlatmak için, cmdlet'ini Invoke-CommandAsJob parametresiyle kullanın veya cmdlet'ini kullanarak Invoke-Command uzak bilgisayarda bir Start-Job komut çalıştırın. AsJob parametresini kullanırken ComputerName veya Session parametrelerini kullanabilirsiniz.

komutunu Start-Job çalıştırmak için kullanırken Invoke-Command komutunu pssession içinde çalıştırmanız gerekir. ComputerName parametresini kullanırsanız, iş nesnesi döndürdüğünde PowerShell bağlantıyı sonlandırır ve iş kesilir.

Daha fazla bilgi için bkz. İşler hakkında.

Etkileşimli Oturum Çalıştırabilir miyim?

Evet. Uzak bir bilgisayarla etkileşimli oturum başlatmak için cmdlet'ini Enter-PSSession kullanın. Etkileşimli bir oturumda, yazdığınız komutlar uzak bilgisayarda, bunları doğrudan uzak bilgisayarda yazdığınız gibi çalışır.

Etkileşimli oturumu geçici bir oturumda (ComputerName parametresini kullanarak) veya PSSession'da (Session parametresini kullanarak) çalıştırabilirsiniz. PSSession kullanıyorsanız, PSSession önceki komutlardaki verileri korur ve PSSession etkileşimli oturum sırasında oluşturulan tüm verileri sonraki komutlarda kullanmak üzere korur.

Etkileşimli oturumu sonlandırdığınızda PSSession açık kalır ve kullanılabilir durumda kalır.

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

PSSessions'i silmem gerekiyor mu?

Evet. PSSession, kullanmadığınız zamanlarda bile belleği ve diğer kaynakları kullanan bağımsız bir ortam olan bir işlemdir. PSSession ile işiniz bittiğinde silin. Birden çok PSSessions oluşturursanız, kullanmadığınızları kapatın ve yalnızca kullanımda olanları koruyun.

PSSessions'ı silmek için cmdlet'ini Remove-PSSession kullanın. PSSessions'ı siler ve kullandıkları tüm kaynakları serbest bırakır.

Ayrıca, belirttiğiniz bir aralık sonrasında boşta pssession kapatmak için idleTimeOut parametresini New-PSSessionOption de kullanabilirsiniz. Daha fazla bilgi için bkz . New-PSSessionOption.

Bir PSSession nesnesini bir değişkene kaydeder ve ardından PSSession'ı siler veya zaman aşımına bırakırsanız, değişken pssession nesnesini içerir, ancak PSSession etkin değildir ve kullanılamaz veya onarılamaz.

Tüm Oturumlar ve PSSessions Benzer Mi?

Hayır Geliştiriciler yalnızca seçili sağlayıcıları ve cmdlet'leri içeren özel oturumlar oluşturabilir. Komut bir oturumda çalışıyor ancak başka bir oturumda çalışmıyorsa, bunun nedeni oturumun kısıtlanmış olması olabilir.

Ayrıca bkz.