New-PSSessionOption

Skapar ett objekt som innehåller avancerade alternativ för en PSSession.

Syntax

New-PSSessionOption
   [-MaximumRedirection <Int32>]
   [-NoCompression]
   [-NoMachineProfile]
   [-Culture <CultureInfo>]
   [-UICulture <CultureInfo>]
   [-MaximumReceivedDataSizePerCommand <Int32>]
   [-MaximumReceivedObjectSize <Int32>]
   [-OutputBufferingMode <OutputBufferingMode>]
   [-MaxConnectionRetryCount <Int32>]
   [-ApplicationArguments <PSPrimitiveDictionary>]
   [-OpenTimeout <Int32>]
   [-CancelTimeout <Int32>]
   [-IdleTimeout <Int32>]
   [-ProxyAccessType <ProxyAccessType>]
   [-ProxyAuthentication <AuthenticationMechanism>]
   [-ProxyCredential <PSCredential>]
   [-SkipCACheck]
   [-SkipCNCheck]
   [-SkipRevocationCheck]
   [-OperationTimeout <Int32>]
   [-NoEncryption]
   [-UseUTF16]
   [-IncludePortInSPN]
   [<CommonParameters>]

Description

Cmdleten New-PSSessionOption skapar ett objekt som innehåller avancerade alternativ för en användarhanterad session (PSSession). Du kan använda objektet som värdet för parametern SessionOption för cmdletar som skapar en PSSession-, till exempel New-PSSession, Enter-PSSession och Invoke-Command.

Utan parametrar genererar New-PSSessionOption ett objekt som innehåller standardvärdena för alla alternativ. Eftersom alla egenskaper kan redigeras kan du använda det resulterande objektet som en mall och skapa standardalternativobjekt för företaget.

Du kan också spara ett sessionsalternativobjekt i $PSSessionOption inställningsvariabeln. Värdena för den här variabeln etablerar nya standardvärden för sessionsalternativen. De gäller när inga sessionsalternativ har angetts för sessionen och de har företräde framför de alternativ som anges i sessionskonfigurationen, men du kan åsidosätta dem genom att ange sessionsalternativ eller ett sessionsalternativobjekt i en cmdlet som skapar en session. Mer information om $PSSessionOption-inställningsvariabeln finns i about_Preference_Variables.

När du använder ett sessionsalternativobjekt i en cmdlet som skapar en session har sessionsalternativvärdena företräde framför standardvärdena 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. Mer information om sessionskonfigurationer finns i about_Session_Configurations.

Exempel

Exempel 1: Skapa ett standardalternativ för sessioner

Det här kommandot skapar ett sessionsalternativobjekt som har alla standardvärden.

New-PSSessionOption

MaximumConnectionRedirectionCount : 5
NoCompression                     : False
NoMachineProfile                  : False
ProxyAccessType                   : IEConfig
ProxyAuthentication               : Negotiate
ProxyCredential                   :
SkipCACheck                       : False
SkipCNCheck                       : False
SkipRevocationCheck               : False
OperationTimeout                  : 00:03:00
NoEncryption                      : False
UseUTF16                          : False
Culture                           :
UICulture                         :
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize         :
ApplicationArguments              :
OpenTimeout                       : 00:03:00
CancelTimeout                     : 00:01:00
IdleTimeout                       : 00:04:00

Exempel 2: Konfigurera en session med hjälp av ett sessionsalternativobjekt

Det här exemplet visar hur du använder ett sessionsalternativobjekt för att konfigurera en session.

$pso = New-PSSessionOption -Culture "fr-fr" -MaximumReceivedObjectSize 10MB
New-PSSession -ComputerName Server01 -SessionOption $pso

Det första kommandot skapar ett nytt sessionsalternativobjekt och sparar det i värdet för variabeln $pso. Det andra kommandot använder cmdleten New-PSSession för att skapa en session på server01-fjärrdatorn. Kommandot använder sessionsalternativobjektet i värdet för variabeln $pso som värdet för parametern SessionOption för kommandot.

Exempel 3: Starta en interaktiv session

Det här kommandot använder cmdleten Enter-PSSession för att starta en interaktiv session med Server01-datorn.

Enter-PSSession -ComputerName Server01 -SessionOption (New-PSSessionOption -NoEncryption -NoCompression)

