Udostępnij za pośrednictwem


New-PSSessionConfigurationFile

Tworzy plik, który definiuje konfigurację sesji.

Składnia

New-PSSessionConfigurationFile
   [-Path] <String>
   [-SchemaVersion <Version>]
   [-Guid <Guid>]
   [-Author <String>]
   [-Description <String>]
   [-CompanyName <String>]
   [-Copyright <String>]
   [-SessionType <SessionType>]
   [-TranscriptDirectory <String>]
   [-RunAsVirtualAccount]
   [-RunAsVirtualAccountGroups <String[]>]
   [-MountUserDrive]
   [-UserDriveMaximumSize <Int64>]
   [-GroupManagedServiceAccount <String>]
   [-ScriptsToProcess <String[]>]
   [-RoleDefinitions <IDictionary>]
   [-RequiredGroups <IDictionary>]
   [-LanguageMode <PSLanguageMode>]
   [-ExecutionPolicy <ExecutionPolicy>]
   [-PowerShellVersion <Version>]
   [-ModulesToImport <Object[]>]
   [-VisibleAliases <String[]>]
   [-VisibleCmdlets <Object[]>]
   [-VisibleFunctions <Object[]>]
   [-VisibleExternalCommands <String[]>]
   [-VisibleProviders <String[]>]
   [-AliasDefinitions <IDictionary[]>]
   [-FunctionDefinitions <IDictionary[]>]
   [-VariableDefinitions <Object>]
   [-EnvironmentVariables <IDictionary>]
   [-TypesToProcess <String[]>]
   [-FormatsToProcess <String[]>]
   [-AssembliesToLoad <String[]>]
   [-Full]
   [<CommonParameters>]

Opis

To polecenie cmdlet jest dostępne tylko na platformie Windows.

Polecenie New-PSSessionConfigurationFile cmdlet tworzy plik ustawień definiujących konfigurację sesji i środowisko sesji, które są tworzone przy użyciu konfiguracji sesji. Aby użyć pliku w konfiguracji sesji, użyj parametru Register-PSSessionConfigurationŚcieżka poleceń cmdlet lubSet-PSSessionConfiguration.

Plik konfiguracji sesji, który New-PSSessionConfigurationFile tworzy, jest czytelnym dla człowieka plikiem tekstowym zawierającym tabelę skrótów właściwości i wartości konfiguracji sesji. Plik ma .pssc rozszerzenie nazwy pliku.

Wszystkie parametry są New-PSSessionConfigurationFile opcjonalne, z wyjątkiem parametru Ścieżka . W przypadku pominięcia parametru odpowiedni klucz w pliku konfiguracji sesji jest komentowany, z wyjątkiem sytuacji, w której został zanotowany w opisie parametru.

Konfiguracja sesji, znana również jako punkt końcowy, to kolekcja ustawień na komputerze lokalnym definiującym środowisko sesji programu PowerShell (PSSessions), które łączą się z komputerem. Wszystkie pliki PSSessions używają konfiguracji sesji. Aby określić określoną konfigurację sesji, użyj parametru ConfigurationName poleceń cmdlet, które tworzą sesję, taką jak New-PSSession polecenie cmdlet.

Plik konfiguracji sesji ułatwia definiowanie konfiguracji sesji bez złożonych skryptów lub zestawów kodu. Ustawienia w pliku są używane z opcjonalnym skryptem uruchamiania i wszystkimi zestawami w konfiguracji sesji.

Aby uzyskać więcej informacji na temat konfiguracji sesji i plików konfiguracji sesji, zobacz about_Session_Configurations i about_Session_Configuration_Files.

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

Przykłady

Przykład 1. Tworzenie i używanie sesji NoLanguage

W tym przykładzie pokazano, jak utworzyć i efekty korzystania z sesji bez języka.

Kroki te obejmują:

  1. Twórca nowy plik konfiguracji.
  2. Zarejestruj konfigurację.
  3. Twórca nowej sesji korzystającej z konfiguracji.
  4. Uruchom polecenia w tej nowej sesji.

Aby uruchomić polecenia w tym przykładzie, uruchom program PowerShell przy użyciu opcji Uruchom jako administrator. Ta opcja jest wymagana Register-PSSessionConfiguration do uruchomienia polecenia cmdlet.

