共用方式為


New-PSSessionConfigurationFile

建立定義工作階段設定的檔案。

Syntax

New-PSSessionConfigurationFile
   [-Path] <String>
   [-SchemaVersion <Version>]
   [-Guid <Guid>]
   [-Author <String>]
   [-CompanyName <String>]
   [-Copyright <String>]
   [-Description <String>]
   [-PowerShellVersion <Version>]
   [-SessionType <SessionType>]
   [-ModulesToImport <Object[]>]
   [-AssembliesToLoad <String[]>]
   [-VisibleAliases <String[]>]
   [-VisibleCmdlets <String[]>]
   [-VisibleFunctions <String[]>]
   [-VisibleProviders <String[]>]
   [-AliasDefinitions <Hashtable[]>]
   [-FunctionDefinitions <Hashtable[]>]
   [-VariableDefinitions <Object>]
   [-EnvironmentVariables <Object>]
   [-TypesToProcess <String[]>]
   [-FormatsToProcess <String[]>]
   [-LanguageMode <PSLanguageMode>]
   [-ExecutionPolicy <ExecutionPolicy>]
   [-ScriptsToProcess <String[]>]
   [<CommonParameters>]

Description

Cmdlet New-PSSessionConfigurationFile 會建立一個配置檔案,該檔案會定義會話組態,以及使用會話組態所建立的會話環境。 若要在會話組態中使用檔案,請使用 或 Set-PSSessionConfiguration Cmdlet 的 Register-PSSessionConfigurationPath 參數。

建立 New-PSSessionConfigurationFile 的會話組態檔是人類可讀取的文本檔,其中包含會話組態屬性和值的哈希表。 檔案具有 .pssc 擴展名。

的所有參數 New-PSSessionConfigurationFile 都是選擇性的,但 Path 參數除外。 如果您省略某個參數,除了在參數描述中註明之外,將會在工作階段設定檔中相對應的索引鍵上加上註解使它無效。

會話組態也稱為端點,是本機計算機上的設定集合,可定義連線到計算機的 PSSessions (PSSessions) 環境。 所有 PSSession 都會 使用會話設定。 若要指定特定的會話設定,請使用建立會話之 Cmdlet 的 New-PSSessionConfigurationName 參數,例如 Cmdlet。

session configuration file 不需要複雜的指令碼或程式碼組件,就能輕鬆定義工作階段設定。 檔案中的設定會與選擇性啟動腳本和會話組態中的任何元件搭配使用。

如需會話組態和會話配置檔的詳細資訊,請參閱 about_Session_Configurationsabout_Session_Configuration_Files

此 Cmdlet 是在 PowerShell 3.0 中引進。

範例

範例 1:建立和使用 NoLanguage 會話

此範例示範如何建立和使用無語言會話的效果。

步驟包括:

  1. Create 新的組態檔。
  2. 註冊組態。
  3. Create 使用組態的新會話。
  4. 在該新會話中執行命令。

若要執行此範例中的命令,請使用 [以系統管理員身分執行] 選項啟動 PowerShell。 執行 Cmdlet 需要 Register-PSSessionConfiguration 這個選項。

New-PSSessionConfigurationFile -Path .\NoLanguage.pssc -LanguageMode NoLanguage
Register-PSSessionConfiguration -Path .\NoLanguage.pssc -Name NoLanguage -Force
$NoLanguage = New-PSSession -ComputerName Srv01 -ConfigurationName NoLanguage
Invoke-Command -Session $NoLanguage -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

在此範例中, Invoke-Command 失敗的原因是 LanguageMode 設定為 NoLanguage

範例 2:建立和使用 RestrictedLanguage 會話

此範例示範如何建立和使用無語言會話的效果。

步驟包括:

  1. Create 新的組態檔。
  2. 註冊組態。
  3. Create 使用組態的新會話。
  4. 在該新會話中執行命令。

若要執行此範例中的命令,請使用 [以系統管理員身分執行] 選項啟動 PowerShell。 執行 Cmdlet 需要 Register-PSSessionConfiguration 這個選項。

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

Before

