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

Den här cmdleten är endast tillgänglig på Windows-plattformen.

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 Path för Register-PSSessionConfiguration 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 sessionskonfigurationens egenskaper och värden. 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 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.

Denna cmdlet introducerades i PowerShell 3.0.

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 omfattar:

  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 omfattar:

  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 PSScheduledJob-modulen 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 sökvägen till konfigurationsfilen för ITConfig-sessionen.
  2. Användaren redigerar konfigurationsfilen med hjälp avNotepad.exe för att ändra värdet för 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. Den 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 – Namnet på aliaset. Den här nyckeln krävs.
  • Value – 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 godtagbara värdena för den här parametern är: None, ReadOnly, Constant, Private eller AllScope.

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

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

-Copyright

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 Författare .

Type:String
Position:Named
Default value:None
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
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.

Exempelvis: EnvironmentVariables=@{TestShare='\\Server01\TestShare'}

Type:IDictionary
Position:Named
Default value:None
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änsat. 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
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
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
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.

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

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

-GroupManagedServiceAccount

Konfigurerar sessioner som använder den här sessionskonfigurationen så att de körs under 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 går inte att använda det här fältet med parametern RunAsVirtualAccount .

Type:String
Position:Named
Default value:None
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
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 tillåts.
  • ConstrainedLanguage – Kommandon som innehåller skript som ska utvärderas tillåts inte. Läget RestrictedLanguage 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 några 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
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 är i valfri ordning 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
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 filsystemprovidern 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
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
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
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 din lista över 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 tillhör 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
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.

Exempelvis: @{'Contoso\Level 2 Helpdesk Users' = @{ RoleCapabilities = 'Maintenance', 'ADHelpDesk' }}

Type:IDictionary
Position:Named
Default value:None
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
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
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
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
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 du ska kunna 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 cmdleten Import-Module 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
Accept pipeline input:False
Accept wildcard characters:False

-TranscriptDirectory

Anger den katalog som sessionsavskrifter ska placera för sessioner som använder den här sessionskonfigurationen.

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

-TypesToProcess

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

Type:String[]
Position:Named
Default value:None
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
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:

  • Name – Namnet på variabeln. Den här nyckeln krävs.
  • Värde – variabelvärde. Den här nyckeln krävs.
  • Alternativ – Variabelalternativ. Den här nyckeln är valfri. Standardvärdet är Ingen. De godtagbara värdena för den här parametern är: None, ReadOnly, Constant, Private eller AllScope.

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

Type:Object
Position:Named
Default value:None
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.

Exempelvis: VisibleAliases='gcm', 'gp'

När en 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
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 försöker lämplig modul läsas in automatiskt.

När en 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
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
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 i sessionen. Använd parametrarna SessionType och ModulesToImport för att avgöra vilka moduler och snapin-moduler som importeras till sessionen.

När en 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
Accept pipeline input:False
Accept wildcard characters:True

-VisibleProviders

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

Som standard visas alla providers 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 en 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
Accept pipeline input:False
Accept wildcard characters:True

Indata

None

Du kan inte skicka några objekt till denna cmdlet.

Utdata

None

Denna cmdlet genererar inga utdata.

Kommentarer

Den här cmdleten är endast tillgänglig på Windows-plattformar.

  • 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 värdet för parametern VisibleProviders till exempel är certifikatprovidern, men parametern ModulesToImport inte anger den Microsoft.PowerShell.Security-modul 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 för $PSHOME katalogen.

    Egenskapen ConfigFilePath för sessionskonfigurationen innehåller den fullständigt kvalificerade sökvägen för den aktiva sessionskonfigurationsfilen. Du kan ändra den aktiva konfigurationsfilen i $PSHOME katalogen när som helst med valfri textredigerare. De ändringar 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.