Udostępnij za pośrednictwem


New-PSTransportOption

Tworzy obiekt zawierający zaawansowane opcje konfiguracji sesji.

Składnia

New-PSTransportOption
   [-MaxIdleTimeoutSec <Int32>]
   [-ProcessIdleTimeoutSec <Int32>]
   [-MaxSessions <Int32>]
   [-MaxConcurrentCommandsPerSession <Int32>]
   [-MaxSessionsPerUser <Int32>]
   [-MaxMemoryPerSessionMB <Int32>]
   [-MaxProcessesPerSession <Int32>]
   [-MaxConcurrentUsers <Int32>]
   [-IdleTimeoutSec <Int32>]
   [-OutputBufferingMode <OutputBufferingMode>]
   [<CommonParameters>]

Opis

Polecenie cmdlet New-PSTransportOption tworzy obiekt zawierający opcje transportu konfiguracji sesji. Można użyć obiektu jako wartości parametru TransportOption poleceń cmdlet, które tworzą lub zmieniają konfigurację sesji, takie jak polecenia cmdlet Register-PSSessionConfiguration i Set-PSSessionConfiguration.

Możesz również zmienić ustawienia opcji transportu, edytując wartości właściwości konfiguracji sesji na dysku WSMan: . Aby uzyskać więcej informacji, zobacz Dostawca WSMan.

Opcje konfiguracji sesji reprezentują wartości sesji ustawione po stronie serwera lub odbierające koniec połączenia zdalnego. Po stronie klienta lub wysłaniu końca połączenia można ustawić wartości opcji sesji podczas tworzenia sesji lub gdy klient rozłącza się z sesją lub ponownie łączy się z sesją. O ile nie określono inaczej, jeśli wartości ustawień powodują konflikt, wartości po stronie klienta mają pierwszeństwo. Jednak wartości po stronie klienta nie mogą naruszać maksymalnych wartości i przydziałów ustawionych w konfiguracji sesji.

Bez parametrów New-PSTransportOption generuje obiekt opcji transportu, który ma wartości null dla wszystkich opcji. Jeśli pominięto parametr, obiekt ma wartość null dla właściwości, którą reprezentuje parametr. Wartość null nie ma wpływu na konfigurację sesji.

Aby uzyskać więcej informacji na temat opcji sesji, zobacz New-PSSessionOption. Aby uzyskać więcej informacji na temat konfiguracji sesji, zobacz about_Session_Configurations.

To polecenie cmdlet zostało wprowadzone w programie Windows PowerShell 3.0.

Przykłady

Przykład 1. Generowanie domyślnej opcji transportu

PS C:\> New-PSTransportOption
ProcessIdleTimeoutSec           :
MaxIdleTimeoutSec               :
MaxSessions                     :
MaxConcurrentCommandsPerSession :
MaxSessionsPerUser              :
MaxMemoryPerSessionMB           :
MaxProcessesPerSession          :
MaxConcurrentUsers              :
IdleTimeoutSec                  :
OutputBufferingMode             :

To polecenie uruchamia New-PSTransportOption bez parametrów. Dane wyjściowe pokazują, że polecenie cmdlet generuje obiekt opcji transportu, który ma wartości null dla wszystkich właściwości.

Przykład 2. Pobieranie opcji konfiguracji sesji

The first command uses the **New-PSTransportOption** cmdlet to create a transport options object, which it saves in the $t variable. The command uses the *MaxSessions* parameter to increase the maximum number of sessions to 40.
PS C:\> $t = New-PSTransportOption -MaxSessions 40

The second command uses the **Register-PSSessionConfiguration** cmdlet create the ITTasks session configuration. The command uses the *TransportOption* parameter to specify the transport options object in the $t variable.
PS C:\> Register-PSSessionConfiguration -Name ITTasks -TransportOption $t

