New-PSSessionConfigurationFile

Skapar en fil som definierar en sessionskonfiguration.

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

Cmdleten New-PSSessionConfigurationFile skapar en fil med inställningar som definierar en sessionskonfiguration och miljön för sessioner som skapas med hjälp av sessionskonfigurationen. Om du vill använda filen i en sessionskonfiguration använder du parametern Register-PSSessionConfiguration Path för cmdletarna eller Set-PSSessionConfiguration .

Sessionskonfigurationsfilen som New-PSSessionConfigurationFile skapar är en textfil som kan läsas av människor och som innehåller en hash-tabell med egenskaperna och värdena för sessionskonfigurationen. Filen har filnamnstillägget .pssc .

Alla parametrar i New-PSSessionConfigurationFile är valfria, förutom parametern Path . Om du utelämnar en parameter kommenteras motsvarande nyckel i sessionskonfigurationsfilen ut, förutom där anges i parameterbeskrivningen.

En sessionskonfiguration, även kallad en slutpunkt, är en samling inställningar på den lokala datorn som definierar miljön för PowerShell-sessioner (PSSessioner) som ansluter till datorn. Alla PSSessioner använder en sessionskonfiguration. Om du vill ange en viss sessionskonfiguration använder du parametern ConfigurationName för cmdletar som skapar en session, till exempel cmdleten New-PSSession .

En sessionskonfigurationsfil gör det enkelt att definiera en sessionskonfiguration utan komplexa skript eller kodsammansättningar. Inställningarna i filen används med det valfria startskriptet och eventuella sammansättningar i sessionskonfigurationen.

Mer information om sessionskonfigurationer och sessionskonfigurationsfiler finns i about_Session_Configurations och about_Session_Configuration_Files.

Den här cmdleten introducerades i PowerShell 3.0. Från och med PowerShell 6.0 var den här cmdleten endast tillgänglig på Windows-plattformen. PowerShell 7.3 gjorde den här cmdleten tillgänglig på alla plattformar som stöds.

Exempel

Exempel 1: Skapa och använda en NoLanguage-session

Det här exemplet visar hur du skapar och effekterna av att använda en session utan språk.

Stegen är följande:

  1. Skapa en ny konfigurationsfil.
  2. Registrera konfigurationen.
  3. Skapa en ny session som använder konfigurationen.
  4. Kör kommandon i den nya sessionen.

Om du vill köra kommandona i det här exemplet startar du PowerShell med alternativet Kör som administratör. Det här alternativet krävs för att köra cmdleten 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

I det här exemplet Invoke-Command misslyckas eftersom LanguageMode är inställt på NoLanguage.

Exempel 2: Skapa och använda en RestrictedLanguage-session

Det här exemplet visar hur du skapar och effekterna av att använda en session utan språk.

Stegen är följande:

  1. Skapa en ny konfigurationsfil.
  2. Registrera konfigurationen.
  3. Skapa en ny session som använder konfigurationen.
  4. Kör kommandon i den nya sessionen.

Om du vill köra kommandona i det här exemplet startar du PowerShell med alternativet Kör som administratör. Det här alternativet krävs för att köra cmdleten 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

I det här exemplet Invoke-Command lyckas eftersom LanguageMode är inställt på RestrictedLanguage.

Exempel 3: Ändra en sessionskonfigurationsfil

Det här exemplet visar hur du ändrar sessionskonfigurationsfilen som används i en befintlig session med namnet "ITTasks". Tidigare hade dessa sessioner bara kärnmodulerna och en intern ITTasks-modul . Administratören vill lägga till MODULen PSScheduledJob i sessioner som skapats med hjälp av ITTasks-sessionskonfigurationen.

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

Cmdleten New-PSSessionConfigurationFile för att skapa en sessionskonfigurationsfil som importerar de moduler som krävs. Cmdleten Set-PSSessionConfiguration ersätter den aktuella konfigurationsfilen med den nya. Den här nya konfigurationen påverkar bara nya sessioner som skapats efter ändringen. Befintliga ITTasks-sessioner påverkas inte.

Exempel 4: Redigera en sessionskonfigurationsfil

Det här exemplet visar hur du ändrar en sessionskonfiguration genom att redigera den aktiva sessionskonfigurationskopian av konfigurationsfilen. Om du vill ändra sessionskonfigurationskopian av konfigurationsfilen måste du ha fullständig åtkomst till filen. Detta kan kräva att du ändrar behörigheterna för filen.