Värdet för parametern SessionOption är ett New-PSSessionOption kommando som har parametrarna NoEncryption och NoCompression.

Kommandot New-PSSessionOption omges av parenteser för att se till att det körs före kommandot Enter-PSSession.

Exempel 4: Ändra ett sessionsalternativobjekt

Det här exemplet visar att du kan ändra sessionsalternativobjektet. Alla egenskaper har läs-/skrivvärden.

$a = New-PSSessionOption
$a.OpenTimeout

Days              : 0
Hours             : 0
Minutes           : 3
Seconds           : 0
Milliseconds      : 0
Ticks             : 1800000000
TotalDays         : 0.00208333333333333
TotalHours        : 0.05
TotalMinutes      : 3
TotalSeconds      : 180
TotalMilliseconds : 180000

$a.UICulture = (Get-UICulture)
$a.OpenTimeout = (New-Timespan -Minutes 4)
$a.MaximumConnectionRedirectionCount = 1
$a

MaximumConnectionRedirectionCount : 1
NoCompression                     : False
NoMachineProfile                  : False
ProxyAccessType                   : IEConfig
ProxyAuthentication               : Negotiate
ProxyCredential                   :
SkipCACheck                       : False
SkipCNCheck                       : False
SkipRevocationCheck               : False
OperationTimeout                  : 00:03:00
NoEncryption                      : False
UseUTF16                          : False
Culture                           :
UICulture                         : en-US
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize         :
ApplicationArguments              :
OpenTimeout                       : 00:04:00
CancelTimeout                     : 00:01:00
IdleTimeout                       : 00:04:00

Använd den här metoden för att skapa ett standardsessionsobjekt för ditt företag och skapa sedan anpassade versioner av det för specifika användningsområden.

Exempel 5: Skapa en inställningsvariabel

Det här kommandot skapar en $PSSessionOption inställningsvariabel.

$PSSessionOption = New-PSSessionOption -OpenTimeOut 120000

När den $PSSessionOption inställningsvariabeln inträffar i sessionen upprättas standardvärden för alternativ i de sessioner som skapas med hjälp av cmdletarna New-PSSession, Enter-PSSessionoch Invoke-Command.

Om du vill göra variabeln $PSSessionOption tillgänglig i alla sessioner lägger du till den i PowerShell-sessionen och i din PowerShell-profil.

Mer information om $PSSessionOption-inställningsvariabeln finns i about_Preference_Variables. Mer information om profiler finns i about_Profiles.

Exempel 6: Uppfylla kraven för en fjärrsessionskonfiguration

Det här exemplet visar hur du använder ett SessionOption--objekt för att uppfylla kraven för en fjärrsessionskonfiguration.

$skipCN = New-PSSessionOption -SkipCNCheck
New-PSSession -ComputerName 171.09.21.207 -UseSSL -Credential Domain01\User01 -SessionOption $SkipCN

Det första kommandot använder cmdleten New-PSSessionOption för att skapa ett sessionsalternativobjekt som har egenskapen SkipCNCheck. Kommandot sparar det resulterande sessionsobjektet i variabeln $skipCN.

Det andra kommandot använder cmdleten New-PSSession för att skapa en ny session på en fjärrdator. Variabeln $skipCN check används i värdet för parametern SessionOption.

Eftersom datorn identifieras av dess IP-adress matchar inte värdet för parametern ComputerName något av de vanliga namnen i certifikatet som används för Secure Sockets Layer (SSL). Därför krävs alternativet SkipCNCheck.

Exempel 7: Gör argument tillgängliga för en fjärrsession

Det här exemplet visar hur du använder parametern ApplicationArguments i cmdleten New-PSSessionOption för att göra ytterligare data tillgängliga för fjärrsessionen.

$team = @{Team="IT"; Use="Testing"}
$TeamOption = New-PSSessionOption -ApplicationArguments $team
$s = New-PSSession -ComputerName Server01 -SessionOption $TeamOption
Invoke-Command -Session $s {$PSSenderInfo.ApplicationArguments}

Name                 Value
----                 -----
Team                 IT
Use                  Testing
PSVersionTable       {CLRVersion, BuildVersion, PSVersion, WSManStackVersion...}

