New-PSSessionConfigurationFile

建立定義會話組態的檔案。

Syntax

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

Description

此 Cmdlet 僅適用於 Windows 平臺。

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

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

的所有參數New-PSSessionConfigurationFile都是選擇性的,但 Path 參數除外。 如果您省略參數,則會話組態檔中的對應索引鍵會批注化,但參數描述中所指出的位置除外。

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

會話組態檔可讓您輕鬆地定義會話設定,而不需要複雜的腳本或程式碼元件。 檔案中的設定會與選擇性啟動腳本和會話組態中的任何元件搭配使用。

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

此 Cmdlet 已在 PowerShell 3.0 中引進。

範例

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

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

步驟包括:

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

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

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

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

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

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

步驟包括:

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

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

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

在此範例中,會 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:編輯會話組態檔

此範例示範如何藉由編輯組態檔的作用中會話組態複本來變更會話組態。 若要修改組態檔的會話組態複本,您必須擁有檔案的完整控制存取權。 您可能需要變更檔案的許可權。

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

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

  1. 取得 ITConfig 工作階段的組態檔路徑。
  2. 使用者會使用 記事本.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:建立範例組態檔

此範例顯示 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'
    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'

}

參數

-AliasDefinitions

將指定的別名新增至使用會話組態的會話。 輸入具有下列索引鍵的哈希表:

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

例如:@{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

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

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

指定建立會話組態或組態檔的公司。 預設值為 Unknown。 此參數的值會顯示在會話組態檔中,但它不是會話組態對象的屬性。

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:IDictionary
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ExecutionPolicy

指定使用會話組態之會話的執行原則。 如果您省略此參數,會話組態檔中的 ExecutionPolicy 索引鍵值會是 Restricted。 如需 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

-Full

表示這項作業包含會話組態檔中的所有可能組態屬性。

Type:SwitchParameter
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:IDictionary[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-GroupManagedServiceAccount

使用此工作階段組態來設定工作階段,以在指定的群組受控服務帳戶內容下執行。 註冊此會話設定的計算機必須具有要求 gMSA 密碼的許可權,才能成功建立會話。 此字段無法與 RunAsVirtualAccount 參數搭配使用。

Type:String
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 - 不允許包含要評估之腳本的命令。 RestrictedLanguage 模式會限制使用者對 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

-MountUserDrive

設定使用此會話設定來公開 PSDrive 的 User: 工作階段。 使用者磁碟驅動器對於每個連線的使用者而言都是唯一的,而且即使文件系統提供者未公開,也允許使用者將數據複製到 PowerShell 端點。 使用者磁碟驅動器根目錄會在下 $env:LOCALAPPDATA\Microsoft\PowerShell\DriveRoots\建立。 對於連接到端點的每個使用者,會以名稱 $env:USERDOMAIN\$env:USERNAME建立資料夾。 對於工作組中的計算機,的值 $env:USERDOMAIN 是主機名。

使用者磁碟驅動器中的內容會在使用者會話之間保存,而且不會自動移除。 根據預設,使用者只能在使用者磁碟驅動器中儲存最多 50 MB 的數據。 這可以使用 UserDriveMaximumSize 參數來自定義

Type:SwitchParameter
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 參數值優先於會話組態檔中 PowerShellVersion 索引鍵的值Register-PSSessionConfiguration

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

-RequiredGroups

指定連線到使用此工作階段設定之工作階段的使用者的條件式存取規則。

輸入哈希表來撰寫規則清單,每個哈希表只使用1個索引鍵 『And』 或 'Or',並將值設定為安全組名稱數位或其他哈希表。

要求將用戶連線為單一群組成員的範例: @{ And = 'MyRequiredGroup' }

要求使用者屬於群組 A 或 B 和 C 群組的範例,才能存取端點: @{ Or = 'GroupA', @{ And = 'GroupB', 'GroupC' } }

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

-RoleDefinitions

指定安全組(或使用者)與角色功能之間的對應。 在建立會話時,用戶將獲授與套用至其群組成員資格的所有角色功能存取權。

輸入哈希表,其中索引鍵是安全組的名稱,而值是哈希表,其中包含應提供給安全組的角色功能清單。

例如:@{'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

使用此工作階段設定來設定工作階段,以電腦 (虛擬) 系統管理員帳戶的形式執行。 此字段無法與 GroupManagedServiceAccount 參數搭配使用。

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

-RunAsVirtualAccountGroups

指定當使用會話設定的會話以虛擬帳戶的形式執行時,要與虛擬帳戶相關聯的安全組。 如果省略,虛擬帳戶會屬於域控制器上的網域 管理員,以及所有其他計算機上的 管理員 istrators。

Type:String[]
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

-TranscriptDirectory

指定要使用此工作階段設定為工作階段放置工作階段文字記錄的目錄。

Type:String
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

-UserDriveMaximumSize

指定使用此工作階段設定之工作階段中公開的使用者磁碟驅動器大小上限。 省略時,每個 User: 磁碟驅動器根目錄的預設大小為 50MB。

此參數應該與 MountUserDrive 搭配使用。

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

-VariableDefinitions

將指定的變數新增至使用工作階段組態的工作階段。 輸入具有下列索引鍵的哈希表:

  • 名稱 -變數的名稱。 需要此金鑰。
  • 值 - 變數值。 需要此金鑰。

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

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:Object[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VisibleExternalCommands

將可在工作階段中執行的外部二進位檔、腳本和命令限制為此參數值中指定的二進位檔、 腳稿和命令。 支援使用萬用字元。

根據預設,會話中不會顯示任何外部命令。

當會話組態檔中包含任何 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:Object[]
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 不會傳回任何輸出。

備註

此 Cmdlet 僅適用於 Windows 平臺。

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

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

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

    使用已編輯的會話組態檔之前,請使用 Test-PSSessionConfigurationFile Cmdlet 來確認組態檔專案是否有效。