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ą:
- Utwórz nowy plik konfiguracji.
- Zarejestruj konfigurację.
- Utwórz nową sesję korzystającą z konfiguracji.
- 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ą:
- Utwórz nowy plik konfiguracji.
- Zarejestruj konfigurację.
- Utwórz nową sesję korzystającą z konfiguracji.
- 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ę:
- Pobierz ścieżkę pliku konfiguracji dla sesji ITConfig.
- 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'})
. - 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'}
.
Typ: | IDictionary[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-AssembliesToLoad
Określa zestawy, które mają być ładowane do sesji korzystających z konfiguracji sesji.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | String |
Position: | Named |
Domyślna wartość: | Unknown |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Copyright
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 .
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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'}
.
Typ: | IDictionary |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | ExecutionPolicy |
Dopuszczalne wartości: | Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Full
Wskazuje, że ta operacja zawiera wszystkie możliwe właściwości konfiguracji w pliku konfiguracji sesji.
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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'}
.
Typ: | IDictionary[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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 .
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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
.
Typ: | Guid |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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
,$False
i$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
Typ: | PSLanguageMode |
Dopuszczalne wartości: | FullLanguage, RestrictedLanguage, NoLanguage, ConstrainedLanguage |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | Object[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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 .
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Path
Określa ścieżkę i nazwę pliku konfiguracji sesji. Plik musi mieć .pssc
rozszerzenie nazwy pliku.
Typ: | String |
Position: | 0 |
Domyślna wartość: | None |
Wymagane: | True |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | Version |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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' } }
Typ: | IDictionary |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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' }}
.
Typ: | IDictionary |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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 .
Typ: | SwitchParameter |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-SchemaVersion
Określa wersję schematu pliku konfiguracji sesji. Wartość domyślna to "1.0.0.0".
Typ: | Version |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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-Help
Get-FormatData
,Measure-Object
,Out-Default
, iSelect-Object
. Użyj parametrów tego polecenia cmdlet, aby dodać moduły, funkcje, skrypty i inne funkcje do sesji.
Typ: | SessionType |
Dopuszczalne wartości: | Empty, RestrictedRemoteServer, Default |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-TranscriptDirectory
Określa katalog do umieszczania transkrypcji sesji dla sesji przy użyciu tej konfiguracji sesji.
Typ: | String |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | Int64 |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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'}
.
Typ: | Object |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | Object[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-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.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | Object[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | 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.