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-WmiObject
gibi 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
- Connect-PSSession: PsSession'ı geçerli oturuma bağlar
- 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-PSSession
ve 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.
PowerShell