在此範例中,會成功, Invoke-Command 因為 LanguageMode 設定為 RestrictedLanguage

範例 3:變更會話組態檔

此範例示範如何變更現有會話 「ITTasks」 中使用的會話組態檔。 先前,這些會話只有核心模組和內部 ITTasks 模組。 系統管理員想要將 PSScheduledJob 模組新增至使用 ITTasks 會話設定所建立的會話。

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

用來 New-PSSessionConfigurationFile 建立匯入所需模組之會話組態檔的 Cmdlet。 Cmdlet 會將 Set-PSSessionConfiguration 目前的組態檔取代為新的組態檔。 這個新的組態只會影響變更之後建立的新會話。 現有的“ITTasks” 會話不會受到影響。

範例 4:編輯工作階段設定檔

此範例說明如何透過編輯設定檔的使用中工作階段設定複本,來變更工作階段設定。 若要修改組態檔的會話組態複本,您必須擁有檔案的完整控制權。 這可能要求您變更檔案的許可權。

在此案例中,我們想要編輯使用中的 Select-String 組態檔,為 Cmdlet 新增別名。

下列範例程式代碼會執行下列步驟來進行這項變更:

  1. 取得 ITConfig 工作階段的組態檔路徑。
  2. 使用者會使用 Notepad.exe 來編輯組態檔,以變更 AliasDefinitions 值,如下所示: AliasDefinitions = @(@{Name='slst';Value='Select-String'})
  3. 測試更新的組態檔。
$ITConfig = Get-PSSessionConfiguration -Name ITConfig
notepad.exe $ITConfig.ConfigFilePath
Test-PSSessionConfigurationFile -Path $ITConfig.ConfigFilePath

True

使用 Verbose 參數搭配 Test-PSSessionConfigurationFile 來顯示偵測到的任何錯誤。 如果檔案中未偵測到任何錯誤,Cmdlet 會傳回 $True

範例 5:Create 範例組態檔

此範例顯示 New-PSSessionConfigurationFile 使用所有 Cmdlet 參數的命令。 它也會顯示每個參數的正確輸入格式。

輸出中會顯示產生的 SampleFile.pssc。

$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'
}
New-PSSessionConfigurationFile @configSettings
Get-Content SampleFile.pssc

