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ı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 bir PSSession, PSSession'u oluşturmak ve sürdürmek için PowerShell uzaktan eriş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. Uzak bilgisayarda (veya bağlantının uzak ucunda, yani "sunucu tarafında" bulunan bilgisayarda) etkin PSSessions 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ı kullanmaktadı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, tarafınızdan silinene veya zaman aşımına uğrayana 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.
veya Invoke-Command
cmdlet'inin Enter-PSSession
parametresini kullanarak uzak bir komut çalıştırır veya etkileşimli bir oturum başlatı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 Invoke-Command
Enter-PSSession
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-Eventlog
gibi Get-WmiObject
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 New-PSSession
cmdlet'ini kullanın. PsSession'u uzak bir bilgisayarda oluşturmak için cmdlet'in New-PSSession
parametresini kullanın.
Örneğin, aşağıdaki komut Server01 bilgisayarında yeni bir PSSession oluşturur.
New-PSSession -ComputerName Server01
komutu gönderdiğinizde, New-PSSession
PSSession'u oluşturur ve PSSession'u temsil eden bir nesne döndürür. PSSession'u oluştururken nesneyi bir değişkene kaydedebilir veya pssession'u daha sonra almak için bir Get-PSSession
komutu 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 New-PSSession
parametresini 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 Nasıl Alınır
Geçerli oturumunuzda oluşturulan PSSessions'ı almak için, Get-PSSession
parametresi olmadan cmdlet'ini kullanın.
Get-PSSession
, New-PSSession
döndürdüğü 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
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 Get-PSSession
yalnızca geçerli oturumda oluşturulan PSSessions'ı alır. Bağlantılı olsalar ve yerel bilgisayarda komut çalıştırıyor olsalar bile, diğer oturumlarda veya diğer bilgisayarlarda oluşturulan PSSession'ları elde etmez.
PSSession'da Komut Çalıştırma
Bir veya daha fazla PSSessions içinde komut çalıştırmak için Invoke-Command
cmdlet'ini kullanın.
PSSession'ları 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, PSSession'ı silmek ve kullandığı kaynakları serbest bırakmak için Remove-PSSession
cmdlet'ini kullanın.
Remove-PSSession -Session $ps
veya
Remove-PSSession -Id 1
PsSession'ı uzak bir bilgisayardan kaldırmak için cmdlet'in Remove-PSSession
parametresini kullanın.
Remove-PSSession -ComputerName Server01 -Id 1
PSSession'ı silmezseniz, PSSession zaman aşımına gelene kadar kullanılabilir durumda kalır.
Boşta olan bir PSSession için bir süre sonu ayarlamak üzere cmdlet'in New-PSSessionOption
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
- Disconnect-PSSession: Geçerli oturumdan bir PSSession'ın 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'ta kullanılabilir. Bağlantısı kesilmiş oturumlar hakkında daha fazla bilgi için bkz. about_Remote_Disconnected_Session.
Daha fazla bilgi için
PSSessions hakkında daha fazla bilgi için bkz. about_PSSession_Details.
Ayrıca bkz.
- uzaktan_bilgi
- Uzak Bağlantısı Kesilen Oturumlar Hakkında
- Uzak Gereksinimler Hakkında
- Komut-Çağır
- Connect-PSSession
- Disconnect-PSSession
- Enter-PSSession
- Çıkış-PSSession
- Get-PSSession
- New-PSSession
- Remove-PSSession
PowerShell