Dela via


Connect-PSSession

Återansluter till frånkopplade sessioner.

Syntax

Connect-PSSession
       -Name <String[]>
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-Session] <PSSession[]>
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       -ComputerName <String[]>
       [-ApplicationName <String>]
       [-ConfigurationName <String>]
       -InstanceId <Guid[]>
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-Port <Int32>]
       [-UseSSL]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       -ComputerName <String[]>
       [-ApplicationName <String>]
       [-ConfigurationName <String>]
       [-Name <String[]>]
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-Port <Int32>]
       [-UseSSL]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ConfigurationName <String>]
       [-ConnectionUri] <Uri[]>
       [-AllowRedirection]
       -InstanceId <Guid[]>
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ConfigurationName <String>]
       [-ConnectionUri] <Uri[]>
       [-AllowRedirection]
       [-Name <String[]>]
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       -InstanceId <Guid[]>
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ThrottleLimit <Int32>]
       [-Id] <Int32[]>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Description

Cmdleten Connect-PSSession återansluter till användarhanterade Windows PowerShell-sessioner (PSSessions) som var frånkopplade. Det fungerar på sessioner som kopplas från avsiktligt, till exempel med hjälp av cmdleten Disconnect-PSSession eller parametern InDisconnectedSession för Invoke-Command-cmdleten och de som kopplades från oavsiktligt, till exempel av ett tillfälligt nätverksavbrott.

Connect-PSSession kan ansluta till alla frånkopplade sessioner som startades av samma användare. Dessa inkluderar de som startades av eller kopplades från andra sessioner på andra datorer.

Men Connect-PSSession kan inte ansluta till brutna eller stängda sessioner eller interaktiva sessioner som startas med hjälp av cmdleten Enter-PSSession. Du kan inte heller ansluta sessioner till sessioner som startats av andra användare, såvida du inte kan ange autentiseringsuppgifterna för den användare som skapade sessionen.

Mer information om funktionen Frånkopplade sessioner finns i about_Remote_Disconnected_Sessions.

Den här cmdleten introducerades i Windows PowerShell 3.0.

Exempel

Exempel 1: Återansluta till en session

PS C:\> Connect-PSSession -ComputerName Server01 -Name ITTask
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 4 ITTask          Server01        Opened        ITTasks                  Available

Det här kommandot återansluter till ITTask-sessionen på Server01-datorn.

Utdata visar att kommandot lyckades. State för sessionen är Öppnad och Tillgänglighet är Tillgänglig, vilket indikerar att du kan köra kommandon i sessionen.

Exempel 2: Effekten av att koppla från och återansluta

PS C:\> Get-PSSession

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 Backups         Localhost       Opened        Microsoft.PowerShell     Available


PS C:\> Get-PSSession | Disconnect-PSSession

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 Backups         Localhost       Disconnected  Microsoft.PowerShell          None


PS C:\> Get-PSSession | Connect-PSSession

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 Backups         Localhost       Opened        Microsoft.PowerShell     Available

Det här exemplet visar effekten av att koppla från och sedan återansluta till en session.

Det första kommandot använder cmdleten Get-PSSession. Utan parametern ComputerName hämtar kommandot endast sessioner som skapades i den aktuella sessionen.

Utdata visar att kommandot hämtar säkerhetskopieringssessionen på den lokala datorn. Sessionens tillstånd öppnas och tillgänglighet är tillgänglig.

Det andra kommandot använder cmdleten Get-PSSession för att hämta PSSession- objekt som skapades i den aktuella sessionen och cmdleten Disconnect-PSSession för att koppla från sessionerna. Utdata visar att säkerhetskopieringssessionen kopplades från. Sessionens state är frånkopplad och Tillgänglighet är Ingen.

Det tredje kommandot använder cmdleten Get-PSSession för att hämta PSSession- objekt som skapades i den aktuella sessionen och cmdleten Connect-PSSession för att återansluta sessionerna. Utdata visar att säkerhetskopieringssessionen återansluts. Sessionens tillstånd öppnas och tillgänglighet är tillgänglig.

