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-EventLog
ve gibi Get-Service
Get-Process
uzak 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-Command
AsJob 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.
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin