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-PSSessioncmdlet 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-PSSessionuzak bilgisayarları belirtmek için ComputerName parametresini kullanır. Nesneler işlem hattına Receive-PSSessiongö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-ChildItemGet-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:COMPUTERNAMEveya 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-PSSessionOutTarget 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

PSSession

Oturum nesnelerini, cmdlet tarafından döndürülen nesneler gibi bu cmdlet'e Get-PSSession yöneltebilirsiniz.

Int32

Oturum kimliklerini bu cmdlet'e yöneltebilirsiniz.

Guid

Bu cmdlet'in oturumlarının örnek kimliklerini kanala geçirebilirsiniz.

String

Oturum adlarını bu cmdlet'e yöneltebilirsiniz.

Çıkışlar

Job

OutTarget parametresinin değeri veya varsayılan değeri iseJobReceive-PSSession, bir iş nesnesi döndürür.

PSObject

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-PSSessioniç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 kullanarak New-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.