Om du använder cmdleten Connect-PSSession i en session som inte är frånkopplad påverkar kommandot inte sessionen och genererar inga fel.

Exempel 3: Serie med kommandon i ett företagsscenario

The administrator starts by creating a sessions on a remote computer and running a script in the session.The first command uses the **New-PSSession** cmdlet to create the ITTask session on the Server01 remote computer. The command uses the *ConfigurationName* parameter to specify the ITTasks session configuration. The command saves the sessions in the $s variable.
PS C:\> $s = New-PSSession -ComputerName Server01 -Name ITTask -ConfigurationName ITTasks

 The second command **Invoke-Command** cmdlet to start a background job in the session in the $s variable. It uses the *FilePath* parameter to run the script in the background job.
PS C:\> Invoke-Command -Session $s {Start-Job -FilePath \\Server30\Scripts\Backup-SQLDatabase.ps1}
Id     Name            State         HasMoreData     Location             Command
--     ----            -----         -----------     --------             -------
2      Job2            Running       True            Server01             \\Server30\Scripts\Backup...

The third command uses the Disconnect-PSSession cmdlet to disconnect from the session in the $s variable. The command uses the *OutputBufferingMode* parameter with a value of Drop to prevent the script from being blocked by having to deliver output to the session. It uses the *IdleTimeoutSec* parameter to extend the session time-out to 15 hours.When the command is completed, the administrator locks her computer and goes home for the evening.
PS C:\> Disconnect-PSSession -Session $s -OutputBufferingMode Drop -IdleTimeoutSec 60*60*15
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Disconnected  ITTasks               None

Later that evening, the administrator starts her home computer, logs on to the corporate network, and starts Windows PowerShell. The fourth command uses the Get-PSSession cmdlet to get the sessions on the Server01 computer. The command finds the ITTask session.The fifth command uses the **Connect-PSSession** cmdlet to connect to the ITTask session. The command saves the session in the $s variable.
PS C:\> Get-PSSession -ComputerName Server01 -Name ITTask

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Disconnected  ITTasks               None


PS C:\> $s = Connect-PSSession -ComputerName Server01 -Name ITTask


Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Opened        ITTasks               Available

The sixth command uses the **Invoke-Command** cmdlet to run a Get-Job command in the session in the $s variable. The output shows that the job finished successfully.The seventh command uses the **Invoke-Command** cmdlet to run a Receive-Job command in the session in the $s variable in the session. The command saves the results in the $BackupSpecs variable.The eighth command uses the **Invoke-Command** cmdlet to runs another script in the session. The command uses the value of the $BackupSpecs variable in the session as input to the script.


PS C:\> Invoke-Command -Session $s {Get-Job}

Id     Name            State         HasMoreData     Location             Command
--     ----            -----         -----------     --------             -------
2      Job2            Completed     True            Server01             \\Server30\Scripts\Backup...

PS C:\> Invoke-Command -Session $s {$BackupSpecs = Receive-Job -JobName Job2}

PS C:\> Invoke-Command -Session $s {\\Server30\Scripts\New-SQLDatabase.ps1 -InitData $BackupSpecs.Initialization}

The ninth command disconnects from the session in the $s variable.The administrator closes Windows PowerShell and closes the computer. She can reconnect to the session on the next day and check the script status from her work computer.
PS C:\> Disconnect-PSSession -Session $s -OutputBufferingMode Drop -IdleTimeoutSec 60*60*15
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Disconnected  ITTasks               None

Den här serien med kommandon visar hur cmdleten Connect-PSSession kan användas i ett företagsscenario. I det här fallet startar en systemadministratör ett tidskrävande jobb i en session på en fjärrdator. När du har startat jobbet kopplar administratören från sessionen och går hem. Senare på kvällen loggar administratören in på sin hemdator och verifierar att jobbet kördes tills det har slutförts.

Parametrar

-AllowRedirection

Anger att denna cmdlet tillåter omdirigering av den här anslutningen till en alternativ URI.