The third command uses the Get-PSSessionConfiguration cmdlet to get the ITTasks session configurations and the Format-List cmdlet to display all of the properties of the session configuration object in a list. The output shows that the value of the **MaxShells** property of the session configuration is 40.
PS C:\> Get-PSSessionConfiguration -Name ITTasks | Format-List -Property *
Architecture                  : 64
Filename                      : %windir%\system32\pwrshplugin.dll
ResourceUri                   : https://schemas.microsoft.com/powershell/ITTasks
MaxConcurrentCommandsPerShell : 1000
UseSharedProcess              : false
ProcessIdleTimeoutSec         : 0
xmlns                         : https://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
MaxConcurrentUsers            : 5
lang                          : en-US
SupportsOptions               : true
ExactMatch                    : true
RunAsUser                     :
IdleTimeoutms                 : 7200000
PSVersion                     : 3.0
OutputBufferingMode           : Block
AutoRestart                   : false
MaxShells                     : 40
MaxMemoryPerShellMB           : 1024
MaxIdleTimeoutms              : 43200000
SDKVersion                    : 2
Name                          : ITTasks
XmlRenderingType              : text
Capability                    : {Shell}
RunAsPassword                 :
MaxProcessesPerShell          : 15
Enabled                       : True
MaxShellsPerUser              : 25
Permission                    :

W tym przykładzie pokazano, jak używać obiektu opcji transportu do ustawiania opcji konfiguracji sesji.

Przykład 3. Ustawianie opcji transportu

The first command uses the **New-PSTransportOption** cmdlet to create a transport option object. The command uses the *IdleTimeoutSec* parameter to set the **IdleTimeoutSec** property value of the object to one hour (3600 seconds). The command saves the transport objects object in the $t variable.
PS C:\> $t = New-PSTransportOption -IdleTimeoutSec 3600

The second command uses the Set-PSSessionConfiguration cmdlet to change the transport options of the ITTasks session configuration. The command uses the *TransportOption* parameter to specify the transport options object in the $t variable.
PS C:\> Set-PSSessionConfiguration -Name ITTasks -TransportOption $t

The third command uses the New-PSSession cmdlet to create the MyITTasks session on the local computer. The command uses the **ConfigurationName** property to specify the ITTasks session configuration. The command saves the session in the $s variable.Notice that the command does not use the *SessionOption* parameter of **New-PSSession** to set a custom idle time-out for the session. If it did, the idle time-out value set in the session option would take precedence over the idle time-out set in the session configuration.
PS C:\> $s = New-PSSession -Name MyITTasks -ConfigurationName ITTasks

The fourth command uses the Format-List cmdlet to display all properties of the session in the $s variable in a list. The output shows that the session has an idle time-out of one hour (360,000 milliseconds).
PS C:\> $s | Format-List -Property *
State                  : Opened
IdleTimeout            : 3600000
OutputBufferingMode    : Block
ComputerName           : localhost
ConfigurationName      : ITTasks
InstanceId             : 4110c3f5-68ea-40fa-9bbf-04a433dbb02d
Id                     : 1
Name                   : MyITTasks
Availability           : Available
ApplicationPrivateData : {PSVersionTable}
Runspace               : System.Management.Automation.RemoteRunspace

To polecenie pokazuje wpływ ustawienia opcji transportu w konfiguracji sesji na sesjach korzystających z konfiguracji sesji.

Parametry

-IdleTimeoutSec

Określa, jak długo każda sesja pozostaje otwarta, jeśli komputer zdalny nie odbiera żadnej komunikacji z komputera lokalnego. Obejmuje to sygnał pulsu. Po wygaśnięciu interwału sesja zostanie zamknięta.

Wartość limitu czasu bezczynności ma istotne znaczenie, gdy użytkownik zamierza rozłączyć się i ponownie nawiązać połączenie z sesją. Użytkownik może ponownie nawiązać połączenie tylko wtedy, gdy upłynął limit czasu sesji.

Parametr IdleTimeoutSec odpowiada właściwości IdleTimeoutMs konfiguracji sesji.

Wprowadź wartość w sekundach. Wartość domyślna to 7200 (2 godziny). Minimalna wartość to 60 (1 minuta). Wartość maksymalna to wartość właściwości IdleTimeout obiektów powłoki w konfiguracji programu WSMan (WSMan:\\\<ComputerName\>\Shell\IdleTimeout). Wartość domyślna to 72000000 milisekund (2 godziny).

Jeśli wartość limitu czasu bezczynności jest ustawiona w opcjach sesji i w konfiguracji sesji, wartość ustawiona w opcjach sesji ma pierwszeństwo, ale nie może przekraczać wartości MaxIdleTimeoutMs właściwości konfiguracji sesji. Aby ustawić wartość właściwości MaxIdleTimeoutMs, użyj parametru MaxIdleTimeoutSec.