Invoke-Command -Session $s {
  if ($PSSenderInfo.ApplicationArguments.Use -ne "Testing") {
    .\logFiles.ps1
  }
  else {
    "Just testing."
  }
}

Just testing.

Det första kommandot skapar en hash-tabell med två nycklar, Team och Use. Kommandot sparar hash-tabellen i variabeln $team. Mer information om hash-tabeller finns i about_Hash_Tables.

Sedan skapar New-PSSessionOption-cmdleten med parametern ApplicationArguments ett sessionsalternativobjekt som sparats i variabeln $team. När New-PSSessionOption skapar sessionsalternativobjektet konverteras hash-tabellen automatiskt i värdet för parametern ApplicationArguments till en primitiv ordlista så att data kan överföras på ett tillförlitligt sätt till fjärrsessionen.

Cmdleten New-PSSession startar en session på Server01-datorn. Den använder parametern SessionOption för att inkludera alternativen i variabeln $teamOption.

Cmdleten Invoke-Command visar att data i $team variabeln är tillgängliga för kommandon i fjärrsessionen. Data visas i egenskapen ApplicationArguments för den $PSSenderInfo automatiska variabeln.

Den sista Invoke-Command visar hur data kan användas.

Parametrar

-ApplicationArguments

Anger en primitiv ordlista som skickas till fjärrsessionen. Kommandon och skript i fjärrsessionen, inklusive startskript i sessionskonfigurationen, kan hitta den här ordlistan i egenskapen ApplicationArguments för den $PSSenderInfo automatiska variabeln. Du kan använda den här parametern för att skicka data till fjärrsessionen.

Mer information finns i about_Hash_Tables, about_Session_Configurationsoch about_Automatic_Variables.

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

-CancelTimeout

Avgör hur länge PowerShell väntar på att en avbruten åtgärd (CTRL+C) ska slutföras innan den avslutas. Ange ett värde i millisekunder.

Standardvärdet är 60000 (en minut). Värdet 0 (noll) innebär ingen tidsgräns. kommandot fortsätter på obestämd tid.

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

-Culture

Anger vilken kultur som ska användas för sessionen. Ange ett kulturnamn i <languagecode2>-<country/regioncode2> format (till exempel ja-JP), en variabel som innehåller ett CultureInfo--objekt eller ett kommando som hämtar ett CultureInfo--objekt.

Standardvärdet är $Nulloch den kultur som anges i operativsystemet används i sessionen.

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

-IdleTimeout

Avgör hur länge sessionen är öppen om fjärrdatorn inte tar emot någon kommunikation från den lokala datorn. Detta inkluderar pulsslagssignalen. När intervallet upphör att gälla stängs sessionen.

Tidsgränsvärdet för inaktivitet är av stor betydelse om du tänker koppla från och återansluta till en session. Du kan bara återansluta om sessionen inte har överskridit tidsgränsen.

Ange ett värde i millisekunder. Minimivärdet är 60000 (1 minut). Det högsta värdet är värdet för egenskapen MaxIdleTimeoutms för sessionskonfigurationen. Standardvärdet -1 anger inte tidsgränsen för inaktivitet.

Sessionen använder tidsgränsen för inaktivitet som anges i sessionsalternativen, om det finns några. Om ingen anges (-1) använder sessionen värdet för IdleTimeoutMs egenskapen för sessionskonfigurationen eller WSMan-gränssnittets timeout-värde (WSMan:\<ComputerName>\Shell\IdleTimeout), beroende på vilket som är kortast.

Om tidsgränsen för inaktivitet som anges i sessionsalternativen överskrider värdet för MaxIdleTimeoutMs egenskapen för sessionskonfigurationen misslyckas kommandot för att skapa en session.

IdleTimeoutMs värdet för standardinställningen Microsoft.PowerShell sessionskonfiguration är 7200000 millisekunder (2 timmar). Dess MaxIdleTimeoutMs värdet är 2147483647 millisekunder (>24 dagar). Standardvärdet för tidsgränsen för inaktivitet i WSMan-gränssnittet (WSMan:\<ComputerName>\Shell\IdleTimeout) är 7200000 millisekunder (2 timmar).

Tidsgränsvärdet för inaktivitet för en session kan också ändras när du kopplar från en session eller återansluter till en session. Mer information finns i Disconnect-PSSession och Connect-PSSession.