New-PSSessionConfigurationFile -Path .\NoLanguage.pssc -LanguageMode NoLanguage
Register-PSSessionConfiguration -Path .\NoLanguage.pssc -Name NoLanguage -Force
$NoLanguageSession = New-PSSession -ComputerName Srv01 -ConfigurationName NoLanguage
Invoke-Command -Session $NoLanguageSession -ScriptBlock {
  if ((Get-Date) -lt '1January2099') {'Before'} else {'After'}
}

The syntax is not supported by this runspace. This might be because it is in no-language mode.
    + CategoryInfo          : ParserError: (if ((Get-Date) ...') {'Before'}  :String) [], ParseException
    + FullyQualifiedErrorId : ScriptsNotAllowed
    + PSComputerName        : localhost

W tym przykładzie niepowodzenie Invoke-Command , ponieważ tryb LanguageMode jest ustawiony na NoLanguage.

Przykład 2. Tworzenie i używanie sesji z ograniczeniamiLanguage

W tym przykładzie pokazano, jak utworzyć i efekty korzystania z sesji bez języka.

Kroki te obejmują:

  1. Twórca nowy plik konfiguracji.
  2. Zarejestruj konfigurację.
  3. Twórca nowej sesji korzystającej z konfiguracji.
  4. Uruchom polecenia w tej nowej sesji.

Aby uruchomić polecenia w tym przykładzie, uruchom program PowerShell przy użyciu opcji Uruchom jako administrator. Ta opcja jest wymagana Register-PSSessionConfiguration do uruchomienia polecenia cmdlet.

New-PSSessionConfigurationFile -Path .\NoLanguage.pssc -LanguageMode RestrictedLanguage
Register-PSSessionConfiguration -Path .\NoLanguage.pssc -Name RestrictedLanguage -Force
$RestrictedSession = New-PSSession -ComputerName Srv01 -ConfigurationName RestrictedLanguage
Invoke-Command -Session $RestrictedSession -ScriptBlock {
  if ((Get-Date) -lt '1January2099') {'Before'} else {'After'}
}

Before

W tym przykładzie powodzenie następuje, Invoke-Command ponieważ tryb LanguageMode jest ustawiony na Wartość RestrictedLanguage.

Przykład 3. Zmiana pliku konfiguracji sesji

W tym przykładzie pokazano, jak zmienić plik konfiguracji sesji używany w istniejącej sesji o nazwie "ITTasks". Wcześniej te sesje miały tylko podstawowe moduły i wewnętrzny moduł ITTasks . Administrator chce dodać moduł PSScheduledJob do sesji utworzonych przy użyciu konfiguracji sesji ITTasks.

New-PSSessionConfigurationFile -Path .\New-ITTasks.pssc -ModulesToImport Microsoft*, ITTasks, PSScheduledJob
Set-PSSessionConfiguration -Name ITTasks -Path .\New-ITTasks.pssc

Polecenie New-PSSessionConfigurationFile cmdlet do utworzenia pliku konfiguracji sesji, który importuje wymagane moduły. Polecenie Set-PSSessionConfiguration cmdlet zastępuje bieżący plik konfiguracji nowym. Ta nowa konfiguracja wpływa tylko na nowe sesje utworzone po zmianie. Nie ma to wpływu na istniejące sesje "ITTasks".

Przykład 4. Edytowanie pliku konfiguracji sesji

W tym przykładzie pokazano, jak zmienić konfigurację sesji, edytując kopię konfiguracji aktywnej sesji pliku konfiguracji. Aby zmodyfikować kopię konfiguracji sesji pliku konfiguracji, musisz mieć pełną kontrolę dostępu do pliku. Może to wymagać zmiany uprawnień w pliku.

W tym scenariuszu Select-String chcemy dodać nowy alias polecenia cmdlet, edytując aktywny plik konfiguracji.

Poniższy przykładowy kod wykonuje następujące kroki, aby wprowadzić tę zmianę:

  1. Pobierz ścieżkę pliku konfiguracji dla sesji ITConfig.
  2. Użytkownik edytuje plik konfiguracji przy użyciu Notepad.exe , aby zmienić wartość AliasDefinitions w następujący sposób: AliasDefinitions = @(@{Name='slst';Value='Select-String'}).
  3. Przetestuj zaktualizowany plik konfiguracji.
$ITConfig = Get-PSSessionConfiguration -Name ITConfig
notepad.exe $ITConfig.ConfigFilePath
Test-PSSessionConfigurationFile -Path $ITConfig.ConfigFilePath

True

Użyj parametru Verbose z, Test-PSSessionConfigurationFile aby wyświetlić wszelkie wykryte błędy. Polecenie cmdlet zwraca wartość $True , jeśli w pliku nie wykryto żadnych błędów.

Przykład 5: Twórca przykładowy plik konfiguracji

W tym przykładzie New-PSSessionConfigurationFile przedstawiono polecenie, które używa wszystkich parametrów polecenia cmdlet. Jest on dołączony do wyświetlania poprawnego formatu wejściowego dla każdego parametru.

Wynikowy plik SampleFile.pssc jest wyświetlany w danych wyjściowych.

$configSettings = @{
    Path = '.\SampleFile.pssc'
    SchemaVersion = '1.0.0.0'
    Author = 'User01'
    Copyright = '(c) Fabrikam Corporation. All rights reserved.'
    CompanyName = 'Fabrikam Corporation'
    Description = 'This is a sample file.'
    ExecutionPolicy = 'AllSigned'
    PowerShellVersion = '3.0'
    LanguageMode = 'FullLanguage'
    SessionType = 'Default'
    EnvironmentVariables = @{TESTSHARE='\\Test2\Test'}
    ModulesToImport = @{ModuleName='PSScheduledJob'; ModuleVersion='1.0.0.0'; GUID='50cdb55f-5ab7-489f-9e94-4ec21ff51e59'},'PSDiagnostics'
    AssembliesToLoad = 'System.Web.Services','FSharp.Compiler.CodeDom.dll'
    TypesToProcess = 'Types1.ps1xml','Types2.ps1xml'
    FormatsToProcess = 'CustomFormats.ps1xml'
    ScriptsToProcess = 'Get-Inputs.ps1'
    AliasDefinitions = @{Name='hlp';Value='Get-Help';Description='Gets help.';Options='AllScope'},
        @{Name='Update';Value='Update-Help';Description='Updates help';Options='ReadOnly'}
    FunctionDefinitions = @{Name='Get-Function';ScriptBlock={Get-Command -CommandType Function};Options='ReadOnly'}
    VariableDefinitions = @{Name='WarningPreference';Value='SilentlyContinue'}
    VisibleAliases = 'c*','g*','i*','s*'
    VisibleCmdlets = 'Get*'
    VisibleFunctions = 'Get*'
    VisibleProviders = 'FileSystem','Function','Variable'
    RunAsVirtualAccount = $true
    RunAsVirtualAccountGroups = 'Backup Operators'
}
New-PSSessionConfigurationFile @configSettings
Get-Content SampleFile.pssc

@{

# Version number of the schema used for this document
SchemaVersion = '1.0.0.0'

# ID used to uniquely identify this document
GUID = '1caeff7f-27ca-4360-97cf-37846f594235'

# Author of this document
Author = 'User01'

# Description of the functionality provided by these settings
Description = 'This is a sample file.'

# Company associated with this document
CompanyName = 'Fabrikam Corporation'

# Copyright statement for this document
Copyright = '(c) Fabrikam Corporation. All rights reserved.'

# Session type defaults to apply for this session configuration. Can be 'RestrictedRemoteServer' (recommended), 'Empty', or 'Default'
SessionType = 'Default'

# Directory to place session transcripts for this session configuration
# TranscriptDirectory = 'C:\Transcripts\'

# Whether to run this session configuration as the machine's (virtual) administrator account
RunAsVirtualAccount = $true

# Groups associated with machine's (virtual) administrator account
RunAsVirtualAccountGroups = 'Backup Operators'

# Scripts to run when applied to a session
ScriptsToProcess = 'Get-Inputs.ps1'

# User roles (security groups), and the role capabilities that should be applied to them when applied to a session
# RoleDefinitions = @{ 'CONTOSO\SqlAdmins' = @{ RoleCapabilities = 'SqlAdministration' }; 'CONTOSO\SqlManaged' = @{ RoleCapabilityFiles = 'C:\RoleCapability\SqlManaged.psrc' }; 'CONTOSO\ServerMonitors' = @{ VisibleCmdlets = 'Get-Process' } }

# Language mode to apply when applied to a session. Can be 'NoLanguage' (recommended), 'RestrictedLanguage', 'ConstrainedLanguage', or 'FullLanguage'
LanguageMode = 'FullLanguage'

# Execution policy to apply when applied to a session
ExecutionPolicy = 'AllSigned'

# Version of the PowerShell engine to use when applied to a session
PowerShellVersion = '3.0'

# Modules to import when applied to a session
ModulesToImport = @{
    'GUID' = '50cdb55f-5ab7-489f-9e94-4ec21ff51e59'
    'ModuleName' = 'PSScheduledJob'
    'ModuleVersion' = '1.0.0.0' }, 'PSDiagnostics'

# Aliases to make visible when applied to a session
VisibleAliases = 'c*', 'g*', 'i*', 's*'

# Cmdlets to make visible when applied to a session
VisibleCmdlets = 'Get*'

# Functions to make visible when applied to a session
VisibleFunctions = 'Get*'

# Providers to make visible when applied to a session
VisibleProviders = 'FileSystem', 'Function', 'Variable'

# Aliases to be defined when applied to a session
AliasDefinitions = @{
    'Description' = 'Gets help.'
    'Name' = 'hlp'
    'Options' = 'AllScope'
    'Value' = 'Get-Help' }, @{
    'Description' = 'Updates help'
    'Name' = 'Update'
    'Options' = 'ReadOnly'
    'Value' = 'Update-Help' }

# Functions to define when applied to a session
FunctionDefinitions = @{
    'Name' = 'Get-Function'
    'Options' = 'ReadOnly'
    'ScriptBlock' = {Get-Command -CommandType Function} }

# Variables to define when applied to a session
VariableDefinitions = @{
    'Name' = 'WarningPreference'
    'Value' = 'SilentlyContinue' }

# Environment variables to define when applied to a session
EnvironmentVariables = @{
    'TESTSHARE' = '\\Test2\Test' }

# Type files (.ps1xml) to load when applied to a session
TypesToProcess = 'Types1.ps1xml', 'Types2.ps1xml'

# Format files (.ps1xml) to load when applied to a session
FormatsToProcess = 'CustomFormats.ps1xml'

# Assemblies to load when applied to a session
AssembliesToLoad = 'System.Web.Services', 'FSharp.Compiler.CodeDom.dll'

}

Parametry

-AliasDefinitions

Dodaje określone aliasy do sesji korzystających z konfiguracji sesji. Wprowadź tabelę skrótów z następującymi kluczami:

  • Name — nazwa aliasu. Ten klucz jest wymagany.
  • Value — polecenie, które reprezentuje alias. Ten klucz jest wymagany.
  • Opis — ciąg tekstowy opisujący alias. Ten klucz jest opcjonalny.
  • Opcje — opcje aliasu. Ten klucz jest opcjonalny. Wartość domyślna to Brak. Dopuszczalne wartości tego parametru to: None, ReadOnly, Constant, Private lub AllScope.

Na przykład: @{Name='hlp';Value='Get-Help';Description='Gets help';Options='ReadOnly'}

Type:IDictionary[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AssembliesToLoad

Określa zestawy do załadowania do sesji korzystających z konfiguracji sesji.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Author

Określa autora konfiguracji sesji lub pliku konfiguracji. Wartość domyślna to użytkownik bieżący. Wartość tego parametru jest widoczna w pliku konfiguracji sesji, ale nie jest właściwością obiektu konfiguracji sesji.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CompanyName

Określa firmę, która utworzyła konfigurację sesji lub plik konfiguracji. Wartość domyślna to Nieznany. Wartość tego parametru jest widoczna w pliku konfiguracji sesji, ale nie jest właściwością obiektu konfiguracji sesji.

Type:String
Position:Named
Default value:Unknown
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Określa prawa autorskie do pliku konfiguracji sesji. Wartość tego parametru jest widoczna w pliku konfiguracji sesji, ale nie jest właściwością obiektu konfiguracji sesji.

Jeśli pominiesz ten parametr, New-PSSessionConfigurationFile wygeneruje oświadczenie o prawach autorskich przy użyciu wartości parametru Author .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

Określa opis konfiguracji sesji lub pliku konfiguracji sesji. Wartość tego parametru jest widoczna w pliku konfiguracji sesji, ale nie jest właściwością obiektu konfiguracji sesji.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnvironmentVariables

Dodaje zmienne środowiskowe do sesji. Wprowadź tabelę skrótów, w której klucze są nazwami zmiennych środowiskowych, a wartości są wartościami zmiennych środowiskowych.

Na przykład: EnvironmentVariables=@{TestShare='\\Server01\TestShare'}

Type:IDictionary
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ExecutionPolicy

Określa zasady wykonywania sesji korzystających z konfiguracji sesji. W przypadku pominięcia tego parametru wartość klucza ExecutionPolicy w pliku konfiguracji sesji jest ograniczona. Aby uzyskać informacje o zasadach wykonywania w programie PowerShell, zobacz about_Execution_Policies.

Type:ExecutionPolicy
Accepted values:Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FormatsToProcess

Określa pliki formatowania (ps1xml), które są uruchamiane w sesjach korzystających z konfiguracji sesji. Wartość tego parametru musi być pełną lub bezwzględną ścieżką plików formatowania.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Full

Wskazuje, że ta operacja zawiera wszystkie możliwe właściwości konfiguracji w pliku konfiguracji sesji.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FunctionDefinitions

Dodaje określone funkcje do sesji korzystających z konfiguracji sesji. Wprowadź tabelę skrótów z następującymi kluczami:

  • Name — nazwa funkcji. Ten klucz jest wymagany.
  • ScriptBlock — treść funkcji. Wprowadź blok skryptu. Ten klucz jest wymagany.
  • Opcje — opcje funkcji. Ten klucz jest opcjonalny. Wartość domyślna to Brak. Dopuszczalne wartości tego parametru to: None, ReadOnly, Constant, Private lub AllScope.

Na przykład: @{Name='Get-PowerShellProcess';ScriptBlock={Get-Process PowerShell};Options='AllScope'}

Type:IDictionary[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupManagedServiceAccount

Konfiguruje sesje przy użyciu tej konfiguracji sesji do uruchomienia w kontekście określonego konta usługi zarządzanego przez grupę. Maszyna, na której zarejestrowano tę konfigurację sesji, musi mieć uprawnienia do żądania hasła gMSA w celu pomyślnego utworzenia sesji. Tego pola nie można użyć z parametrem RunAsVirtualAccount .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Guid

Określa unikatowy identyfikator pliku konfiguracji sesji. Jeśli ten parametr zostanie pominięty, New-PSSessionConfigurationFile wygeneruje identyfikator GUID dla pliku. Aby utworzyć nowy identyfikator GUID w programie PowerShell, wpisz New-Guid.

Type:Guid
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-LanguageMode

Określa, które elementy języka programu PowerShell są dozwolone w sesjach korzystających z tej konfiguracji sesji. Tego parametru można użyć, aby ograniczyć polecenia, które użytkownicy mogą uruchamiać na komputerze.

Dopuszczalne wartości dla tego parametru to:

  • FullLanguage — dozwolone są wszystkie elementy języka.
  • ConstrainedLanguage — polecenia zawierające skrypty do oceny są niedozwolone. Tryb ConstrainedLanguage ogranicza dostęp użytkowników do typów, obiektów lub metod firmy Microsoft .NET Framework.
  • NoLanguage — użytkownicy mogą uruchamiać polecenia cmdlet i funkcje, ale nie mogą używać żadnych elementów językowych, takich jak bloki skryptów, zmienne lub operatory.
  • RestrictedLanguage — użytkownicy mogą uruchamiać polecenia cmdlet i funkcje, ale nie mogą używać bloków skryptów lub zmiennych, z wyjątkiem następujących dozwolonych zmiennych: $PSCulture, , $PSUICulture$True, $Falsei $Null. Użytkownicy mogą używać tylko podstawowych operatorów porównania (-eq, -gt, -lt). Instrukcje przypisania, odwołania do właściwości i wywołania metod nie są dozwolone.

Wartość domyślna parametru LanguageMode zależy od wartości parametru SessionType .

  • Puste — NoLanguage
  • RestrictedRemoteServer — NoLanguage
  • Ustawienie domyślne — FullLanguage
Type:PSLanguageMode
Accepted values:FullLanguage, RestrictedLanguage, NoLanguage, ConstrainedLanguage
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ModulesToImport

Określa moduły i przystawki, które są automatycznie importowane do sesji korzystających z konfiguracji sesji.

Domyślnie tylko przystawka Microsoft.PowerShell.Core jest importowana do sesji zdalnych, ale jeśli polecenia cmdlet nie zostaną wykluczone, użytkownicy mogą używać Import-Module poleceń cmdlet i Add-PSSnapin do dodawania modułów i przystawki do sesji.

Każdy moduł lub przystawka w wartości tego parametru może być reprezentowany przez ciąg lub jako tabelę skrótów. Ciąg modułu składa się tylko z nazwy modułu lub przystawki. Tabela skrótów modułów może zawierać klucze ModuleName, ModuleVersion i GUID . Wymagany jest tylko klucz ModuleName .

Na przykład następująca wartość składa się z ciągu i tabeli skrótu. Każda kombinacja ciągów i tabel skrótów w dowolnej kolejności jest prawidłowa.

'TroubleshootingPack', @{ModuleName='PSDiagnostics'; ModuleVersion='1.0.0.0';GUID='c61d6278-02a3-4618-ae37-a524d40a7f44'}

Wartość parametru Register-PSSessionConfigurationModulesToImport polecenia cmdlet ma pierwszeństwo przed wartością klucza ModulesToImport w pliku konfiguracji sesji.

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MountUserDrive

Konfiguruje sesje korzystające z tej konfiguracji sesji, aby uwidocznić usługę User: PSDrive. Dyski użytkowników są unikatowe dla każdego użytkownika łączącego i umożliwiają użytkownikom kopiowanie danych do i z punktów końcowych programu PowerShell, nawet jeśli dostawca systemu plików nie jest uwidoczniony. Katalogi root dysku użytkownika są tworzone w obszarze $env:LOCALAPPDATA\Microsoft\PowerShell\DriveRoots\. Dla każdego użytkownika nawiązującego połączenie z punktem końcowym tworzony jest folder o nazwie $env:USERDOMAIN\$env:USERNAME. W przypadku komputerów w grupach roboczych wartość $env:USERDOMAIN to nazwa hosta.

Zawartość dysku użytkownika jest utrwalana między sesjami użytkownika i nie są automatycznie usuwane. Domyślnie użytkownicy mogą przechowywać tylko 50 MB danych na dysku użytkownika. Można to dostosować za pomocą parametru UserDriveMaximumSize .

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Określa ścieżkę i nazwę pliku konfiguracji sesji. Plik musi mieć .pssc rozszerzenie nazwy pliku.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-PowerShellVersion

Określa wersję aparatu programu PowerShell w sesjach korzystających z konfiguracji sesji. Dopuszczalne wartości tego parametru to: 2.0 i 3.0. Jeśli pominięto ten parametr, klucz PowerShellVersion jest komentowany i najnowsza wersja programu PowerShell jest uruchamiana w sesji.

Wartość parametru Register-PSSessionConfigurationPSVersion polecenia cmdlet ma pierwszeństwo przed wartością klucza PowerShellVersion w pliku konfiguracji sesji.

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RequiredGroups

Określa reguły dostępu warunkowego dla użytkowników łączących się z sesjami korzystającymi z tej konfiguracji sesji.

Wprowadź tabelę skrótu, aby utworzyć listę reguł przy użyciu tylko 1 klucza na wartość skrótu, "And" lub "Or", i ustaw wartość na tablicę nazw grup zabezpieczeń lub dodatkowych tabel skrótów.

Przykład wymagający połączenia użytkowników z jedną grupą: @{ And = 'MyRequiredGroup' }

Przykład wymagający od użytkowników, aby należeli do grupy A lub grup B i C w celu uzyskania dostępu do punktu końcowego: @{ Or = 'GroupA', @{ And = 'GroupB', 'GroupC' } }

Type:IDictionary
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RoleDefinitions

Określa mapowanie między grupami zabezpieczeń (lub użytkownikami) i możliwościami roli. Użytkownicy otrzymają dostęp do wszystkich funkcji ról, które mają zastosowanie do członkostwa w grupie w momencie utworzenia sesji.

Wprowadź tabelę skrótu, w której klucze są nazwą grupy zabezpieczeń, a wartości to tabele skrótów, które zawierają listę funkcji roli, które powinny zostać udostępnione grupie zabezpieczeń.

Na przykład: @{'Contoso\Level 2 Helpdesk Users' = @{ RoleCapabilities = 'Maintenance', 'ADHelpDesk' }}

Type:IDictionary
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsVirtualAccount

Konfiguruje sesje przy użyciu tej konfiguracji sesji do uruchomienia jako konto administratora komputera (wirtualnego). Tego pola nie można użyć z parametrem GroupManagedServiceAccount .

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RunAsVirtualAccountGroups

Określa grupy zabezpieczeń, które mają być skojarzone z kontem wirtualnym, gdy sesja korzystająca z konfiguracji sesji jest uruchamiana jako konto wirtualne. W przypadku pominięcia konto wirtualne należy do administratorów domeny na kontrolerach domeny i administratorach na wszystkich innych komputerach.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SchemaVersion

Określa wersję schematu pliku konfiguracji sesji. Wartość domyślna to "1.0.0.0".

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ScriptsToProcess

Dodaje określone skrypty do sesji korzystających z konfiguracji sesji. Wprowadź ścieżkę i nazwy plików skryptów. Wartość tego parametru musi być pełną lub bezwzględną ścieżką nazw plików skryptu.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SessionType

Określa typ sesji, która jest tworzona przy użyciu konfiguracji sesji. Wartość domyślna to Domyślna. Dopuszczalne wartości dla tego parametru to:

  • Puste — domyślnie do sesji nie są dodawane żadne moduły. Użyj parametrów tego polecenia cmdlet, aby dodać moduły, funkcje, skrypty i inne funkcje do sesji. Ta opcja jest przeznaczona do tworzenia sesji niestandardowych przez dodanie wybranych poleceń. Jeśli nie dodasz poleceń do pustej sesji, sesja jest ograniczona do wyrażeń i może nie być do użycia.
  • Default — dodaje moduł Microsoft.PowerShell.Core do sesji. Ten moduł zawiera Import-Module polecenie cmdlet, za pomocą którego użytkownicy mogą importować inne moduły, chyba że jawnie zabronisz tego polecenia cmdlet.
  • RestrictedRemoteServer. Zawiera tylko następujące funkcje serwera proxy: Exit-PSSession, , Get-FormatDataGet-Command, Get-Help, Measure-Object, Out-Defaulti Select-Object. Użyj parametrów tego polecenia cmdlet, aby dodać moduły, funkcje, skrypty i inne funkcje do sesji.
Type:SessionType
Accepted values:Empty, RestrictedRemoteServer, Default
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TranscriptDirectory

Określa katalog do umieszczania transkrypcji sesji dla sesji przy użyciu tej konfiguracji sesji.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TypesToProcess

Dodaje określone .ps1xml pliki typu do sesji korzystających z konfiguracji sesji. Wprowadź nazwy plików typu. Wartość tego parametru musi być pełną lub bezwzględną ścieżką do typów nazw plików.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UserDriveMaximumSize

Określa maksymalny rozmiar dysków użytkowników uwidocznionych w sesjach korzystających z tej konfiguracji sesji. Po pominięciu domyślny rozmiar każdego User: katalogu głównego dysku wynosi 50 MB.

Ten parametr powinien być używany z usługą MountUserDrive.

Type:Int64
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VariableDefinitions

Dodaje określone zmienne do sesji korzystających z konfiguracji sesji. Wprowadź tabelę skrótów z następującymi kluczami:

  • Name — nazwa zmiennej. Ten klucz jest wymagany.
  • Value — wartość zmiennej. Ten klucz jest wymagany.
  • Opcje — opcje zmiennych. Ten klucz jest opcjonalny. Wartość domyślna to Brak. Dopuszczalne wartości tego parametru to: None, ReadOnly, Constant, Private lub AllScope.

Na przykład: @{Name='WarningPreference';Value='SilentlyContinue';Options='AllScope'}

Type:Object
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VisibleAliases

Ogranicza aliasy w sesji do tych określonych w wartości tego parametru oraz wszystkich aliasów zdefiniowanych w aliasie parametru AliasDefinition . Obsługiwane są symbole wieloznaczne. Domyślnie wszystkie aliasy zdefiniowane przez aparat programu PowerShell i wszystkie aliasy eksportowane przez moduły są widoczne w sesji.

Na przykład: VisibleAliases='gcm', 'gp'

Gdy dowolny parametr Visible jest uwzględniony w pliku konfiguracji sesji, program PowerShell usuwa Import-Module polecenie cmdlet i jego alias ipmo z sesji.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-VisibleCmdlets

Ogranicza polecenia cmdlet w sesji do tych określonych w wartości tego parametru. Obsługiwane są symbole wieloznaczne i kwalifikowane nazwy modułu.

Domyślnie wszystkie polecenia cmdlet modułów w eksporcie sesji są widoczne w sesji. Użyj parametrów SessionType i ModulesToImport , aby określić, które moduły i przystawki są importowane do sesji. Jeśli polecenie cmdlet nie zawiera żadnych modułów w moduleToImport , odpowiedni moduł podejmie próbę automatycznego załadowania.

Gdy dowolny parametr Visible jest uwzględniony w pliku konfiguracji sesji, program PowerShell usuwa Import-Module polecenie cmdlet i jego alias ipmo z sesji.

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VisibleExternalCommands

Ogranicza zewnętrzne pliki binarne, skrypty i polecenia, które można wykonać w sesji do tych określonych w wartości tego parametru. Obsługiwane są symbole wieloznaczne.

Domyślnie w sesji nie są widoczne żadne polecenia zewnętrzne.

Jeśli dowolny parametr Visible jest uwzględniony w pliku konfiguracji sesji, program PowerShell usuwa Import-Module polecenie cmdlet i jego alias ipmo z sesji.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-VisibleFunctions

Ogranicza funkcje w sesji do tych określonych w wartości tego parametru oraz wszystkich funkcji zdefiniowanych w parametrze FunctionDefinition . Obsługiwane są symbole wieloznaczne.

Domyślnie wszystkie funkcje modułów w eksporcie sesji są widoczne w sesji. Użyj parametrów SessionType i ModulesToImport , aby określić, które moduły i przystawki są importowane do sesji.

Gdy dowolny parametr Visible jest uwzględniony w pliku konfiguracji sesji, program PowerShell usuwa Import-Module polecenie cmdlet i jego alias ipmo z sesji.

Type:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-VisibleProviders

Ogranicza dostawców programu PowerShell w sesji do tych określonych w wartości tego parametru. Obsługiwane są symbole wieloznaczne.

Domyślnie wszyscy dostawcy, którzy moduły w eksporcie sesji są widoczni w sesji. Użyj parametrów SessionType i ModulesToImport , aby określić, które moduły są importowane do sesji.

Jeśli dowolny parametr Visible jest uwzględniony w pliku konfiguracji sesji, program PowerShell usuwa Import-Module polecenie cmdlet i jego ipmo alias z sesji.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Dane wejściowe

None

Nie można przekazać potoku żadnych obiektów do tego polecenia cmdlet.

Dane wyjściowe

None

To polecenie cmdlet nie generuje żadnych danych wyjściowych.

Uwagi

To polecenie cmdlet jest dostępne tylko na platformach systemu Windows.

  • Parametry, takie jak VisibleCmdlets i VisibleProviders, nie importują elementów do sesji. Zamiast tego wybierają spośród elementów zaimportowanych do sesji. Jeśli na przykład wartość parametru VisibleProviders jest dostawcą certyfikatu, ale parametr ModulesToImport nie określa modułu Microsoft.PowerShell.Security zawierającego dostawcę certyfikatów, dostawca certyfikatów nie jest widoczny w sesji.

  • New-PSSessionConfigurationFile Tworzy plik konfiguracji sesji, który ma rozszerzenie nazwy pliku pssc w ścieżce określonej w parametrze Ścieżka . Gdy używasz pliku konfiguracji sesji do utworzenia konfiguracji sesji, Register-PSSessionConfiguration polecenie cmdlet kopiuje plik konfiguracji i zapisuje aktywną kopię pliku w podkatalogu $PSHOMESessionConfig katalogu.

    Właściwość ConfigFilePath konfiguracji sesji zawiera w pełni kwalifikowaną ścieżkę pliku konfiguracji aktywnej sesji. Aktywny plik konfiguracji można zmodyfikować w katalogu w $PSHOME dowolnym momencie przy użyciu dowolnego edytora tekstów. Wprowadzone zmiany wpływają na wszystkie nowe sesje korzystające z konfiguracji sesji, ale nie istniejące sesje.

    Przed użyciem edytowanego pliku konfiguracji sesji użyj Test-PSSessionConfigurationFile polecenia cmdlet , aby sprawdzić, czy wpisy pliku konfiguracji są prawidłowe.