Typ:Int32
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-MaxConcurrentCommandsPerSession

Ogranicza liczbę poleceń, które mogą być uruchamiane jednocześnie w każdej sesji do określonej wartości. Wartość domyślna to 1000.

Parametr MaxConcurrentCommandsPerSession odpowiada właściwości MaxConcurrentCommandsPerShell konfiguracji sesji.

Typ:Int32
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-MaxConcurrentUsers

Ogranicza liczbę użytkowników, którzy mogą uruchamiać polecenia jednocześnie w każdej sesji do określonej wartości. Wartość domyślna to 5.

Typ:Int32
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-MaxIdleTimeoutSec

Ogranicza limit czasu bezczynności ustawiony dla każdej sesji na określoną wartość. Wartość domyślna to [Int]::MaxValue (~25 dni).

Wartość limitu czasu bezczynności ma istotne znaczenie, gdy użytkownik zamierza rozłączyć się i ponownie nawiązać połączenie z sesją. Użytkownik może ponownie nawiązać połączenie tylko wtedy, gdy upłynął limit czasu sesji.

Parametr MaxIdleTimeoutSec odpowiada MaxIdleTimeoutMs konfiguracji sesji.

Typ:Int32
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-MaxMemoryPerSessionMB

Ogranicza pamięć używaną przez każdą sesję do określonej wartości. Wprowadź wartość w megabajtach. Wartość domyślna to 1024 megabajty (1 GB).

Parametr MaxMemoryPerSessionMB odpowiada właściwości MaxMemoryPerShellMB konfiguracji sesji.

Typ:Int32
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-MaxProcessesPerSession

Ogranicza liczbę procesów uruchomionych w każdej sesji do określonej wartości. Wartość domyślna to 15.

Parametr MaxProcessesPerSession odpowiada właściwości MaxProcessesPerShell konfiguracji sesji.

Typ:Int32
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-MaxSessions

Ogranicza liczbę sesji korzystających z konfiguracji sesji. Wartość domyślna to 25.

Parametr MaxSessions odpowiada właściwości MaxShells konfiguracji sesji.

Typ:Int32
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-MaxSessionsPerUser

Ogranicza liczbę sesji używających konfiguracji sesji i uruchamianych przy użyciu poświadczeń danego użytkownika do określonej wartości. Wartość domyślna to 25.

Po określeniu tej wartości należy wziąć pod uwagę, że wielu użytkowników może używać poświadczeń uruchom jako użytkownik.

Parametr MaxSessionsPerUser odpowiada właściwości MaxShellsPerUser konfiguracji sesji.

Typ:Int32
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-OutputBufferingMode

Określa sposób zarządzania danymi wyjściowymi poleceń w rozłączonych sesjach, gdy bufor wyjściowy staje się pełny. Dopuszczalne wartości tego parametru to:

  • Blok. Gdy bufor wyjściowy jest zapełniony, wykonywanie jest zawieszone do momentu, gdy bufor jest wyczyszczone.
  • Kropla. Gdy bufor wyjściowy jest pełny, wykonywanie będzie kontynuowane. W miarę zapisywania nowych danych wyjściowych najstarsze dane wyjściowe są odrzucane.
  • Żaden. Nie określono trybu buforowania danych wyjściowych.

Wartość domyślna właściwości OutputBufferingMode sesji to Blokuj.

Typ:OutputBufferingMode
Dopuszczalne wartości:None, Drop, Block
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-ProcessIdleTimeoutSec

Ogranicza limit czasu dla każdego procesu hosta do określonej wartości. Wartość domyślna, 0, oznacza, że nie ma wartości limitu czasu dla procesu.

Inne konfiguracje sesji mają wartości limitu czasu dla procesu. Na przykład konfiguracja sesji Microsoft.PowerShell.Workflow ma wartość limitu czasu dla procesu 28800 sekund (8 godzin).

Typ:Int32
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

None

Nie można przekazać danych wejściowych potoku do tego polecenia cmdlet.

Dane wyjściowe

WSManConfigurationOption

Uwagi

  • Właściwości obiektu konfiguracji sesji różnią się w zależności od opcji ustawionych dla konfiguracji sesji i wartości tych opcji. Ponadto konfiguracje sesji korzystające z pliku konfiguracji sesji mają dodatkowe właściwości.