När du använder parametern ConnectionURI kan fjärrmålet returnera en instruktion för att omdirigera till en annan URI. Som standard omdirigerar Inte Windows PowerShell anslutningar, men du kan använda den här parametern för att tillåta att den omdirigerar anslutningen.

Du kan också begränsa antalet gånger anslutningen omdirigeras genom att ändra MaximumConnectionRedirectionCount sessionsalternativvärde. Använd parametern MaximumRedirection för cmdleten New-PSSessionOption eller ange egenskapen MaximumConnectionRedirectionCount för $PSSessionOption inställningsvariabeln. Standardvärdet är 5.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-ApplicationName

Anger namnet på ett program. Den här cmdleten ansluter endast till sessioner som använder det angivna programmet.

Ange programnamnssegmentet för anslutnings-URI:n. I följande anslutnings-URI är till exempel programnamnet WSMan: https://localhost:5985/WSMAN. Programnamnet för en session lagras i egenskapen Runspace.ConnectionInfo.AppName för sessionen.

Värdet för den här parametern används för att välja och filtrera sessioner. Det ändrar inte programmet som sessionen använder.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Authentication

Anger den mekanism som används för att autentisera användarautentiseringsuppgifter i kommandot för att återansluta till den frånkopplade sessionen. De godtagbara värdena för den här parametern är:

  • Standard
  • Grundläggande
  • Credssp
  • Smälta
  • Kerberos
  • Förhandla
  • NegotiateWithImplicitCredential

Standardvärdet är Standard.

Mer information om värdena för den här parametern finns i AuthenticationMechanism Enumeration i MSDN-biblioteket.

Varning! CredSSP-autentisering (CredSSP), där användarens autentiseringsuppgifter skickas till en fjärrdator som ska autentiseras, är utformad för kommandon som kräver autentisering på mer än en resurs, till exempel åtkomst till en fjärrnätverksresurs. Den här mekanismen ökar säkerhetsrisken för fjärråtgärden. Om fjärrdatorn komprometteras kan de autentiseringsuppgifter som skickas till den användas för att styra nätverkssessionen.

Typ:AuthenticationMechanism
Godkända värden:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-CertificateThumbprint

Anger det digitala offentliga nyckelcertifikatet (X509) för ett användarkonto som har behörighet att ansluta till den frånkopplade sessionen. Ange certifikatets tumavtryck.

Certifikat används i klientcertifikatbaserad autentisering. De kan endast mappas till lokala användarkonton. De fungerar inte med domänkonton.

Om du vill hämta ett tumavtryck för certifikat använder du ett Get-Item- eller Get-ChildItem-kommando i Windows PowerShell Cert: -enheten.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-ComputerName

Anger de datorer där de frånkopplade sessionerna lagras. Sessioner lagras på den dator som finns på serversidan eller tar emot en anslutning. Standardvärdet är den lokala datorn.

Ange NetBIOS-namnet, en IP-adress eller ett fullständigt domännamn på en dator. Jokertecken tillåts inte. Om du vill ange den lokala datorn skriver du datornamnet, localhost eller en punkt (.)

Typ:String[]
Alias:Cn
Position:Named
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-ConfigurationName

Ansluter endast till sessioner som använder den angivna sessionskonfigurationen.

Ange ett konfigurationsnamn eller den fullständigt kvalificerade resurs-URI:n för en sessionskonfiguration. Om du bara anger konfigurationsnamnet förbereds följande schema-URI: https://schemas.microsoft.com/powershell. Konfigurationsnamnet för en session lagras i egenskapen ConfigurationName för sessionen.

Värdet för den här parametern används för att välja och filtrera sessioner. Den ändrar inte sessionskonfigurationen som sessionen använder.

Mer information om sessionskonfigurationer finns i about_Session_Configurations.

Typ:String
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Confirm

Uppmanar dig att bekräfta innan du kör cmdleten.

Typ:SwitchParameter
Alias:cf
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-ConnectionUri

Anger URI:er för anslutningsslutpunkterna för de frånkopplade sessionerna.

URI:n måste vara fullständigt kvalificerad. Formatet för den här strängen är följande:

