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

Polecenie New-PSSessionConfigurationFile cmdlet tworzy plik ustawień, które definiują konfigurację sesji i środowisko sesji utworzonych przy użyciu konfiguracji sesji. Aby użyć pliku w konfiguracji sesji, użyj parametru Register-PSSessionConfiguration Path poleceń cmdlet lub Set-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 New-PSSessionConfigurationFile są opcjonalne, z wyjątkiem parametru Path . W przypadku pominięcia parametru odpowiedni klucz w pliku konfiguracji sesji jest komentowany, z wyjątkiem sytuacji, w których został zanotowany w opisie parametru.

Konfiguracja sesji, znana również jako punkt końcowy, jest kolekcją ustawień na komputerze lokalnym, które definiują środowisko sesji programu PowerShell (PSSessions), które łączą się z komputerem. Wszystkie 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 zdefiniowanie 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. Utwórz nowy plik konfiguracji.
  2. Zarejestruj konfigurację.
  3. Utwórz nową sesję korzystającą 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 błąd kończy się niepowodzeniem Invoke-Command , ponieważ właściwość LanguageMode jest ustawiona na Wartość 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. Utwórz nowy plik konfiguracji.
  2. Zarejestruj konfigurację.
  3. Utwórz nową sesję korzystającą 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 Invoke-Command jest spowodowane tym, że właściwość LanguageMode jest ustawiona 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 ma wpływ 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 chcemy dodać nowy alias polecenia Select-String 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 Notatnik.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 $True wartość , jeśli w pliku nie zostaną wykryte żadne błędy.

Przykład 5. Tworzenie przykładowego pliku konfiguracji

W tym przykładzie pokazano New-PSSessionConfigurationFile polecenie, które używa wszystkich parametrów polecenia cmdlet. Uwzględniany jest prawidłowy format danych wejściowych 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, które mają być ładowane 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. Jeśli ten parametr zostanie pominięty, 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 uruchamiania 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 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 mogą być uruchamiane przez konkretnych użytkowników na komputerze.

Dopuszczalne wartości tego parametru to:

  • FullLanguage — dozwolone są wszystkie elementy języka.
  • ConstrainedLanguage — polecenia zawierające skrypty do oceny nie są dozwolone. Tryb ConstrainedLanguage ogranicza dostęp użytkowników do typów, obiektów lub metod programu Microsoft .NET Framework.
  • NoLanguage — użytkownicy mogą uruchamiać polecenia cmdlet i funkcje, ale nie mogą używać żadnych elementów języka, 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 .

  • Empty — 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 przystawek do sesji.

Każdy moduł lub przystawka w wartości tego parametru może być reprezentowana 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ótów. Dowolna 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-PSSessionConfiguration ModulesToImport 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 w celu uwidocznienia usługi User: PSDrive. Dyski użytkowników są unikatowe dla każdego użytkownika łączącego się 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 głównych dysków użytkownika są tworzone w obszarze $env:LOCALAPPDATA\Microsoft\Windows\PowerShell\DriveRoots\. Dla każdego użytkownika nawiązującego połączenie z punktem końcowym zostanie utworzony 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 do 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 ten parametr zostanie pominięty, klucz PowerShellVersion zostanie zastąpiony jako komentarz, a najnowsza wersja programu PowerShell zostanie uruchomiona w sesji.

Wartość parametru Register-PSSessionConfiguration PSVersion 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ótów, aby utworzyć listę reguł przy użyciu tylko 1 klucza na tabelę skrótów, "And" lub "Or", a następnie 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, który wymaga od użytkowników, aby należeli do grupy A lub grupy B i C, aby uzyskać dostęp 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 ról. 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ótów, w której klucze są nazwą grupy zabezpieczeń, a wartości to tabele skrótów zawierające listę funkcji ról, 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, które mają być uruchamiane jako konto administratora komputera (wirtualnego). Tego pola nie można używać 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 Administracja domeny na kontrolerach domeny i Administracja istratorach 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óry jest tworzony przy użyciu konfiguracji sesji. Wartość domyślna to Wartość domyślna. Dopuszczalne wartości 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.
  • Ustawienie domyślne — dodaje moduł Microsoft.PowerShell.Core do sesji. Ten moduł zawiera Import-Module polecenie cmdlet, którego użytkownicy mogą używać do importowania innych modułów, chyba że jawnie zabronisz tego polecenia cmdlet.
  • RestrictedRemoteServer. Obejmuje tylko następujące funkcje serwera proxy: Exit-PSSession, , Get-Command, Get-HelpGet-FormatData, Measure-Object, Out-Default, i 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 pliki określonego .ps1xml 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 to 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.
  • Wartość — wartość zmiennej. Ten klucz jest wymagany.

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

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 wszelkie aliasy zdefiniowane w aliasie 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'.

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

-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.

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: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 widoczny parametr 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.

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: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 potokować obiektów do tego polecenia cmdlet.

Dane wyjściowe

None

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

Uwagi

Program Windows PowerShell zawiera następujące aliasy dla programu New-PSSessionConfigurationFile:

  • npssc

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ą certyfikatów, ale parametr ModulesToImport nie określa modułu Microsoft.PowerShell.Security , który zawiera 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 $PSHOME SessionConfig 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 dotyczą wszystkich nowych sesji korzystających z konfiguracji sesji, ale nie istniejących sesji.

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