@{

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

# ID used to uniquely identify this session configuration
GUID = 'f7039ffa-7e54-4382-b358-a393c75c30d3'

# Specifies the execution policy for this session configuration
ExecutionPolicy = 'AllSigned'

# Specifies the language mode for this session configuration
LanguageMode = 'FullLanguage'

# Initial state of this session configuration
SessionType = 'Default'

# Environment variables defined in this session configuration
EnvironmentVariables = @{
    TESTSHARE='\\Test2\Test'
}

# Author of this session configuration
Author = 'User01'

# Company associated with this session configuration
CompanyName = 'Fabrikam Corporation'

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

# Description of the functionality provided by this session configuration
Description = 'This is a sample file.'

# Version of the PowerShell engine used by this session configuration
PowerShellVersion = '3.0'

# Modules that will be imported
ModulesToImport = @{
    ModuleVersion='1.0.0.0'
    ModuleName='PSScheduledJob'
    GUID='50cdb55f-5ab7-489f-9e94-4ec21ff51e59'
}, 'PSDiagnostics'

# Assemblies that will be loaded in this session configuration
AssembliesToLoad = 'System.Web.Services', 'FSharp.Compiler.CodeDom.dll'

# Aliases visible in this session configuration
VisibleAliases = 'c*', 'g*', 'i*', 's*'

# Cmdlets visible in this session configuration
VisibleCmdlets = 'Get*'

# Functions visible in this session configuration
VisibleFunctions = 'Get*'

# Providers visible in this session configuration
VisibleProviders = 'FileSystem', 'Function', 'Variable'

# Aliases defined in this session configuration
AliasDefinitions = @(
@{
    Description='Gets help.'
    Name='hlp'
    Options='AllScope'
    Value='Get-Help'
},
@{
    Description='Updates help'
    Name='Update'
    Options='ReadOnly'
    Value='Update-Help'
}
)

# Functions defined in this session configuration
FunctionDefinitions = @(
@{
    Name='Get-Function'
    Options='ReadOnly'
    ScriptBlock={Get-Command -CommandType Function}
}
)

# Variables defined in this session configuration
VariableDefinitions = @(
@{
    Value='SilentlyContinue'
    Name='WarningPreference'

# Type files (.ps1xml) that will be loaded in this session configuration
TypesToProcess = 'C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\Types1.ps1xml', 'C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\Types2.ps1xml'

# Format files (.ps1xml) that will be loaded in this session configuration
FormatsToProcess = 'C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\CustomFormats.ps1xml'

# Specifies the scripts to execute after the session is configured
ScriptsToProcess = 'C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\Get-Inputs.ps1'
}

此範例顯示使用所有 Cmdlet 參數的 New-PSSessionConfigurationFile 命令。 它也會顯示每個參數的正確輸入格式。

輸出中會顯示產生的 SampleFile.pssc。

參數

-AliasDefinitions

將指定的別名新增至使用工作階段設定的工作階段。 輸入包含下列索引鍵的雜湊表:

  • 名稱 - 別名的名稱。 此為必要索引鍵。
  • 值 - 別名所代表的命令。 此為必要索引鍵。
  • 描述 - 描述別名的文字字串。 此為選擇性索引鍵。
  • 選項 - 別名選項。 此為選擇性索引鍵。 預設值為 None。 此參數可接受的值為:None、ReadOnly、Constant、Private 或 AllScope。

例如:@{Name='hlp';Value='Get-Help';Description='Gets help';Options='ReadOnly'}

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

-AssembliesToLoad

指定要載入至使用工作階段設定之工作階段的組件。

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

-Author

指定工作階段組態或組態檔的作者。 預設為目前使用者。 此參數的值會出現在工作階段設定中,但它不是工作階段物件的屬性。

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

-CompanyName

指定建立會話組態或組態檔的公司。 預設值為 [未知]。 此參數的值會出現在工作階段設定中,但它不是工作階段物件的屬性。

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

指定工作階段組態檔的著作權。 此參數的值會出現在工作階段設定中,但它不是工作階段物件的屬性。

如果您省略此參數, New-PSSessionConfigurationFile 請使用 Author 參數的值來產生著作權聲明。

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

-Description

指定工作階段組態或工作階段組態檔的描述。 此參數的值會出現在工作階段設定中,但它不是工作階段物件的屬性。

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

-EnvironmentVariables

新增環境變數至工作階段。 輸入雜湊表,其中索引鍵為環境變數名稱,值為環境變數值。

例如:EnvironmentVariables=@{TestShare='\\Server01\TestShare'}

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

-ExecutionPolicy

指定使用工作階段設定之工作階段的執行原則。 如果您省略此參數,會話組態檔中的 ExecutionPolicy 索引鍵值會 受到限制。 如需 PowerShell 中執行原則的相關信息,請參閱 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

指定在使用工作階段設定的工作階段中執行的格式化檔案 (.ps1xml)。 此參數的值必須是格式化檔案的完整或絕對路徑。

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

-FunctionDefinitions

將指定函式新增至使用工作階段設定的工作階段。 輸入包含下列索引鍵的雜湊表:

  • 名稱 - 函式的名稱。 此為必要索引鍵。
  • ScriptBlock - 函式主體。 輸入指令碼區塊。 此為必要索引鍵。
  • 選項 - 函式選項。 此為選擇性索引鍵。 預設值為 None。 此參數可接受的值為:None、ReadOnly、Constant、Private 或 AllScope。

例如:@{Name='Get-PowerShellProcess';ScriptBlock={Get-Process PowerShell};Options='AllScope'}

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

-Guid

指定工作階段設定檔的唯一識別碼。 如果您省略此參數, New-PSSessionConfigurationFile 會產生檔案的 GUID。 若要在 PowerShell 中建立新的 GUID,請輸入 New-Guid

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

-LanguageMode

決定使用此會話組態的會話中允許PowerShell語言的專案。 您可以使用此參數來限制特定使用者可在電腦上執行的命令。

此參數可接受的值為:

  • FullLanguage - 允許所有語言專案。
  • ConstrainedLanguage - 不允許包含要評估之腳本的命令。 ConstrainedLanguage 模式會限制使用者存取 Microsoft .NET Framework 類型、物件或方法。
  • NoLanguage - 使用者可以執行 Cmdlet 和函式,但不允許使用任何語言元素,例如腳本區塊、變數或運算符。
  • RestrictedLanguage - 使用者可以執行 Cmdlet 和函式,但不允許使用腳本區塊或變數,但下列允許的變數除外:$PSCulture、、、$PSUICulture$True$False$Null。 使用者只能使用基本比較運算符, (-eq-gt-lt) 。 不允許指派陳述式、屬性參照及方法呼叫。

LanguageMode 參數的預設值需視 SessionType 參數的值而定。

  • 空白 - NoLanguage
  • RestrictedRemoteServer - NoLanguage
  • 默認值 - 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

指定要自動匯入使用工作階段設定之工作階段的模組和嵌入式管理單元。

根據預設,只有 Microsoft.PowerShell.Core 嵌入式管理單元會匯入遠端會話,但除非排除 Cmdlet,否則使用者可以使用 Import-ModuleAdd-PSSnapin Cmdlet 將模組和嵌入式管理單元新增至會話。

此參數值中的每個模組或嵌入式管理單元都可以用字串或雜湊表代表。 模組字串只包含模組或嵌入式管理單元的名稱。 模組哈希表可以包含 ModuleNameModuleVersionGUID 金鑰。 只有 ModuleName 索引鍵是必要的。

例如,以下的值包含字串和雜湊表。 字串或雜湊表以任何順序組成的任何組合都是有效的。

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

Cmdlet 的 ModulesToImport 參數 Register-PSSessionConfiguration 值優先於工作階段組態檔中的 ModulesToImport 索引鍵值。

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

-Path

指定工作階段組態檔的路徑和檔名。 檔案必須具有 .pssc 擴展名。

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

-PowerShellVersion

指定使用會話組態之會話中的PowerShell引擎版本。 此參數可接受的值為:2.0 和 3.0。 如果您省略此參數, PowerShellVersion 金鑰會批注化,且最新版本的 PowerShell 會在會話中執行。

Cmdlet 的 PSVersion 參數 Register-PSSessionConfiguration 值優先於會話組態檔中 PowerShellVersion 機碼的值。

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

-SchemaVersion

指定工作階段設定檔架構的版本。 預設值為 "1.0.0.0"。

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

-ScriptsToProcess

將指定指令碼新增至使用工作階段設定的工作階段。 輸入指令碼的路徑和檔案名稱。 此參數的值必須是腳本檔名的完整或絕對路徑。

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

-SessionType

指定使用工作階段設定建立之工作階段的類型。 預設值為 Default。 此參數可接受的值為:

  • 空白 - 預設不會將模組新增至會話。 使用此 Cmdlet 的參數將模組、函式、指令碼及其他功能新增至工作階段。 此選項的設計目的是要藉由新增選取的命令來建立自定義會話。 如果您沒有新增命令至空的工作階段,工作階段會限制只能使用運算式,因此可能無法使用。
  • 默認值 - 將 Microsoft.PowerShell.Core 模組新增至會話。 本課程模組包含用戶可用來匯入其他模組的 Import-Module Cmdlet,除非您明確禁止此 Cmdlet。
  • RestrictedRemoteServer。 只包含下列 Proxy 函式:Exit-PSSessionGet-CommandGet-FormatData、、Get-HelpOut-DefaultMeasure-Object、 和 Select-Object。 使用此 Cmdlet 的參數將模組、函式、指令碼及其他功能新增至工作階段。
Type:SessionType
Accepted values:Empty, RestrictedRemoteServer, Default
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TypesToProcess

將指定的 .ps1xml 類型檔案新增至使用工作階段組態的工作階段。 輸入類型檔名。 此參數的值必須是類型檔名的完整或絕對路徑。

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

-VariableDefinitions

將指定變數新增至使用工作階段設定的工作階段。 輸入包含下列索引鍵的雜湊表:

  • 名稱 -變數的名稱。 此為必要索引鍵。
  • 值 - 變數值。 此為必要索引鍵。
  • 選項 - 變數選項。 此為選擇性索引鍵。 預設值為 None。 此參數可接受的值為:None、ReadOnly、Constant、Private 或 AllScope。

例如:@{Name='WarningPreference';Value='SilentlyContinue';Options='AllScope'}

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

-VisibleAliases

將工作階段中的別名限制為此參數的值中指定的別名,以及您在 AliasDefinition 參數中定義的任何別名。 支援使用萬用字元。 根據預設,PowerShell 引擎所定義的所有別名,以及模組匯出的所有別名都會顯示在會話中。

例如:VisibleAliases='gcm', 'gp'

當會話組態檔中包含任何 Visible 參數時,PowerShell 會從會話中移除 Import-Module Cmdlet 及其 ipmo 別名。

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

-VisibleCmdlets

將工作階段中的 Cmdlet 限制為此參數的值中指定的 Cmdlet。 支援通配符和模組限定名稱。

根據預設,在工作階段中可以看見工作階段中的模組匯出的所有 Cmdlet。 使用 SessionTypeModulesToImport 參數決定要在工作階段中匯入哪些模組和嵌入式管理單元。 如果 ModulesToImport 中沒有模組公開 Cmdlet,則會嘗試自動載入適當的模組。

當會話組態檔中包含任何 Visible 參數時,PowerShell 會 Import-Module 從會話中移除 Cmdlet 及其 ipmo 別名。

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

-VisibleFunctions

將工作階段中的函式限制為此參數的值中指定的函式,以及您在 FunctionDefinition 參數中定義的任何函式。 支援使用萬用字元。

根據預設,在工作階段中可以看見工作階段中的模組匯出的所有函式。 使用 SessionTypeModulesToImport 參數決定要在工作階段中匯入哪些模組和嵌入式管理單元。

當會話組態檔中包含任何 Visible 參數時,PowerShell 會 Import-Module 從會話中移除 Cmdlet 及其 ipmo 別名。

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

-VisibleProviders

將會話中的PowerShell提供者限制為此參數值中指定的提供者。 支援使用萬用字元。

根據預設,在工作階段中可以看見工作階段中的模組匯出的所有提供者。 使用 SessionTypeModulesToImport 參數來判斷哪些模組會匯入會話。

當會話組態檔中包含任何 Visible 參數時,PowerShell 會 Import-Module 從會話中移除 Cmdlet 及其 ipmo 別名。

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

輸入

None

您無法使用管線將任何物件傳送至此 Cmdlet。

輸出

None

此 Cmdlet 不會產生任何輸出。

備註

  • VisibleCmdlet 和 VisibleProviders參數不會將專案匯入會話。 而是會從匯入工作階段的項目中選取。 例如,如果 VisibleProviders 參數的值是憑證提供者,但 ModulesToImport 參數未指定包含憑證提供者的 Microsoft.PowerShell.Security 模組,則會話中看不到憑證提供者。

  • New-PSSessionConfigurationFile 會在您在 Path 參數中指定的路徑中,建立擴展名為 .pssc 的工作階段組態檔。 當您使用會話組態檔建立會話組態時,Register-PSSessionConfigurationCmdlet 會複製組態檔,並將檔案的使用中複本儲存在目錄的 $PSHOMESessionConfig 子目錄中。

    會話組態的 ConfigFilePath 屬性包含使用中工作階段配置檔的完整路徑。 您可以隨時使用任何文字編輯器修改目錄中的作用中 $PSHOME 組態檔。 您所做的變更會影響所有使用工作階段設定的新工作階段,但不會影響現有的工作階段。

    使用編輯的工作階段設定檔之前,請使用 Test-PSSessionConfigurationFile Cmdlet 來確認組態檔專案是否有效。