I det här scenariot vill vi lägga till ett nytt alias för cmdleten Select-String genom att redigera den aktiva konfigurationsfilen.

Exempelkoden nedan utför följande steg för att göra den här ändringen:

  1. Hämta konfigurationsfilens sökväg för ITConfig-sessionen.
  2. Användaren redigerar konfigurationsfilen med hjälp av Anteckningar.exe för att ändra värdet AliasDefinitions enligt följande: AliasDefinitions = @(@{Name='slst';Value='Select-String'}).
  3. Testa den uppdaterade konfigurationsfilen.
$ITConfig = Get-PSSessionConfiguration -Name ITConfig
notepad.exe $ITConfig.ConfigFilePath
Test-PSSessionConfigurationFile -Path $ITConfig.ConfigFilePath

True

Använd den utförliga parametern med Test-PSSessionConfigurationFile för att visa eventuella fel som identifieras. Cmdleten returnerar $True om inga fel identifieras i filen.

Exempel 5: Skapa en exempelkonfigurationsfil

Det här exemplet visar ett New-PSSessionConfigurationFile kommando som använder alla cmdlet-parametrar. Det ingår för att visa rätt indataformat för varje parameter.

Den resulterande SampleFile.pssc visas i utdata.

$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'

}

Parametrar

-AliasDefinitions

Lägger till de angivna aliasen i sessioner som använder sessionskonfigurationen. Ange en hash-tabell med följande nycklar:

  • Namn – Aliasets namn. Den här nyckeln krävs.
  • Värde – kommandot som aliaset representerar. Den här nyckeln krävs.
  • Beskrivning – en textsträng som beskriver aliaset. Den här nyckeln är valfri.
  • Alternativ – Aliasalternativ. Den här nyckeln är valfri. Standardvärdet är Ingen. De acceptabla värdena för den här parametern är: None, ReadOnly, Constant, Private eller AllScope.