\<Transport\>://\<ComputerName\>:\<Port\>/\<ApplicationName\>

Standardvärdet är följande:

https://localhost:5985/WSMAN

Om du inte anger någon anslutnings-URI kan du använda parametrarna UseSSL och Port för att ange anslutnings-URI-värden.

Giltiga värden för segmentet Transport i URI:n är HTTP och HTTPS. Om du anger en anslutnings-URI med ett transportsegment, men inte anger någon port, skapas sessionen med standardportar: 80 för HTTP och 443 för HTTPS. Om du vill använda standardportarna för Windows PowerShell-fjärrkommunikation anger du port 5985 för HTTP eller 5986 för HTTPS.

Om måldatorn omdirigerar anslutningen till en annan URI förhindrar Windows PowerShell omdirigeringen om du inte använder parametern AllowRedirection i kommandot.

Typ:Uri[]
Alias:URI, CU
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-Credential

Anger ett användarkonto som har behörighet att ansluta till den frånkopplade sessionen. Standardvärdet är den aktuella användaren.

Ange ett användarnamn, till exempel User01 eller Domain01\User01. Eller ange ett PSCredential- objekt, till exempel ett objekt som genereras av Get-Credential-cmdleten. Om du skriver ett användarnamn uppmanas du att ange ett lösenord i den här cmdleten.

Typ:PSCredential
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Id

Anger ID:n för de frånkopplade sessionerna. Parametern ID fungerar bara när den frånkopplade sessionen tidigare var ansluten till den aktuella sessionen.

Den här parametern är giltig, men inte effektiv, när sessionen lagras på den lokala datorn, men inte var ansluten till den aktuella sessionen.

Typ:Int32[]
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-InstanceId

Anger instans-ID:n för de frånkopplade sessionerna.

Instans-ID:t är ett GUID som unikt identifierar en PSSession- på en lokal dator eller fjärrdator.

Instans-ID:t lagras i egenskapen InstanceID för PSSession.

Typ:Guid[]
Position:Named
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Name

Anger de egna namnen på de frånkopplade sessionerna.

Typ:String[]
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Port

Anger nätverksporten på fjärrdatorn som används för att återansluta till sessionen. Om du vill ansluta till en fjärrdator måste fjärrdatorn lyssna på porten som anslutningen använder. Standardportarna är 5985, som är WinRM-porten för HTTP och 5986, som är WinRM-porten för HTTPS.

Innan du använder en alternativ port måste du konfigurera WinRM-lyssnaren på fjärrdatorn så att den lyssnar på den porten. Om du vill konfigurera lyssnaren skriver du följande två kommandon i Windows PowerShell-prompten:

Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse

New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>

Använd inte parametern Port om du inte måste göra det. Porten som anges i kommandot gäller för alla datorer eller sessioner där kommandot körs. En alternativ portinställning kan förhindra att kommandot körs på alla datorer.

Typ:Int32
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-Session

Anger de frånkopplade sessionerna. Ange en variabel som innehåller PSSession- objekt eller ett kommando som skapar eller hämtar PSSession- objekt, till exempel ett Get-PSSession kommando.

Typ:PSSession[]
Position:0
Standardvärde:None
Obligatorisk:True
Godkänn pipeline-indata:True
Godkänn jokertecken:False

-SessionOption

Anger avancerade alternativ för sessionen. Ange ett SessionOption- objekt, till exempel ett objekt som du skapar med hjälp av cmdleten New-PSSessionOption eller en hash-tabell där nycklarna är sessionsalternativnamn och värdena är sessionsalternativvärden.

Standardvärdena för alternativen bestäms av värdet för $PSSessionOption inställningsvariabel, om den anges. Annars upprättas standardvärdena av de alternativ som anges i sessionskonfigurationen.

Sessionsalternativvärdena har företräde framför standardvärden för sessioner som anges i $PSSessionOption-inställningsvariabeln och i sessionskonfigurationen. De har dock inte företräde framför de högsta värden, kvoter eller gränser som anges i sessionskonfigurationen.