I Windows PowerShell 2.0 är standardvärdet för parametern IdleTimeout 240000 (4 minuter).

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

-IncludePortInSPN

Innehåller portnumret i tjänstens huvudnamn (SPN) som används för Kerberos-autentisering, till exempel HTTP://<ComputerName>:5985. Med det här alternativet kan en klient som använder ett SPN som inte är standard autentiseras mot en fjärrdator som använder Kerberos-autentisering.

Alternativet är utformat för företag där flera tjänster som stöder Kerberos-autentisering körs under olika användarkonton. Till exempel kan ett IIS-program som tillåter Kerberos-autentisering kräva att standard-SPN registreras till ett användarkonto som skiljer sig från datorkontot. I sådana fall kan PowerShell-fjärrkommunikation inte använda Kerberos för att autentisera eftersom det kräver ett SPN som är registrerat på datorkontot. För att lösa det här problemet kan administratörer skapa olika SPN: er, till exempel genom att använda Setspn.exe, som är registrerade på olika användarkonton och kan skilja mellan dem genom att inkludera portnumret i SPN.

Mer information finns i Setspn Overview.

Den här parametern introducerades i Windows PowerShell 3.0.

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

-MaxConnectionRetryCount

Anger antalet gånger som PowerShell försöker upprätta en anslutning till en måldator om det aktuella försöket misslyckas på grund av nätverksproblem. Standardvärdet är 5.

Den här parametern har lagts till för PowerShell version 5.0.

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

-MaximumReceivedDataSizePerCommand

Anger det maximala antalet byte som den lokala datorn kan ta emot från fjärrdatorn i ett enda kommando. Ange ett värde i byte. Som standard finns det ingen datastorleksgräns.

Det här alternativet är utformat för att skydda resurserna på klientdatorn.

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

-MaximumReceivedObjectSize

Anger den maximala storleken på ett objekt som den lokala datorn kan ta emot från fjärrdatorn. Det här alternativet är utformat för att skydda resurserna på klientdatorn. Ange ett värde i byte.

Om du utelämnar den här parametern i Windows PowerShell 2.0 finns det ingen storleksgräns för objekt. Från och med Windows PowerShell 3.0 är standardvärdet 200 MB om du utelämnar den här parametern.

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

-MaximumRedirection

Avgör hur många gånger PowerShell omdirigerar en anslutning till en alternativ URI (Uniform Resource Identifier) innan anslutningen misslyckas. Standardvärdet är 5. Värdet 0 (noll) förhindrar all omdirigering.

Det här alternativet används endast i sessionen när parametern AllowRedirection används i kommandot som skapar sessionen.

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

-NoCompression

Inaktiverar paketkomprimering i sessionen. Komprimering använder fler processorcykler, men det gör överföringen snabbare.

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

-NoEncryption

Inaktiverar datakryptering.

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

-NoMachineProfile

Förhindrar inläsning av användarens Windows-användarprofil. Därför kan sessionen skapas snabbare, men användarspecifika registerinställningar, objekt som miljövariabler och certifikat är inte tillgängliga i sessionen.

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

-OpenTimeout

Avgör hur länge klientdatorn väntar på att sessionsanslutningen ska upprättas. När intervallet upphör att gälla misslyckas kommandot för att upprätta anslutningen. Ange ett värde i millisekunder.

Standardvärdet är 180000 (3 minuter). Värdet 0 (noll) innebär ingen tidsgräns. kommandot fortsätter på obestämd tid.

Typ:Int32
Alias:OpenTimeoutMSec
Position:Named
Standardvärde:180000 (3 minutes)
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-OperationTimeout

Avgör den maximala tid som en åtgärd i sessionen kan köras. När intervallet upphör att gälla misslyckas åtgärden. Ange ett värde i millisekunder.

Standardvärdet är 180000 (3 minuter). Värdet 0 (noll) innebär ingen tidsgräns. åtgärden fortsätter på obestämd tid.

Typ:Int32
Alias:OperationTimeoutMSec
Position:Named
Standardvärde:180000 (3 minutes)
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-OutputBufferingMode

Avgör hur kommandoutdata hanteras i frånkopplade sessioner när utdatabufferten blir full.