Till exempel: @{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

Anger de sammansättningar som ska läsas in i de sessioner som använder sessionskonfigurationen.

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

-Author

Anger författaren till sessionskonfigurationen eller konfigurationsfilen. Standard är den aktuella användaren. Värdet för den här parametern visas i sessionskonfigurationsfilen, men det är inte en egenskap för sessionskonfigurationsobjektet.

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

-CompanyName

Anger det företag som skapade sessionskonfigurationen eller konfigurationsfilen. Standardvärdet är Okänt. Värdet för den här parametern visas i sessionskonfigurationsfilen, men det är inte en egenskap för sessionskonfigurationsobjektet.

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

Anger en upphovsrätt till sessionskonfigurationsfilen. Värdet för den här parametern visas i sessionskonfigurationsfilen, men det är inte en egenskap för sessionskonfigurationsobjektet.

Om du utelämnar den här parametern New-PSSessionConfigurationFile genererar du en copyright-instruktion med hjälp av värdet för parametern Author .

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

-Description

Anger en beskrivning av sessionskonfigurationen eller sessionskonfigurationsfilen. Värdet för den här parametern visas i sessionskonfigurationsfilen, men det är inte en egenskap för sessionskonfigurationsobjektet.

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

-EnvironmentVariables

Lägger till miljövariabler i sessionen. Ange en hash-tabell där nycklarna är miljövariabelnamnen och värdena är miljövariabelvärdena.

Till exempel: EnvironmentVariables=@{TestShare='\\Server01\TestShare'}

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

-ExecutionPolicy

Anger körningsprincipen för sessioner som använder sessionskonfigurationen. Om du utelämnar den här parametern är värdet för Nyckeln ExecutionPolicy i sessionskonfigurationsfilen Begränsad. Information om körningsprinciper i PowerShell finns i 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

Anger formateringsfilerna (.ps1xml) som körs i sessioner som använder sessionskonfigurationen. Värdet för den här parametern måste vara en fullständig eller absolut sökväg för formateringsfilerna.

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

-Full

Anger att den här åtgärden innehåller alla möjliga konfigurationsegenskaper i sessionskonfigurationsfilen.

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

-FunctionDefinitions

Lägger till de angivna funktionerna i sessioner som använder sessionskonfigurationen. Ange en hash-tabell med följande nycklar:

  • Namn – Namnet på funktionen. Den här nyckeln krävs.
  • ScriptBlock – Funktionstext. Ange ett skriptblock. Den här nyckeln krävs.
  • Alternativ – Funktionsalternativ. Den här nyckeln är valfri. Standardvärdet är Ingen. De acceptabla värdena för den här parametern är: None, ReadOnly, Constant, Private eller AllScope.

Till exempel: @{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

Konfigurerar sessioner med den här sessionskonfigurationen så att de körs i kontexten för det angivna grupphanterade tjänstkontot. Den dator där den här sessionskonfigurationen är registrerad måste ha behörighet att begära gMSA-lösenordet för att sessioner ska kunna skapas. Det här fältet kan inte användas med parametern RunAsVirtualAccount .

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

-Guid

Anger en unik identifierare för sessionskonfigurationsfilen. Om du utelämnar den här parametern New-PSSessionConfigurationFile genererar du ett GUID för filen. Om du vill skapa ett nytt GUID i PowerShell skriver du New-Guid.

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

-LanguageMode

Avgör vilka element i PowerShell-språket som tillåts i sessioner som använder den här sessionskonfigurationen. Du kan använda den här parametern för att begränsa de kommandon som vissa användare kan köra på datorn.

De acceptabla värdena för den här parametern är:

  • FullLanguage – Alla språkelement är tillåtna.
  • ConstrainedLanguage – Kommandon som innehåller skript som ska utvärderas tillåts inte. Läget ConstrainedLanguage begränsar användaråtkomsten till Microsoft .NET Framework-typer, objekt eller metoder.
  • NoLanguage – Användare kan köra cmdletar och funktioner, men får inte använda språkelement, till exempel skriptblock, variabler eller operatorer.
  • RestrictedLanguage – Användare kan köra cmdletar och funktioner, men får inte använda skriptblock eller variabler förutom följande tillåtna variabler: $PSCulture, $PSUICulture, $True, $Falseoch $Null. Användare får endast använda de grundläggande jämförelseoperatorerna (-eq, -gt, -lt). Tilldelningsuttryck, egenskapsreferenser och metodanrop är inte tillåtna.

Standardvärdet för parametern LanguageMode beror på värdet för parametern SessionType .

  • Tom – NoLanguage
  • RestrictedRemoteServer – NoLanguage
  • Standard – 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

Anger de moduler och snapin-moduler som automatiskt importeras till sessioner som använder sessionskonfigurationen.

Som standard importeras endast snapin-modulen Microsoft.PowerShell.Core till fjärrsessioner, men om inte cmdletarna undantas kan användarna använda Import-Module cmdletarna och Add-PSSnapin för att lägga till moduler och snapin-moduler i sessionen.

Varje modul eller snapin-modul i värdet för den här parametern kan representeras av en sträng eller som en hash-tabell. En modulsträng består endast av namnet på modulen eller snapin-modulen. En modulhashtabell kan innehålla ModuleName-, ModuleVersion- och GUID-nycklar . Endast ModuleName-nyckeln krävs.

Följande värde består till exempel av en sträng och en hash-tabell. Alla kombinationer av strängar och hashtabeller i valfri ordning är giltiga.

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

Värdet för parametern ModulesToImport för cmdleten Register-PSSessionConfiguration har företräde framför värdet för nyckeln ModulesToImport i sessionskonfigurationsfilen.

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

-MountUserDrive

Konfigurerar sessioner som använder den här sessionskonfigurationen för att exponera User: PSDrive. Användarenheter är unika för varje anslutande användare och tillåter användare att kopiera data till och från PowerShell-slutpunkter även om filsystemleverantören inte exponeras. Användarenhetsrötter skapas under $env:LOCALAPPDATA\Microsoft\PowerShell\DriveRoots\. För varje användare som ansluter till slutpunkten skapas en mapp med namnet $env:USERDOMAIN\$env:USERNAME. För datorer i arbetsgrupper är värdet $env:USERDOMAIN för värdnamnet.

Innehållet på användarenheten sparas mellan användarsessioner och tas inte bort automatiskt. Som standard kan användarna bara lagra upp till 50 MB data på användarenheten. Detta kan anpassas med parametern UserDriveMaximumSize .

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

-Path

Anger sökvägen och filnamnet för sessionskonfigurationsfilen. Filen måste ha ett .pssc filnamnstillägg.

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

-PowerShellVersion

Anger versionen av PowerShell-motorn i sessioner som använder sessionskonfigurationen. De acceptabla värdena för den här parametern är: 2.0 och 3.0. Om du utelämnar den här parametern kommenteras PowerShellVersion-nyckeln ut och den senaste versionen av PowerShell körs i sessionen.

Värdet för PSVersion-parametern för cmdleten Register-PSSessionConfiguration har företräde framför värdet för PowerShellVersion-nyckeln i sessionskonfigurationsfilen.

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

-RequiredGroups

Anger regler för villkorlig åtkomst för användare som ansluter till sessioner som använder den här sessionskonfigurationen.

Ange en hashtable för att skapa en lista med regler med endast en nyckel per hashtable, "And" eller "Or", och ange värdet till en matris med säkerhetsgruppnamn eller ytterligare hashtables.

Exempel som kräver att anslutande användare är medlemmar i en enda grupp: @{ And = 'MyRequiredGroup' }

Exempel som kräver att användare ska tillhöra grupp A, eller båda grupperna B och C, för att få åtkomst till slutpunkten: @{ Or = 'GroupA', @{ And = 'GroupB', 'GroupC' } }

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

-RoleDefinitions

Anger mappningen mellan säkerhetsgrupper (eller användare) och rollfunktioner. Användare beviljas åtkomst till alla rollfunktioner som gäller för deras gruppmedlemskap när sessionen skapas.

Ange en hash-tabell där nycklarna är namnet på säkerhetsgruppen och värdena är hash-tabeller som innehåller en lista över rollfunktioner som ska göras tillgängliga för säkerhetsgruppen.

Till exempel: @{'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

Konfigurerar sessioner med den här sessionskonfigurationen som ska köras som datorns (virtuella) administratörskonto. Det går inte att använda det här fältet med parametern GroupManagedServiceAccount .

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

-RunAsVirtualAccountGroups

Anger vilka säkerhetsgrupper som ska associeras med det virtuella kontot när en session som använder sessionskonfigurationen körs som ett virtuellt konto. Om det utelämnas tillhör det virtuella kontot domänadministratörer på domänkontrollanter och administratörer på alla andra datorer.

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

-SchemaVersion

Anger versionen av sessionskonfigurationsfilschemat. Standardvärdet är "1.0.0.0".

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

-ScriptsToProcess

Lägger till de angivna skripten i sessioner som använder sessionskonfigurationen. Ange sökvägen och filnamnen för skripten. Värdet för den här parametern måste vara en fullständig eller absolut sökväg för skriptfilnamn.

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

-SessionType

Anger vilken typ av session som skapas med hjälp av sessionskonfigurationen. Standardvärdet är Standard. De acceptabla värdena för den här parametern är:

  • Tom – Inga moduler läggs till i sessionen som standard. Använd parametrarna för den här cmdleten för att lägga till moduler, funktioner, skript och andra funktioner i sessionen. Det här alternativet är utformat för att skapa anpassade sessioner genom att lägga till valda kommandon. Om du inte lägger till kommandon i en tom session är sessionen begränsad till uttryck och kanske inte kan användas.
  • Standard – Lägger till modulen Microsoft.PowerShell.Core i sessionen. Den här modulen innehåller den Import-Module cmdlet som användarna kan använda för att importera andra moduler om du inte uttryckligen förbjuder den här cmdleten.
  • RestrictedRemoteServer. Innehåller endast följande proxyfunktioner: Exit-PSSession, Get-Command, Get-FormatData, Get-Help, Measure-Object, Out-Defaultoch Select-Object. Använd parametrarna för den här cmdleten för att lägga till moduler, funktioner, skript och andra funktioner i sessionen.
Type:SessionType
Accepted values:Empty, RestrictedRemoteServer, Default
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TranscriptDirectory

Anger katalogen för att placera sessionsavskrifter för sessioner med hjälp av den här sessionskonfigurationen.

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

-TypesToProcess

Lägger till de angivna .ps1xml typfilerna i sessioner som använder sessionskonfigurationen. Ange typfilnamnen. Värdet för den här parametern måste vara en fullständig eller absolut sökväg för att skriva filnamn.

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

-UserDriveMaximumSize

Anger den maximala storleken för användarenheter som exponeras i sessioner som använder den här sessionskonfigurationen. När den utelämnas är standardstorleken för varje User: enhetsrot 50 MB.

Den här parametern ska användas med MountUserDrive.

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

-VariableDefinitions

Lägger till de angivna variablerna i sessioner som använder sessionskonfigurationen. Ange en hash-tabell med följande nycklar:

  • Namn – Namnet på variabeln. Den här nyckeln krävs.
  • Värde – variabelvärde. Den här nyckeln krävs.

Till exempel: @{Name='WarningPreference';Value='SilentlyContinue'}

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

-VisibleAliases

Begränsar aliasen i sessionen till de som anges i värdet för den här parametern, plus eventuella alias som du definierar i parametern AliasDefinition . Jokertecken stöds. Som standard visas alla alias som definieras av PowerShell-motorn och alla alias som moduler exporterar i sessionen.

Till exempel: VisibleAliases='gcm', 'gp'

När någon visible-parameter ingår i sessionskonfigurationsfilen tar PowerShell bort cmdleten Import-Module och dess ipmo-alias från sessionen.

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

-VisibleCmdlets

Begränsar cmdletarna i sessionen till de som anges i värdet för den här parametern. Jokertecken och Modulkvalificerade namn stöds.

Som standard visas alla cmdletar som moduler i sessionsexporten visar i sessionen. Använd parametrarna SessionType och ModulesToImport för att avgöra vilka moduler och snapin-moduler som importeras till sessionen. Om inga moduler i ModulesToImport exponerar cmdleten kommer lämplig modul att försöka läsas in automatiskt.

När någon visible-parameter ingår i sessionskonfigurationsfilen tar PowerShell bort cmdleten Import-Module och dess ipmo-alias från sessionen.

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

-VisibleExternalCommands

Begränsar de externa binärfiler, skript och kommandon som kan köras i sessionen till de som anges i värdet för den här parametern. Jokertecken stöds.

Som standard visas inga externa kommandon i sessionen.

När någon Visible-parameter ingår i sessionskonfigurationsfilen tar PowerShell bort cmdleten Import-Module och dess ipmo-alias från sessionen.

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

-VisibleFunctions

Begränsar funktionerna i sessionen till de som anges i värdet för den här parametern, plus alla funktioner som du definierar i parametern FunctionDefinition . Jokertecken stöds.

Som standard visas alla funktioner som moduler i sessionsexporten har i sessionen. Använd parametrarna SessionType och ModulesToImport för att avgöra vilka moduler och snapin-moduler som importeras till sessionen.

När någon visible-parameter ingår i sessionskonfigurationsfilen tar PowerShell bort cmdleten Import-Module och dess ipmo-alias från sessionen.

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

-VisibleProviders

Begränsar PowerShell-leverantörerna i sessionen till de som anges i värdet för den här parametern. Jokertecken stöds.

Som standard visas alla leverantörer som moduler i sessionsexporten i sessionen. Använd parametrarna SessionType och ModulesToImport för att avgöra vilka moduler som importeras till sessionen.

När någon Visible-parameter ingår i sessionskonfigurationsfilen tar PowerShell bort cmdleten Import-Module och dess ipmo alias från sessionen.

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

Indata

None

Du kan inte skicka objekt till den här cmdleten.

Utdata

None

Den här cmdleten returnerar inga utdata.

Kommentarer

  • Parametrar, till exempel VisibleCmdlets och VisibleProviders, importerar inte objekt till sessionen. I stället väljer de bland de objekt som importeras till sessionen. Om till exempel värdet för parametern VisibleProviders är certifikatprovidern, men parametern ModulesToImport inte anger modulen Microsoft.PowerShell.Security som innehåller certifikatprovidern, visas inte certifikatprovidern i sessionen.

  • New-PSSessionConfigurationFile skapar en sessionskonfigurationsfil som har filnamnstillägget .pssc i sökvägen som du anger i parametern Sökväg . När du använder sessionskonfigurationsfilen för att skapa en sessionskonfiguration Register-PSSessionConfiguration kopierar cmdleten konfigurationsfilen och sparar en aktiv kopia av filen i underkatalogen SessionConfig i $PSHOME katalogen.

    Egenskapen ConfigFilePath för sessionskonfigurationen innehåller den fullständigt kvalificerade sökvägen för den aktiva sessionskonfigurationsfilen. Du kan när som helst ändra den aktiva konfigurationsfilen $PSHOME i katalogen med valfri textredigerare. De ändringar som du gör påverkar alla nya sessioner som använder sessionskonfigurationen, men inte befintliga sessioner.

    Innan du använder en redigerad sessionskonfigurationsfil använder du cmdleten Test-PSSessionConfigurationFile för att kontrollera att konfigurationsfilposterna är giltiga.