En beskrivning av sessionsalternativen som innehåller standardvärdena finns i New-PSSessionOption. Information om $PSSessionOption-inställningsvariabeln finns i about_Preference_Variables. Mer information om sessionskonfigurationer finns i about_Session_Configurations.

Typ:PSSessionOption
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-ThrottleLimit

Anger det maximala antalet samtidiga anslutningar som kan upprättas för att köra det här kommandot. Om du utelämnar den här parametern eller anger värdet 0 används standardvärdet 32.

Begränsningsgränsen gäller endast för det aktuella kommandot, inte för sessionen eller på datorn.

Typ:Int32
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-UseSSL

Anger att den här cmdleten använder SSL-protokollet (Secure Sockets Layer) för att ansluta till den frånkopplade sessionen. Som standard används inte SSL.

WS-Management krypterar allt Windows PowerShell-innehåll som överförs via nätverket. Parametern UseSSL är ett ytterligare skydd som skickar data över en HTTPS-anslutning i stället för en HTTP-anslutning.

Om du använder den här parametern, men SSL inte är tillgängligt på porten som används för kommandot, misslyckas kommandot.

Typ:SwitchParameter
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-WhatIf

Visar vad som skulle hända om cmdleten körs. Cmdleten körs inte.

Typ:SwitchParameter
Alias:wi
Position:Named
Standardvärde:False
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

Indata

PSSession

Du kan skicka en session (PSSession) till den här cmdleten.

Utdata

PSSession

Den här cmdleten returnerar ett objekt som representerar den session som den återansluter till.

Kommentarer

  • Connect-PSSession återansluter endast till sessioner som är frånkopplade, det vill säga sessioner som har värdet Frånkopplad för egenskapen State. Endast sessioner som är anslutna till eller slutar på datorer som kör Windows PowerShell 3.0 eller senare versioner kan kopplas från och återanslutas.

  • Om du använder Connect-PSSession på en session som inte är frånkopplad påverkar kommandot inte sessionen och genererar inga fel.

  • Frånkopplade loopback-sessioner med interaktiva token, som skapas med hjälp av parametern EnableNetworkAccess, kan endast återanslutas från den dator där sessionen skapades. Den här begränsningen skyddar datorn från skadlig åtkomst.

  • Värdet för egenskapen State för en PSSession- är relativ till den aktuella sessionen. Därför innebär värdet frånkopplad att PSSession- inte är ansluten till den aktuella sessionen. Det innebär dock inte att PSSession- är frånkopplad från alla sessioner. Den kan vara ansluten till en annan session. Om du vill avgöra om du kan ansluta eller återansluta till sessionen använder du egenskapen Tillgänglighet.

    Ett Tillgänglighet värdet Ingen anger att du kan ansluta till sessionen. Värdet Upptagen anger att du inte kan ansluta till PSSession- eftersom den är ansluten till en annan session.

    Mer information om värdena för egenskapen State för sessioner finns i RunspaceState Enumeration i MSDN-biblioteket.

    Mer information om värdena för egenskapen Availability för sessioner finns i RunspaceAvailability Enumeration i MSDN-biblioteket.

  • Du kan inte ändra tidsgränsvärdet för inaktivitet för en PSSession- när du ansluter till PSSession-. Parametern SessionOption för Connect-PSSession tar ett SessionOption-objekt som har ett IdleTimeout--värde. Värdet IdleTimeout för objektet SessionOption och värdet IdleTimeout för variabeln $PSSessionOption ignoreras när du ansluter till en PSSession-.

    Du kan ange och ändra tidsgränsen för inaktivitet för en PSSession- när du skapar PSSession-med hjälp av cmdletarna New-PSSession eller Invoke-Command och när du kopplar från PSSession.

    Egenskapen IdleTimeout för en PSSession- är viktig för frånkopplade sessioner, eftersom den avgör hur länge en frånkopplad session underhålls på fjärrdatorn. Frånkopplade sessioner anses vara inaktiva från den tidpunkt då de kopplas från, även om kommandon körs i den frånkopplade sessionen.