Om utdatabuffertningsläget inte har angetts i sessionen eller i sessionskonfigurationen är standardvärdet Blockera. Användare kan också ändra utdatabuffertningsläget när sessionen kopplas från.

Om du utelämnar den här parametern är värdet för OutputBufferingMode för sessionsalternativobjektet Ingen. Värdet Block or Drop åsidosätter transportalternativet för utdatabuffertningsläget som anges i sessionskonfigurationen. De godtagbara värdena för den här parametern är:

  • Block. När utdatabufferten är full pausas körningen tills bufferten är klar.
  • Droppe. När utdatabufferten är full fortsätter körningen. När nya utdata sparas ignoreras de äldsta utdata.
  • Ingen. Inget utdatabuffertningsläge har angetts.

Mer information om transportalternativet för utdatabuffertningsläge finns i New-PSTransportOption.

Den här parametern introducerades i Windows PowerShell 3.0.

Typ:OutputBufferingMode
Godkända värden:None, Drop, Block
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-ProxyAccessType

Avgör vilken mekanism som används för att matcha värdnamnet. De godtagbara värdena för den här parametern är:

  • IEConfig
  • WinHttpConfig
  • Identifiera automatiskt
  • NoProxyServer
  • Ingen

Standardvärdet är Ingen.

Information om värdena för den här parametern finns i ProxyAccessType-uppräkning.

Typ:ProxyAccessType
Godkända värden:None, IEConfig, WinHttpConfig, AutoDetect, NoProxyServer
Position:Named
Standardvärde:None
Obligatorisk:False
Godkänn pipeline-indata:False
Godkänn jokertecken:False

-ProxyAuthentication

Anger den autentiseringsmetod som används för proxymatchning. De godtagbara värdena för den här parametern är: Basic, Digestoch Negotiate. Standardvärdet är Negotiate.

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

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

-ProxyCredential

Anger de autentiseringsuppgifter som ska användas för proxyautentisering. Ange en variabel som innehåller ett PSCredential--objekt eller ett kommando som hämtar ett PSCredential--objekt, till exempel ett Get-Credential kommando. Om det här alternativet inte har angetts anges inga autentiseringsuppgifter.

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

-SkipCACheck

Anger att när den ansluter via HTTPS verifierar klienten inte att servercertifikatet har signerats av en betrodd certifikatutfärdare (CA).

Använd endast det här alternativet när fjärrdatorn är betrodd med hjälp av en annan mekanism, till exempel när fjärrdatorn är en del av ett nätverk som är fysiskt säkert och isolerat eller när fjärrdatorn anges som en betrodd värd i en WinRM-konfiguration.

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

-SkipCNCheck

Anger att certifikatets gemensamma namn (CN) på servern inte behöver matcha serverns värdnamn. Det här alternativet används endast i fjärråtgärder som använder HTTPS-protokollet.

Använd endast det här alternativet för betrodda datorer.

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

-SkipRevocationCheck

Verifierar inte återkallningsstatusen för servercertifikatet.

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

-UICulture

Anger den användargränssnittskultur som ska användas för sessionen.

Giltiga värden är:

  • Ett kulturnamn i <languagecode2>-<country/regioncode2> format, till exempel ja-JP
  • En variabel som innehåller ett CultureInfo-objekt
  • Ett kommando som hämtar ett CultureInfo- objekt, till exempel Get-Culture

Standardvärdet är $nulloch den användargränssnittskultur som anges i operativsystemet när sessionen skapas används i sessionen.

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

-UseUTF16

Anger att denna cmdlet kodar begäran i UTF16-format i stället för UTF8-format.

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

Indata

None

Du kan inte skicka indata till den här cmdleten.

Utdata

PSSessionOption

Kommentarer

Om parametern SessionOption inte används i ett kommando för att skapa en PSSession-, bestäms sessionsalternativen av egenskapsvärdena för $PSSessionOption inställningsvariabel, om den har angetts. Mer information om variabeln $PSSessionOption finns i about_Preference_Variables.

Egenskaperna för ett sessionskonfigurationsobjekt varierar med de alternativ som angetts för sessionskonfigurationen och värdena för dessa alternativ. Sessionskonfigurationer som använder en sessionskonfigurationsfil har dessutom ytterligare egenskaper.