Receive-PSSession
Bağlantısı kesilmiş oturumlardaki komutların sonuçlarını alır
Syntax
Receive-PSSession
[-Session] <PSSession>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-Id] <Int32>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-ComputerName] <String>
[-ApplicationName <String>]
[-ConfigurationName <String>]
-Name <String>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-ComputerName] <String>
[-ApplicationName <String>]
[-ConfigurationName <String>]
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-Port <Int32>]
[-UseSSL]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-ConfigurationName <String>]
[-ConnectionUri] <Uri>
[-AllowRedirection]
-Name <String>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
[-ConfigurationName <String>]
[-ConnectionUri] <Uri>
[-AllowRedirection]
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-Credential <PSCredential>]
[-Authentication <AuthenticationMechanism>]
[-CertificateThumbprint <String>]
[-SessionOption <PSSessionOption>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
-InstanceId <Guid>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Receive-PSSession
-Name <String>
[-OutTarget <OutTarget>]
[-JobName <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Bu cmdlet yalnızca Windows platformunda kullanılabilir.
Cmdlet, Receive-PSSession
bağlantısı kesilmiş PowerShell oturumlarında (PSSession) çalışan komutların sonuçlarını alır. Oturum şu anda bağlıysa, Receive-PSSession
oturumun bağlantısı kesildiğinde çalışan komutların sonuçlarını alır. Oturumun bağlantısı hala kesikse, Receive-PSSession
oturuma bağlanır, askıya alınan komutları sürdürür ve oturumda çalışan komutların sonuçlarını alır.
Bu cmdlet PowerShell 3.0'da kullanıma sunulmuştur.
Komutun yanı sıra veya yerine bir Connect-PSSession
de kullanabilirsinizReceive-PSSession
.
Receive-PSSession
diğer oturumlarda veya diğer bilgisayarlarda başlatılan bağlantısı kesilmiş veya yeniden bağlanmış oturumlara bağlanabilir.
Receive-PSSession
cmdlet veyaInvoke-Command
InDisconnectedSession parametresi kullanılarak Disconnect-PSSession
kasıtlı olarak bağlantısı kesilen PSSessions üzerinde çalışır. Ya da ağ kesintisi ile istemeden bağlantısı kesildi.
Komut çalıştırmayan veya askıya alınmayan bir oturuma bağlanmak için cmdlet'ini kullanırsanız Receive-PSSession
, Receive-PSSession
oturuma bağlanır, ancak hiçbir çıkış veya hata döndürmez.
Bağlantısı Kesilmiş Oturumlar özelliği hakkında daha fazla bilgi için bkz . about_Remote_Disconnected_Sessions.
Bazı örneklerde satır uzunluğunu azaltmak ve okunabilirliği geliştirmek için sıçrama kullanılır. Daha fazla bilgi için bkz . about_Splatting.
Örnekler
Örnek 1: PSSession'a Bağlan
Bu örnek, uzak bilgisayardaki bir oturuma bağlanır ve bir oturumda çalışan komutların sonuçlarını alır.
Receive-PSSession -ComputerName Server01 -Name ITTask
, Receive-PSSession
ComputerName parametresiyle uzak bilgisayarı belirtir. Name parametresi, Server01 bilgisayarındaki ITTask oturumunu tanımlar. Örnek, ITTask oturumunda çalışan komutların sonuçlarını alır.
Komut OutTarget parametresini kullanmadığından sonuçlar komut satırında görünür.
Örnek 2: Bağlantısız oturumlarda tüm komutların sonuçlarını alma
Bu örnek, iki uzak bilgisayarda bağlantısı kesilmiş tüm oturumlarda çalışan tüm komutların sonuçlarını alır.
Herhangi bir oturumun bağlantısı kesilmediyse veya komutları çalıştırmıyorsa oturuma Receive-PSSession
bağlanmaz ve herhangi bir çıkış veya hata döndürmez.
Get-PSSession -ComputerName Server01, Server02 | Receive-PSSession
Get-PSSession
uzak bilgisayarları belirtmek için ComputerName parametresini kullanır. Nesneler işlem hattına Receive-PSSession
gönderilir.
Örnek 3: Oturumda çalışan bir betiğin sonuçlarını alma
Bu örnek, uzak bilgisayarın oturumunda çalışan bir betiğin sonuçlarını almak için cmdlet'ini kullanır Receive-PSSession
.
$parms = @{
ComputerName = "Server01"
Name = "ITTask"
OutTarget = "Job"
JobName = "ITTaskJob01"
Credential = "Domain01\Admin01"
}
Receive-PSSession @parms
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 ITTaskJob01 Running True Server01
Komut, bağlantısı kesilmiş oturumu tanımlamak için ComputerName ve Name parametrelerini kullanır.
Sonuçları iş olarak döndürmeye yönlendirmek Receive-PSSession
için OutTarget parametresini job değeriyle kullanır. JobName parametresi, yeniden bağlanan oturumdaki iş için bir ad belirtir.
Credential parametresi, etki alanı yöneticisinin izinlerini kullanarak komutunu çalıştırırReceive-PSSession
.
Çıktı, sonuçları geçerli oturumda bir iş olarak döndürdüğünü gösterir Receive-PSSession
. İş sonuçlarını almak için bir Receive-Job
komut kullanın
Örnek 4: Ağ kesintisi sonrasında sonuçları alma
Bu örnek, bir ağ kesintisi Receive-PSSession
oturum bağlantısını kesintiye uğrattıktan sonra işin sonuçlarını almak için cmdlet'ini kullanır. PowerShell, sonraki dört dakika boyunca oturumu saniyede bir kez yeniden bağlamayı dener ve yalnızca dört dakikalık aralıktaki tüm denemeler başarısız olursa çabayı bırakır.
PS> $s = New-PSSession -ComputerName Server01 -Name AD -ConfigurationName ADEndpoint
PS> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
8 AD Server01 Opened ADEndpoint Available
PS> Invoke-Command -Session $s -FilePath \\Server12\Scripts\SharedScripts\New-ADResolve.ps1
Running "New-ADResolve.ps1"
# Network outage
# Restart local computer
# Network access is not re-established within 4 minutes
PS> Get-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backup Server01 Disconnected Microsoft.PowerShell None
8 AD Server01 Disconnected ADEndpoint None
PS> Receive-PSSession -ComputerName Server01 -Name AD -OutTarget Job -JobName AD
Job Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 ADJob Running True Server01
PS> Get-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Backup Server01 Disconnected Microsoft.PowerShell Busy
8 AD Server01 Opened ADEndpoint Available
Cmdlet, New-PSSession
Server01 bilgisayarında bir oturum oluşturur ve oturumu değişkene $s
kaydeder. değişkeni Durum'un $s
Açık ve Kullanılabilirlik'in Kullanılabilir olduğunu görüntüler. Bu değerler oturuma bağlı olduğunuzu ve oturumda komut çalıştırabileceğinizi gösterir.
Invoke-Command
Cmdlet, değişkenindeki oturumda $s
bir betik çalıştırır. Betik çalışmaya ve veri döndürmeye başlar, ancak oturumu kesintiye uğratan bir ağ kesintisi oluşur. Kullanıcının oturumdan çıkıp yerel bilgisayarı yeniden başlatması gerekir.
Bilgisayar yeniden başlatıldığında, kullanıcı PowerShell'i başlatır ve Server01 bilgisayarında oturumları almak için bir Get-PSSession
komut çalıştırır. Çıktı, AD oturumunun Server01 bilgisayarında hala mevcut olduğunu gösterir. Durum, AD oturumunun bağlantısının kesildiğini gösterir. Hiçbiri kullanılabilirlik değeri, oturumun hiçbir istemci oturumuna bağlı olmadığını gösterir.
Receive-PSSession
Cmdlet, AD oturumuna yeniden bağlanır ve oturumda çalıştırılan betiğin sonuçlarını alır. komutu, SONUÇLARı ADJob adlı bir işte istemek için OutTarget parametresini kullanır. komutu bir iş nesnesi döndürür ve çıktı betiğin hala çalıştığını gösterir.
Get-PSSession
cmdlet'i iş durumunu denetlemek için kullanılır. Çıkış, cmdlet'in Receive-PSSession
ad oturumuna yeniden bağlandığını onaylar. Bu oturum artık açık ve komutlar için kullanılabilir. Betik yürütmeye devam etti ve betik sonuçlarını alıyor.
Örnek 5: Bağlantısı kesilmiş oturumlara yeniden bağlanma
Bu örnek, kasıtlı olarak bağlantısı kesilmiş oturumlara yeniden bağlanmak ve oturumlarda çalışan işlerin sonuçlarını almak için cmdlet'ini kullanır Receive-PSSession
.
PS> $parms = @{
InDisconnectedSession = $True
ComputerName = "Server01", "Server02", "Server30"
FilePath = "\\Server12\Scripts\SharedScripts\Get-BugStatus.ps1"
Name = "BugStatus"
SessionOption = @{IdleTimeout = 86400000}
ConfigurationName = "ITTasks"
}
PS> Invoke-Command @parms
PS> Exit
PS> $s = Get-PSSession -ComputerName Server01, Server02, Server30 -Name BugStatus
PS> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 ITTask Server01 Disconnected ITTasks None
8 ITTask Server02 Disconnected ITTasks None
2 ITTask Server30 Disconnected ITTasks None
PS> $Results = Receive-PSSession -Session $s
PS> $s
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 ITTask Server01 Opened ITTasks Available
8 ITTask Server02 Opened ITTasks Available
2 ITTask Server30 Opened ITTasks Available
PS> $Results
Bug Report - Domain 01
----------------------
ComputerName BugCount LastUpdated
-------------- --------- ------------
Server01 121 Friday, December 30, 2011 5:03:34 PM
Invoke-Command
Cmdlet, üç uzak bilgisayarda bir betik çalıştırır. Betik birden çok veritabanından veri toplayıp özetlediğinden, betiğin tamamlanması genellikle uzun sürer. Komut, betikleri başlatan ve ardından oturumların bağlantısını hemen kesen InDisconnectedSession parametresini kullanır. SessionOption parametresi, bağlantısı kesilmiş oturumun IdleTimeout değerini genişletir. Bağlantısı kesilmiş oturumlar, bağlantı kesildikleri andan itibaren boşta olarak kabul edilir. Komutların tamamlanabilmesi ve oturuma yeniden bağlanabilmeniz için boşta kalma zaman aşımını yeterince uzun süre ayarlamanız önemlidir. IdleTimeout'u yalnızca PSSession oluşturduğunuzda ayarlayabilir ve yalnızca bağlantısını kestiğiniz zaman değiştirebilirsiniz. PsSession'abağlandığınızda veya sonuçlarını alırken IdleTimeout değerini değiştiremezsiniz. Komutu çalıştırdıktan sonra kullanıcı PowerShell'dan çıkar ve bilgisayarı kapatır.
Ertesi gün kullanıcı Windows'a devam eder, PowerShell'i başlatır ve betiklerin çalıştığı oturumları almak için kullanır Get-PSSession
. komutu oturumları bilgisayar adı, oturum adı ve oturum yapılandırmasının adıyla tanımlar ve oturumları değişkene $s
kaydeder. değişkeninin $s
değeri görüntülenir ve oturumların bağlantısının kesildiğini ancak meşgul olmadığını gösterir.
cmdlet'i Receive-PSSession
değişkendeki $s
oturumlara bağlanır ve sonuçlarını alır.
komutu sonuçları değişkene $Results
kaydeder. $s
değişkeni görüntülenir ve oturumların bağlı olduğunu ve komutlar için kullanılabilir olduğunu gösterir.
Değişkendeki $Results
betik sonuçları PowerShell konsolunda görüntülenir. Sonuçlardan herhangi biri beklenmedikse, kullanıcı oturumlarda komutları çalıştırarak kök nedeni araştırabilir.
Örnek 6: Bağlantısı kesilmiş bir oturumda iş çalıştırma
Bu örnek, bağlantısız oturumda çalışan bir işe ne olduğunu gösterir.
PS> $s = New-PSSession -ComputerName Server01 -Name Test
PS> $j = Invoke-Command -Session $s { 1..1500 | Foreach-Object {"Return $_"; sleep 30}} -AsJob
PS> $j
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 Job1 Running True Server01
PS> $s | Disconnect-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Test Server01 Disconnected Microsoft.PowerShell None
PS> $j
Id Name State HasMoreData Location
-- ---- ----- ----------- --------
16 Job1 Disconnected True Server01
PS> Receive-Job $j -Keep
Return 1
Return 2
PS> $s2 = Connect-PSSession -ComputerName Server01 -Name Test
PS> $j2 = Receive-PSSession -ComputerName Server01 -Name Test
PS> Receive-Job $j
Return 3
Return 4
cmdlet'i New-PSSession
Server01 bilgisayarında Test oturumunu oluşturur. komutu, oturumu değişkene $s
kaydeder.
Invoke-Command
Cmdlet, değişkenindeki oturumda $s
bir komut çalıştırır. komutu, asjob parametresini kullanarak komutu bir iş olarak çalıştırır ve geçerli oturumda iş nesnesini oluşturur.
komutu, değişkene $j
kaydedilmiş bir iş nesnesi döndürür. $j
değişkeni iş nesnesini görüntüler.
Değişkendeki $s
oturum nesnesi işlem hattına Disconnect-PSSession
gönderilir ve oturumun bağlantısı kesilir.
$j
değişkeni görüntülenir ve değişkendeki $j
iş nesnesinin bağlantısını kesmenin etkisini gösterir. İş durumu artık Bağlantısı kesildi.
Receive-Job
değişkenindeki iş $j
üzerinde çalıştırılır. Çıktı, işin oturumdan önce çıkış döndürmeye başladığını ve işin bağlantısının kesildiğini gösterir.
Connect-PSSession
Cmdlet aynı istemci oturumunda çalıştırılır. Komut, Server01 bilgisayarındaki Test oturumuna yeniden bağlanır ve oturumu değişkene $s2
kaydeder.
Cmdlet, Receive-PSSession
oturumda çalışan işin sonuçlarını alır. Komut aynı oturumda çalıştırıldığından, Receive-PSSession
sonuçları varsayılan olarak bir iş olarak döndürür ve aynı iş nesnesini yeniden kullanır. komutu işi değişkene $j2
kaydeder. Receive-Job
cmdlet'i değişkenindeki işin $j
sonuçlarını alır.
Parametreler
-AllowRedirection
Bu cmdlet'in bu bağlantının alternatif bir Tekdüzen Kaynak Tanımlayıcısı'na (URI) yeniden yönlendirilmesine izin verdiği gösterir.
Bağlan ionURI parametresini kullandığınızda, uzak hedef farklı bir URI'ye yönlendirme yönergesi döndürebilir. Varsayılan olarak, PowerShell bağlantıları yeniden yönlendirmez, ancak bağlantıyı yeniden yönlendirmesini sağlamak için bu parametreyi kullanabilirsiniz.
Ayrıca Maximum Bağlan ionRedirectionCount oturum seçeneği değerini değiştirerek bağlantının yeniden yönlendirilme sayısını sınırlayabilirsiniz. Cmdlet'in New-PSSessionOption
MaximumRedirection parametresini kullanın veya tercih değişkeninin Maximum Bağlan ionRedirectionCount özelliğini $PSSessionOption
ayarlayın. Varsayılan değer 5'tir.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ApplicationName
Bir uygulamayı belirtir. Bu cmdlet yalnızca belirtilen uygulamayı kullanan oturumlara bağlanır.
Bağlantı URI'sinin uygulama adı kesimini girin. Örneğin, aşağıdaki bağlantı URI'sinde WSMan uygulama adıdır: http://localhost:5985/WSMAN
.
Oturumun uygulama adı Runspace.Bağlan içinde depolanırOturumun ionInfo.AppName özelliği.
Parametrenin değeri oturumları seçmek ve filtrelemek için kullanılır. Oturumun kullandığı uygulamayı değiştirmez.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Authentication
Bağlantısı kesilmiş bir oturuma yeniden bağlanmak için komuttaki kullanıcı kimlik bilgilerinin kimliğini doğrulamak için kullanılan mekanizmayı belirtir. Bu parametrenin kabul edilebilir değerleri şunlardır:
- Varsayılan
- Temel
- Credssp
- Özet
- Kerberos
- Anlaşma
- NegotiateWithImplicitCredential
Varsayılan değer Varsayılan'dır.
Bu parametrenin değerleri hakkında daha fazla bilgi için bkz . AuthenticationMechanism Numaralandırması.
Dikkat
Kimlik Bilgileri Güvenlik Desteği Sağlayıcısı (CredSSP) kimlik doğrulaması, kullanıcı kimlik bilgilerinin kimlik doğrulaması için uzak bir bilgisayara geçirildiği, uzak ağ paylaşımına erişme gibi birden fazla kaynakta kimlik doğrulaması gerektiren komutlar için tasarlanmıştır. Bu mekanizma, uzak işlemin güvenlik riskini artırır. Uzak bilgisayarın güvenliği aşılırsa, bu bilgisayara geçirilen kimlik bilgileri ağ oturumunu denetlemek için kullanılabilir.
Type: | AuthenticationMechanism |
Accepted values: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Default value: | Default |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CertificateThumbprint
Bağlantısı kesilmiş oturuma bağlanma izni olan bir kullanıcı hesabının dijital ortak anahtar sertifikasını (X509) belirtir. Sertifikanın sertifika parmak izini girin.
Sertifikalar, istemci sertifikası tabanlı kimlik doğrulamasında kullanılır. Sertifikalar yalnızca yerel kullanıcı hesaplarıyla eşlenebilir ve etki alanı hesaplarıyla çalışmaz.
Sertifika parmak izi almak için PowerShell Cert:
sürücüsünde veya Get-ChildItem
Get-Item
komutunu kullanın.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ComputerName
Bağlantısı kesilmiş oturumun depolandığı bilgisayarı belirtir. Oturumlar, sunucu tarafında bulunan veya bağlantının sonunu alan bilgisayarda depolanır. Varsayılan, yerel bilgisayardır.
Bir bilgisayarın NetBIOS adını, IP adresini veya tam etki alanı adını (FQDN) yazın.
Joker karakterlere izin verilmez. Yerel bilgisayarı belirtmek için bilgisayar adını, nokta (.
), $env:COMPUTERNAME
veya localhost yazın.
Type: | String |
Aliases: | Cn |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-ConfigurationName
Oturum yapılandırmasının adını belirtir. Bu cmdlet yalnızca belirtilen oturum yapılandırmasını kullanan oturumlara bağlanır.
Oturum yapılandırması için bir yapılandırma adı veya tam kaynak URI'sini girin. Yalnızca yapılandırma adını belirtirseniz, aşağıdaki şema URI'sinin başına eklenir:
http://schemas.microsoft.com/powershell
.
Oturumun yapılandırma adı, oturumun ConfigurationName özelliğinde depolanır.
Parametrenin değeri oturumları seçmek ve filtrelemek için kullanılır. Oturumun kullandığı oturum yapılandırmasını değiştirmez.
Oturum yapılandırmaları hakkında daha fazla bilgi edinmek için bkz. about_Session_Configurations.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Cmdlet'i çalıştırmadan önce sizden onay ister.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ConnectionUri
Bağlantısı kesilmiş oturuma yeniden bağlanmak için kullanılan bağlantı uç noktasını tanımlayan bir URI belirtir.
URI tam olarak nitelenmiş olmalıdır. Dizenin biçimi aşağıdaki gibidir:
<Transport>://<ComputerName>:<Port>/<ApplicationName>
Varsayılan değer aşağıdaki gibidir:
http://localhost:5985/WSMAN
Bağlantı URI'si belirtmezseniz, bağlantı URI'si değerlerini belirtmek için UseSSL, ComputerName, Bağlantı Noktası ve ApplicationName parametrelerini kullanabilirsiniz.
URI'nin Aktarım kesimi için geçerli değerler HTTP ve HTTPS'dir. Aktarım kesimiyle bağlantı URI'sini belirtirseniz ancak bağlantı noktası belirtmezseniz, oturum standart bağlantı noktalarıyla oluşturulur: HTTP için 80 ve HTTPS için 443. PowerShell uzaktan iletişiminde varsayılan bağlantı noktalarını kullanmak için HTTP için 5985 veya HTTPS için 5986 numaralı bağlantı noktasını belirtin.
Hedef bilgisayar bağlantıyı farklı bir URI'ye yönlendirirse, komutunda AllowRedirection parametresini kullanmadığınız sürece PowerShell yeniden yönlendirmeyi engeller.
Type: | Uri |
Aliases: | URI, CU |
Position: | 0 |
Default value: | http://localhost:5985/WSMAN |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Credential
Bağlantısı kesilmiş oturuma bağlanma izni olan bir kullanıcı hesabı belirtir. Varsayılan, mevcut kullanıcıdır.
User01 veya Domain01\User01 gibi bir kullanıcı adı yazın veya cmdlet tarafından Get-Credential
oluşturulan bir PSCredential nesnesi girin. Bir kullanıcı adı yazarsanız parolayı girmeniz istenir.
Kimlik bilgileri bir PSCredential nesnesinde depolanır ve parola SecureString olarak depolanır.
Not
SecureString veri koruması hakkında daha fazla bilgi için bkz. SecureString ne kadar güvenli?.
Type: | PSCredential |
Position: | Named |
Default value: | Current user |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Bağlantısı kesilmiş oturumun kimliğini belirtir. Id parametresi yalnızca bağlantısı kesilen oturum daha önce geçerli oturuma bağlandığında çalışır.
Oturum yerel bilgisayarda depolandığında ancak geçerli oturuma bağlı olmadığında bu parametre geçerli ancak geçerli değildir.
Type: | Int32 |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InstanceId
Bağlantısı kesilmiş oturumun örnek kimliğini belirtir. Örnek kimliği, yerel veya uzak bir bilgisayarda PSSession'ı benzersiz olarak tanımlayan bir GUID'dir. Örnek kimliği, PSSession'un InstanceID özelliğinde depolanır.
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-JobName
Döndüren Receive-PSSession
iş için kolay bir ad belirtir.
Receive-PSSession
OutTarget parametresinin değeri İş olduğunda veya bağlantısı kesilmiş oturumda çalışan iş geçerli oturumda başlatıldığında bir iş döndürür.
Bağlantısı kesilmiş oturumda çalışan iş geçerli oturumda başlatıldıysa, PowerShell oturumdaki özgün iş nesnesini yeniden kullanıyor ve JobName parametresinin değerini yoksayar.
Bağlantısı kesilmiş oturumda çalışan iş farklı bir oturumda başlatıldıysa PowerShell yeni bir iş nesnesi oluşturur. Varsayılan bir ad kullanır, ancak adı değiştirmek için bu parametreyi kullanabilirsiniz.
OutTarget parametresinin varsayılan değeri veya açık değeri Job değilse, komut başarılı olur, ancak JobName parametresinin hiçbir etkisi yoktur.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Bağlantısı kesilmiş oturumun kolay adını belirtir.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutTarget
Oturum sonuçlarının nasıl döndürüleceğini belirler. Bu parametrenin kabul edilebilir değerleri şunlardır:
- İş için. Bir iş nesnesinde sonuçları zaman uyumsuz olarak döndürür. jobName parametresini kullanarak iş için bir ad veya yeni ad belirtebilirsiniz.
- Ana bilgisayar. Sonuçları komut satırına döndürür (zaman uyumlu olarak). Komut sürdürülüyorsa veya sonuçlar çok sayıda nesneden oluşuyorsa yanıt gecikebilir.
OutTarget parametresinin varsayılan değeri Host'tır. Bağlantısı kesilmiş bir oturumda alınan komut geçerli oturumda başlatıldıysa, OutTarget parametresinin varsayılan değeri komutun başlatıldığı formdur. Komut bir iş olarak başlatıldıysa, varsayılan olarak iş olarak döndürülür. Aksi takdirde, varsayılan olarak konak programına döndürülür.
Konak programı genellikle döndürülen nesneleri komut satırında gecikme olmadan görüntüler, ancak bu davranış farklılık gösterebilir.
Type: | OutTarget |
Accepted values: | Default, Host, Job |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Port
Uzak bilgisayarın oturuma yeniden bağlanmak için kullanılan ağ bağlantı noktasını belirtir. Uzak bir bilgisayara bağlanmak için, bağlantının kullandığı bağlantı noktasında dinliyor olması gerekir. Varsayılan bağlantı noktaları, HTTP için WinRM bağlantı noktası olan 5985 ve HTTPS için WinRM bağlantı noktası olan 5986'dır.
Alternatif bir bağlantı noktası kullanmadan önce, uzak bilgisayardaki WinRM dinleyicisini bu bağlantı noktasını dinleyecek şekilde yapılandırmanız gerekir. Dinleyiciyi yapılandırmak için PowerShell istemine aşağıdaki iki komutu yazın:
Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse
New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>
Gerekli olmadıkça Port parametresini kullanmayın. Komutta ayarlanan bağlantı noktası, komutun çalıştığı tüm bilgisayarlara veya oturumlara uygulanır. Alternatif bir bağlantı noktası ayarı, komutun tüm bilgisayarlarda çalışmasını engelleyebilir.
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Session
Bağlantısı kesilmiş oturumu belirtir. PSSession içeren bir değişken veya komut gibi PSSession'ı oluşturan veya alan bir Get-PSSession
komut girin.
Type: | PSSession |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-SessionOption
Oturum için gelişmiş seçenekleri belirtir. Cmdlet'ini kullanarak New-PSSessionOption
oluşturduğunuz bir SessionOption nesnesi veya anahtarların oturum seçeneği adları ve değerlerin oturum seçeneği değerleri olduğu bir karma tablo girin.
Seçenekler için varsayılan değerler, ayarlanmışsa tercih değişkeninin $PSSessionOption
değerine göre belirlenir. Aksi takdirde, varsayılan değerler oturum yapılandırmasında ayarlanan seçenekler tarafından oluşturulur.
Oturum seçeneği değerleri, tercih değişkeninde ve oturum yapılandırmasında $PSSessionOption
ayarlanan oturumlar için varsayılan değerlerden önceliklidir. Ancak, bunlar oturum yapılandırmasında ayarlanan maksimum değer, kota veya sınırlardan öncelikli değildir.
Varsayılan değerleri içeren oturum seçeneklerinin açıklaması için bkz New-PSSessionOption
. . $PSSessionOption tercih değişkeni hakkında bilgi için bkz. about_Preference_Variables. Oturum yapılandırmaları hakkında daha fazla bilgi edinmek için bkz. about_Session_Configurations.
Type: | PSSessionOption |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseSSL
Bu cmdlet'in bağlantısı kesilmiş oturuma bağlanmak için Güvenli Yuva Katmanı (SSL) protokolunu kullandığını gösterir. Varsayılan olarak SSL kullanılmaz.
WS-Management, ağ üzerinden iletilen tüm PowerShell içeriğini şifreler. UseSSL , verileri HTTP bağlantısı yerine HTTPS bağlantısı üzerinden gönderen ek bir korumadır.
Bu parametreyi kullanırsanız ve komut için kullanılan bağlantı noktasında SSL kullanılamıyorsa, komut başarısız olur.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Cmdlet çalıştırılıyorsa ne olacağını gösterir. Cmdlet çalıştırılmıyor.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
Oturum nesnelerini, cmdlet tarafından döndürülen nesneler gibi bu cmdlet'e Get-PSSession
yöneltebilirsiniz.
Oturum kimliklerini bu cmdlet'e yöneltebilirsiniz.
Bu cmdlet'in oturumlarının örnek kimliklerini kanala geçirebilirsiniz.
Oturum adlarını bu cmdlet'e yöneltebilirsiniz.
Çıkışlar
OutTarget parametresinin değeri veya varsayılan değeri iseJob
Receive-PSSession
, bir iş nesnesi döndürür.
Bu cmdlet, varsa bağlantısı kesilmiş oturumda çalıştırılan komutların sonuçlarını döndürür.
Notlar
PowerShell için aşağıdaki diğer adları Receive-PSSession
içerir:
- Tüm platformlar:
rcsn
Bu cmdlet yalnızca Windows platformlarında kullanılabilir.
Receive-PSSession
yalnızca bağlantısı kesilmiş oturumlardan sonuç alır. Yalnızca PowerShell 3.0 veya sonraki sürümleri çalıştıran bilgisayarlara bağlı olan veya sonlandırılan oturumların bağlantısı kesilebilir ve yeniden bağlanabilir.
Bağlantısı kesilmiş oturumda çalışan komutlar sonuç oluşturmadıysa veya sonuçlar zaten başka bir oturuma döndürüldüyse, Receive-PSSession
herhangi bir çıkış oluşturmaz.
Oturumun çıkış arabelleğe alma modu, oturum bağlantısı kesildiğinde oturumdaki komutların çıkışı nasıl yöneteceğini belirler. Oturumun OutputBufferingMode seçeneğinin değeri Drop olduğunda ve çıkış arabelleği dolduğunda, komut çıkışı silmeye başlar. Receive-PSSession
bu çıkışı kurtaramıyor. Çıkış arabelleği modu seçeneği hakkında daha fazla bilgi için New-PSSessionOption ve New-PSTransportOption cmdlet'leri için yardım makalelerine bakın.
PSSession'a bağlandığınızda veya sonuçları aldığınızda PSSession'un boşta kalma zaman aşımı değerini değiştiremezsiniz. sessionOption parametresiReceive-PSSession
, IdleTimeout değerine sahip bir SessionOption nesnesi alır. Ancak, SessionOption nesnesinin IdleTimeout değeri ve değişkenin $PSSessionOption
IdleTimeout değeri, PSSession'a bağlandığında veya sonuçları aldığında yoksayılır.
- PSSession'u oluştururken, veya
Invoke-Command
cmdlet'lerini kullanarakNew-PSSession
ve PSSession bağlantısını kestiğiniz zaman PSSession'un boşta kalma süresini ayarlayabilir ve değiştirebilirsiniz. - Bir PSSession'un IdleTimeout özelliği, bağlantısı kesilmiş bir oturumun uzak bilgisayarda ne kadar süre tutulacaklarını belirlediğinden bağlantısı kesilmiş oturumlar için kritik öneme sahiptir. Bağlantısı kesilmiş oturumlarda komutlar çalıştırılsa bile bağlantısı kesilen oturumların bağlantısı kesildiğinde boşta olduğu kabul edilir.
Cmdlet'in AsJob parametresini Invoke-Command
kullanarak uzak oturumda bir iş başlatırsanız, iş uzak oturumda çalıştırılsa bile iş nesnesi geçerli oturumda oluşturulur. Uzak oturumun bağlantısını keserseniz, geçerli oturumdaki iş nesnesinin iş bağlantısı kesilir. İş nesnesi, ona döndürülen tüm sonuçları içerir, ancak bağlantısı kesilmiş oturumda işten yeni sonuçlar almaz.
Çalışan işi içeren oturuma farklı bir istemci bağlanırsa, özgün oturumdaki özgün iş nesnesine teslim edilen sonuçlar yeni bağlanan oturumda kullanılamaz. Yalnızca özgün iş nesnesine teslim edilmemiş sonuçlar yeniden bağlanan oturumda kullanılabilir.
Benzer şekilde, bir oturumda bir betik başlatır ve ardından oturum bağlantısını keserseniz, betiğin bağlantıyı kesmeden önce oturuma ilettiği sonuçlar oturuma bağlanan başka bir istemci tarafından kullanılamaz.
Bağlantıyı kesmek istediğiniz oturumlarda veri kaybını önlemek için cmdlet'in Invoke-Command
InDisconnectedSession parametresini kullanın. Bu parametre sonuçların geçerli oturuma döndürülmesini önlediğinden, oturum yeniden bağlandığında tüm sonuçlar kullanılabilir.
Uzak oturumda Invoke-Command
komut Start-Job
çalıştırmak için cmdlet'ini kullanarak da veri kaybını önleyebilirsiniz. Bu durumda, iş nesnesi uzak oturumda oluşturulur. İş sonuçlarını almak için cmdlet'ini kullanamazsınız Receive-PSSession
. Bunun yerine, Connect-PSSession
oturuma bağlanmak için cmdlet'ini kullanın ve ardından cmdlet'ini Invoke-Command
kullanarak oturumda bir Receive-Job
komut çalıştırın.
Çalışan işi içeren bir oturumun bağlantısı kesildiğinde ve yeniden bağlandığında, özgün iş nesnesi yalnızca işin bağlantısı kesildiğinde ve aynı oturuma yeniden bağlandığında yeniden kullanılır ve yeniden bağlanma komutu yeni bir iş adı belirtmez. Oturum farklı bir istemci oturumuna yeniden bağlanırsa veya yeni bir iş adı belirtilirse, PowerShell yeni oturum için yeni bir iş nesnesi oluşturur.
PsSession bağlantısını kestiğiniz zaman oturum durumu Bağlantısı Kesildi ve kullanılabilirlik Yok şeklindedir.
- State özelliğinin değeri geçerli oturuma göredir. Bağlantısı Kesildi değeri, PSSession'un geçerli oturuma bağlı olmadığı anlamına gelir. Ancak bu, PSSession'un tüm oturumlarla bağlantısının kesildiğini göstermez. Farklı bir oturuma bağlı olabilir. Oturuma bağlanıp bağlanamayacağınızı veya oturuma yeniden bağlanıp bağlanamayacağınızı belirlemek için Kullanılabilirlik özelliğini kullanın.
- Hiçbiri Kullanılabilirlik değeri oturuma bağlanabileceğinizi gösterir. Meşgul değeri, başka bir oturuma bağlı olduğundan PSSession'a bağlanamadığınızı gösterir.
- Oturumların State özelliğinin değerleri hakkında daha fazla bilgi için bkz. RunspaceState.
- Oturumların Kullanılabilirlik özelliğinin değerleri hakkında daha fazla bilgi için bkz. RunspaceAvailability.
İlişkili Bağlantılar
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