Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.exegibi 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, hatta 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, bir seferde bir tanesi olacak şekilde zaman uyumlu olarak çalıştırılır ve ilk komutun tamamlanması için dört dakikaya kadar bekler. İkinci bir komut zaman uyumsuz (eşzamanlı) çalıştırıldığında başarısız olur.
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 Invoke-Command cmdlet'lerinin Enter-PSSession 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 New-PSSession cmdlet'ini 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?
Invoke-Command ve Enter-PSSession cmdlet'leri hem ComputerName hem de Session parametrelerine sahiptir. 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-Process, Get-Service, Get-EventLogve Get-WmiObject gibi uzak bilgisayarlardan veri alacak diğer birçok cmdlet'in yalnızca bir ComputerName parametresi vardır. Uzaktan veri toplamak için PowerShell uzaktan iletişim dışındaki teknolojileri kullanır. Bu cmdlet'lerin Oturum parametresi yoktur, ancak bu komutları pssession'da çalıştırmak için Invoke-Command cmdlet'ini kullanabilirsiniz.
PSSession'u nasıl oluşturabilirim?
PSSession oluşturmak için New-PSSession cmdlet'ini kullanın. yerel veya uzak bir bilgisayarda PSSession oluşturmak için New-PSSession kullanabilirsiniz.
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 Administrators grubunun bir üyesi olması veya geçerli kullanıcının Administrators 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 parametresi, belirtilen uzak bilgisayarlarda oluşturduğunuz PSSessions'ı alır.
Aktif PSSessions uzak bilgisayarda (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 uğrayana 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?
Başkalarının oluşturduğu PSSession'ları yalnızca, PSSession'u oluşturan kullanıcının kimlik bilgilerini sağlayabiliyorsanız veya PSSession'un kullandığı oturum yapılandırması 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ğlanabilir miyim?
Windows PowerShell 3.0'da başlayarak, Windows bilgisayarlardaki PSSessions, oluşturuldukları oturumlardan bağımsızdır. Bağlantının uzak veya "sunucu taraftaki" bilgisayarında etkin PSSession'lar tutulur.
Windows bilgisayarda, pssession bağlantısını kesmek için Disconnect-PSSession cmdlet'ini kullanabilirsiniz. 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 bilgisayardan yeni bir oturum açıp Get-PSSession cmdlet'ini kullanarak PSSession'ı alabilir ve Connect-PSSession cmdlet'ini kullanarak PSSession'a bağlanabilirsiniz. Daha fazla bilgi için bakınız 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ıran bir oturumdur. 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 bakınız about_Remote_Disconnected_Sessions.
PSSession'da arka plan iş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 bilgisayarda arka plan işi başlatmak için Start-Job komutunu kullanın.
Arka plan işini geçici bir bağlantıda (ComputerName parametresini kullanarak) veya PSSession'da (Session parametresini kullanarak) çalıştırabilirsiniz.
Uzak bir bilgisayarda arka plan işi başlatmak için Invoke-Command cmdlet'ini AsJob parametresiyle kullanın veya uzak bir bilgisayarda Invoke-Command komutu çalıştırmak için Start-Job cmdlet'ini kullanın.
AsJob parametresini kullanırken, ComputerName veya Session parametrelerini kullanabilirsiniz.
Invoke-Command komutunu çalıştırmak için Start-Job kullanırken, komutu bir 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. about_Jobs.
Etkileşimli bir oturum çalıştırabilir miyim?
Evet. Uzak bir bilgisayarla etkileşimli oturum başlatmak için Enter-PSSession cmdlet'ini 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 Remove-PSSession cmdlet'ini kullanın. PSSessions'ı siler ve kullandıkları tüm kaynakları serbest bırakır.
Ayrıca New-PSSessionOption parametresini kullanarak, belirttiğiniz bir aralık sonrasında boşta kalan PSSession'ı kapatabilirsiniz. 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 aynı mı?
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 bakınız
PowerShell