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ärde för parametern SessionOption för cmdletar som skapar en PSSession, till exempel New-PSSession, Enter-PSSessionoch Invoke-Command.
Utan parametrar New-PSSessionOption genererar ett objekt som innehåller standardvärdena för alla alternativ. Eftersom varje egenskap kan redigeras kan du använda det resulterande objektet som en mall och skapa standardalternativobjekt för ditt företag.
Du kan också spara ett SessionOption-objekt i inställningsvariabeln $PSSessionOption . Värdena för den här variabeln etablerar nya standardvärden för sessionsalternativen. De är effektiva 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 SessionOption-objekt i en cmdlet som skapar en session. Mer information om inställningsvariabeln finns i$PSSessionOption about_Preference_Variables.
När du använder ett SessionOption-objekt i en cmdlet som skapar en session har sessionsalternativvärdena företräde framför standardvärdena för sessioner som angetts 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 angetts i sessionskonfigurationen. För ytterligare information om sessionskonfigurationer, se about_Session_Configurations.
Exempel
Exempel 1: Skapa ett standardalternativ för sessionen
Det här kommandot skapar ett SessionOption-objekt med standardvärdena.
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 SessionOption-objekt 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 SessionOption-objekt och sparar det i variabelns $pso värde. Det andra kommandot använder cmdleten New-PSSession för att skapa en session på server01-fjärrdatorn. Kommandot använder objektet SessionOption 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 Enter-PSSession kommandot.
Exempel 4: Ändra ett sessionsalternativobjekt
Det här exemplet visar att du kan ändra objektet SessionOption . 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 särskilda användningsområden.
Exempel 5: Skapa en inställningsvariabel
Det här kommandot skapar en $PSSessionOption inställningsvariabel.
$PSSessionOption = New-PSSessionOption -OpenTimeOut 120000
$PSSessionOption När inställningsvariabeln anges i sessionen upprättas standardvärden för alternativ i de sessioner som skapas med New-PSSessioncmdletarna , 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 inställningsvariabeln finns i$PSSessionOption 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 SessionOption-objekt 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. Kontrollvariabeln $skipCN 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 gemensamma 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 för 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.
Därefter skapar cmdleten New-PSSessionOption , med hjälp av parametern ApplicationArguments , ett SessionOption-objekt som sparats i variabeln $team . När New-PSSessionOption skapar sessionsalternativobjektet konverteras hash-tabellen automatiskt i värdet för parametern ApplicationArguments till en PrimitiveDictionary 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 variabeln $team ä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
Anger en PrimitiveDictionary 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_Configurations och about_Automatic_Variables.
| Type: | PSPrimitiveDictionary |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Avgör hur länge PowerShell väntar på att en avbokningså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.
| Type: | Int32 |
| Aliases: | CancelTimeoutMSec |
| Position: | Named |
| Default value: | 60000 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger vilken kultur som ska användas för sessionen. Ange ett kulturnamn i <languagecode2>-<country/regioncode2> formatet (till exempel ja-JP), en variabel som innehåller ett CultureInfo-objekt eller ett kommando som hämtar ett CultureInfo-objekt .
Standardvärdet är $Null, och kulturen som anges i operativsystemet används i sessionen.
| Type: | CultureInfo |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Avgör hur länge sessionen förblir ö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). Maxvärdet är värdet för egenskapen MaxIdleTimeoutms för sessionskonfigurationen. Standardvärdet, -1, anger inte en tidsgräns för inaktivitet.
Sessionen använder tidsgränsen för inaktivitet som anges i sessionsalternativen, om sådan finns. Om ingen har angetts (-1) använder sessionen värdet för egenskapen IdleTimeoutMs 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 egenskapen MaxIdleTimeoutMs för sessionskonfigurationen misslyckas kommandot för att skapa en session.
Värdet för IdleTimeoutMs för standardkonfigurationen för Microsoft.PowerShell-sessionen är 7200000 millisekunder (2 timmar). Värdet för MaxIdleTimeoutMs ä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 240000 standardvärdet för parametern IdleTimeout (4 minuter).
| Type: | Int32 |
| Aliases: | IdleTimeoutMSec |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Innehåller portnumret i tjänstens huvudnamn (SPN) som används för Kerberos-autentisering, HTTP://<ComputerName>:5985till exempel . Med det här alternativet kan en klient som använder ett standard-SPN autentisera 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. Ett IIS-program som tillåter Kerberos-autentisering kan till exempel kräva att standard-SPN registreras för 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 Översikt över Setspn.
Den här parametern introducerades i Windows PowerShell 3.0.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger hur många gånger 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.
| Type: | Int32 |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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.
| Type: | Int32 |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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 200standardvärdet om du utelämnar den här parametern .
| Type: | Int32 |
| Position: | Named |
| Default value: | 200 MB |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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.
| Type: | Int32 |
| Position: | Named |
| Default value: | 5 |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Inaktiverar paketkomprimering i sessionen. Komprimering använder fler processorcykler, men det gör överföringen snabbare.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Inaktiverar datakryptering.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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.
| Type: | Int32 |
| Aliases: | OpenTimeoutMSec |
| Position: | Named |
| Default value: | 180000 (3 minutes) |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Avgör den maximala tiden som WinRM väntar på positiva anslutningstester från en live-anslutning innan tidsgränsen för anslutningen initieras. Mer information om WinRM finns i dokumentationen för Windows Remote Management.
OperationTimeout har ingen tidsgräns för kommandon eller processer som körs i en fjärrsession och påverkar inte andra fjärrkommunikationsprotokoll som SSH.
Standardvärdet är 180000 (3 minuter). Värdet 0 (noll) innebär ingen tidsgräns.
| Type: | Int32 |
| Aliases: | OperationTimeoutMSec |
| Position: | Named |
| Default value: | 180000 (3 minutes) |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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 Blockstandardvärdet . Användare kan också ändra utdatabuffringsläget när de kopplar från sessionen.
Om du utelämnar den här parametern är Nonevärdet för OutputBufferingMode för Objektet SessionOption . Ett värde för Block eller Drop åsidosätter transportalternativet för utdatabuffertningsläge som angetts i sessionskonfigurationen. De acceptabla värdena för den här parametern är:
Block. När utdatabufferten är full pausas körningen tills bufferten är klar.Drop. När utdatabufferten är full fortsätter körningen. När nya utdata sparas ignoreras de äldsta utdata.None. 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.
| Type: | OutputBufferingMode |
| Accepted values: | None, Drop, Block |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Avgör vilken mekanism som används för att matcha värdnamnet. De acceptabla värdena för den här parametern är:
IEConfigWinHttpConfigAutoDetectNoProxyServerNone
Standardvärdet är None.
Information om värdena för den här parametern finns i ProxyAccessType-uppräkning.
| Type: | ProxyAccessType |
| Accepted values: | None, IEConfig, WinHttpConfig, AutoDetect, NoProxyServer |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger den autentiseringsmetod som används för proxymatchning. De acceptabla värdena för den här parametern är:
BasicDigestNegotiate
Standardvärdet är Negotiate.
Mer information om värdena för den här parametern finns i AuthenticationMechanism Enumeration.
| Type: | AuthenticationMechanism |
| Accepted values: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
| Position: | Named |
| Default value: | Negotiate |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
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.
| Type: | PSCredential |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger att klienten inte verifierar att servercertifikatet har signerats av en betrodd certifikatutfärdare (CA) när den ansluter via HTTPS.
Använd bara 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.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger att certifikatets eget 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.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Verifierar inte återkallningsstatusen för servercertifikatet.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger vilken UI-kultur som ska användas för sessionen.
Giltiga värden är:
- Ett kulturnamn i
<languagecode2>-<country/regioncode2>format, till exempelja-JP - En variabel som innehåller ett CultureInfo-objekt
- Ett kommando som hämtar ett CultureInfo-objekt , till exempel
Get-Culture
Standardvärdet är $null, och den UI-kultur som anges i operativsystemet när sessionen skapas.
| Type: | CultureInfo |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Anger att denna cmdlet kodar begäran i UTF16-format i stället för UTF8-format.
| Type: | SwitchParameter |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
Indata
None
Du kan inte skicka indata till denna cmdlet.
Utdata
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ällningsvariabeln, om den har angetts. Mer information om variabeln finns i $PSSessionOptionabout_Preference_Variables.
Egenskaperna för ett sessionskonfigurationsobjekt varierar beroende på vilka alternativ som angetts för sessionskonfigurationen och värdena för dessa alternativ. Dessutom har sessionskonfigurationer som använder en sessionskonfigurationsfil ytterligare egenskaper.
Relaterade länkar
Feedback
Skicka och visa feedback för