Delen via


New-PSSessionConfigurationFile

Hiermee maakt u een bestand dat een sessieconfiguratie definieert.

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

Deze cmdlet is alleen beschikbaar op het Windows-platform.

De New-PSSessionConfigurationFile cmdlet maakt een bestand met instellingen waarmee een sessieconfiguratie en de omgeving van sessies worden gedefinieerd die worden gemaakt met behulp van de sessieconfiguratie. Als u het bestand wilt gebruiken in een sessieconfiguratie, gebruikt u de parameter Path van de Register-PSSessionConfiguration cmdlets of Set-PSSessionConfiguration .

Het sessieconfiguratiebestand dat New-PSSessionConfigurationFile wordt gemaakt, is een door mensen leesbaar tekstbestand dat een hash-tabel bevat met de eigenschappen en waarden van de sessieconfiguratie. Het bestand heeft een .pssc bestandsnaamextensie.

Alle parameters van zijn optioneel, met uitzondering van New-PSSessionConfigurationFile de parameter Path . Als u een parameter weglaat, wordt de bijbehorende sleutel in het sessieconfiguratiebestand weggelaten, behalve waar vermeld in de beschrijving van de parameter.

Een sessieconfiguratie, ook wel een eindpunt genoemd, is een verzameling instellingen op de lokale computer die de omgeving definiëren voor PowerShell-sessies (PSSessions) die verbinding maken met de computer. Alle PSSessions gebruiken een sessieconfiguratie. Als u een bepaalde sessieconfiguratie wilt opgeven, gebruikt u de parameter ConfigurationName van cmdlets waarmee een sessie wordt gemaakt, zoals de New-PSSession cmdlet.

Met een sessieconfiguratiebestand kunt u eenvoudig een sessieconfiguratie definiëren zonder complexe scripts of codeassembly's. De instellingen in het bestand worden gebruikt met het optionele opstartscript en eventuele assembly's in de sessieconfiguratie.

Zie about_Session_Configurations enabout_Session_Configuration_Files voor meer informatie over sessieconfiguraties en sessieconfiguratiebestanden.

Deze cmdlet is geïntroduceerd in PowerShell 3.0.

Voorbeelden

Voorbeeld 1: Een NoLanguage-sessie maken en gebruiken

In dit voorbeeld ziet u hoe u een sessie zonder taal maakt en wat de gevolgen zijn van het gebruik van een sessie zonder taal.

Deze stappen omvatten:

  1. Creatie een nieuw configuratiebestand.
  2. Registreer de configuratie.
  3. Creatie een nieuwe sessie die gebruikmaakt van de configuratie.
  4. Voer opdrachten uit in die nieuwe sessie.

Als u de opdrachten in dit voorbeeld wilt uitvoeren, start u PowerShell met behulp van de optie Als administrator uitvoeren. Deze optie is vereist om de Register-PSSessionConfiguration cmdlet uit te voeren.

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

In dit voorbeeld mislukt de Invoke-Command omdat de LanguageMode is ingesteld op NoLanguage.

Voorbeeld 2: Een RestrictedLanguage-sessie maken en gebruiken

In dit voorbeeld ziet u hoe u een sessie zonder taal maakt en wat de gevolgen zijn van het gebruik van een sessie zonder taal.

Deze stappen omvatten:

  1. Creatie een nieuw configuratiebestand.
  2. Registreer de configuratie.
  3. Creatie een nieuwe sessie die gebruikmaakt van de configuratie.
  4. Voer opdrachten uit in die nieuwe sessie.

Als u de opdrachten in dit voorbeeld wilt uitvoeren, start u PowerShell met behulp van de optie Als administrator uitvoeren. Deze optie is vereist om de Register-PSSessionConfiguration cmdlet uit te voeren.

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

In dit voorbeeld slaagt de Invoke-Command omdat languagemode is ingesteld op RestrictedLanguage.

Voorbeeld 3: Een sessieconfiguratiebestand wijzigen

In dit voorbeeld ziet u hoe u het sessieconfiguratiebestand wijzigt dat wordt gebruikt in een bestaande sessie met de naam 'ITTasks'. Voorheen hadden deze sessies alleen de kernmodules en een interne ITTasks-module . De beheerder wil de module PSScheduledJob toevoegen aan sessies die zijn gemaakt met behulp van de sessieconfiguratie ITTasks.

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

De New-PSSessionConfigurationFile cmdlet voor het maken van een sessieconfiguratiebestand waarmee de vereiste modules worden geïmporteerd. De Set-PSSessionConfiguration cmdlet vervangt het huidige configuratiebestand door het nieuwe. Deze nieuwe configuratie is alleen van invloed op nieuwe sessies die na de wijziging zijn gemaakt. Bestaande ITTasks-sessies worden niet beïnvloed.

Voorbeeld 4: een sessieconfiguratiebestand bewerken

In dit voorbeeld ziet u hoe u een sessieconfiguratie wijzigt door de actieve sessieconfiguratiekopie van het configuratiebestand te bewerken. Als u de sessieconfiguratiekopie van het configuratiebestand wilt wijzigen, moet u toegang tot het bestand hebben met volledig beheer. Hiervoor moet u mogelijk de machtigingen voor het bestand wijzigen.

In dit scenario willen we een nieuwe alias voor de Select-String cmdlet toevoegen door het actieve configuratiebestand te bewerken.

Met de onderstaande voorbeeldcode worden de volgende stappen uitgevoerd om deze wijziging aan te brengen:

  1. Haal het pad naar het configuratiebestand op voor de ITConfig-sessie.
  2. De gebruiker bewerkt het configuratiebestand met behulp vanNotepad.exe om de AliasDefinitions-waarde als volgt te wijzigen: AliasDefinitions = @(@{Name='slst';Value='Select-String'}).
  3. Test het bijgewerkte configuratiebestand.
$ITConfig = Get-PSSessionConfiguration -Name ITConfig
notepad.exe $ITConfig.ConfigFilePath
Test-PSSessionConfigurationFile -Path $ITConfig.ConfigFilePath

True

Gebruik de parameter Uitgebreid met Test-PSSessionConfigurationFile om eventuele fouten weer te geven die zijn gedetecteerd. De cmdlet retourneert $True als er geen fouten zijn gedetecteerd in het bestand.

Voorbeeld 5: een voorbeeldconfiguratiebestand Creatie

In dit voorbeeld ziet u een New-PSSessionConfigurationFile opdracht die gebruikmaakt van alle cmdlet-parameters. Het is opgenomen om de juiste invoerindeling voor elke parameter weer te geven.

Het resulterende SampleFile.pssc wordt weergegeven in de uitvoer.

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

}

Parameters

-AliasDefinitions

Voegt de opgegeven aliassen toe aan sessies die gebruikmaken van de sessieconfiguratie. Voer een hash-tabel in met de volgende sleutels:

  • Naam: de naam van de alias. Deze sleutel is vereist.
  • Value: de opdracht die de alias vertegenwoordigt. Deze sleutel is vereist.
  • Beschrijving: een tekenreeks die de alias beschrijft. Deze sleutel is optioneel.
  • Opties- Aliasopties. Deze sleutel is optioneel. De standaardwaarde is Geen. De acceptabele waarden voor deze parameter zijn: None, ReadOnly, Constant, Private of AllScope.

Bijvoorbeeld: @{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

Hiermee geeft u de assembly's op die moeten worden geladen in de sessies die gebruikmaken van de sessieconfiguratie.

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

-Author

Hiermee geeft u de auteur van de sessieconfiguratie of het configuratiebestand. Standaard is dit de huidige gebruiker. De waarde van deze parameter is zichtbaar in het sessieconfiguratiebestand, maar is geen eigenschap van het sessieconfiguratieobject.

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

-CompanyName

Hiermee geeft u het bedrijf op dat de sessieconfiguratie of het configuratiebestand heeft gemaakt. De standaardwaarde is Onbekend. De waarde van deze parameter is zichtbaar in het sessieconfiguratiebestand, maar is geen eigenschap van het sessieconfiguratieobject.

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

Hiermee geeft u een copyright het sessieconfiguratiebestand. De waarde van deze parameter is zichtbaar in het sessieconfiguratiebestand, maar is geen eigenschap van het sessieconfiguratieobject.

Als u deze parameter weglaat, New-PSSessionConfigurationFile genereert een copyright-instructie met behulp van de waarde van de parameter Auteur .

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

-Description

Hiermee geeft u een beschrijving van de sessieconfiguratie of het sessieconfiguratiebestand. De waarde van deze parameter is zichtbaar in het sessieconfiguratiebestand, maar is geen eigenschap van het sessieconfiguratieobject.

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

-EnvironmentVariables

Hiermee voegt u omgevingsvariabelen toe aan de sessie. Voer een hash-tabel in waarin de sleutels de namen van de omgevingsvariabelen zijn en de waarden de waarden van de omgevingsvariabele zijn.

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

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

-ExecutionPolicy

Hiermee geeft u het uitvoeringsbeleid van sessies die gebruikmaken van de sessieconfiguratie. Als u deze parameter weglaat, is de waarde van de executionPolicy-sleutel in het sessieconfiguratiebestand Beperkt. Zie about_Execution_Policies voor meer informatie over uitvoeringsbeleid in PowerShell.

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

Hiermee geeft u de opmaakbestanden (.ps1xml) op die worden uitgevoerd in sessies die gebruikmaken van de sessieconfiguratie. De waarde van deze parameter moet een volledig of absoluut pad van de opmaakbestanden zijn.

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

-Full

Geeft aan dat deze bewerking alle mogelijke configuratie-eigenschappen in het sessieconfiguratiebestand bevat.

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

-FunctionDefinitions

Hiermee voegt u de opgegeven functies toe aan sessies die gebruikmaken van de sessieconfiguratie. Voer een hash-tabel in met de volgende sleutels:

  • Naam: de naam van de functie. Deze sleutel is vereist.
  • ScriptBlock - Hoofdtekst van de functie. Voer een scriptblok in. Deze sleutel is vereist.
  • Opties - Functieopties. Deze sleutel is optioneel. De standaardwaarde is Geen. De acceptabele waarden voor deze parameter zijn: None, ReadOnly, Constant, Private of AllScope.

Bijvoorbeeld: @{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

Configureert sessies met behulp van deze sessieconfiguratie om te worden uitgevoerd in de context van het opgegeven door de groep beheerde serviceaccount. De computer waarop deze sessieconfiguratie is geregistreerd, moet gemachtigd zijn om het gMSA-wachtwoord aan te vragen om sessies te kunnen maken. Dit veld kan niet worden gebruikt met de parameter RunAsVirtualAccount .

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

-Guid

Hiermee geeft u een unieke id voor het sessieconfiguratiebestand. Als u deze parameter weglaat, New-PSSessionConfigurationFile genereert een GUID voor het bestand. Als u een nieuwe GUID wilt maken in PowerShell, typt u New-Guid.

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

-LanguageMode

Bepaalt welke elementen van de PowerShell-taal zijn toegestaan in sessies die gebruikmaken van deze sessieconfiguratie. U kunt deze parameter gebruiken om de opdrachten te beperken die bepaalde gebruikers op de computer kunnen uitvoeren.

De aanvaardbare waarden voor deze parameter zijn:

  • FullLanguage: alle taalelementen zijn toegestaan.
  • ConstrainedLanguage - Opdrachten die scripts bevatten die moeten worden geëvalueerd, zijn niet toegestaan. De modus ConstrainedLanguage beperkt gebruikerstoegang tot Microsoft .NET Framework typen, objecten of methoden.
  • NoLanguage: gebruikers kunnen cmdlets en functies uitvoeren, maar mogen geen taalelementen gebruiken, zoals scriptblokken, variabelen of operators.
  • RestrictedLanguage: gebruikers kunnen cmdlets en functies uitvoeren, maar mogen geen scriptblokken of variabelen gebruiken, met uitzondering van de volgende toegestane variabelen: $PSCulture, $PSUICulture, $True, $Falseen $Null. Gebruikers mogen alleen de basisvergelijkingsoperatoren (-eq, -gt, ) -ltgebruiken. Toewijzingsinstructies, eigenschapsverwijzingen en methode-aanroepen zijn niet toegestaan.

De standaardwaarde van de parameter LanguageMode is afhankelijk van de waarde van de parameter SessionType .

  • Empty - NoLanguage
  • RestrictedRemoteServer - NoLanguage
  • Default - 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

Hiermee geeft u de modules en modules op die automatisch worden geïmporteerd in sessies die gebruikmaken van de sessieconfiguratie.

Standaard wordt alleen de module Microsoft.PowerShell.Core geïmporteerd in externe sessies, maar tenzij de cmdlets worden uitgesloten, kunnen gebruikers de Import-Module cmdlets en Add-PSSnapin gebruiken om modules en modules aan de sessie toe te voegen.

Elke module of module in de waarde van deze parameter kan worden vertegenwoordigd door een tekenreeks of als een hash-tabel. Een moduletekenreeks bestaat alleen uit de naam van de module of module. Een module-hashtabel kan ModuleName, ModuleVersion en GUID-sleutels bevatten. Alleen de sleutel ModuleName is vereist.

De volgende waarde bestaat bijvoorbeeld uit een tekenreeks en een hash-tabel. Elke combinatie van tekenreeksen en hash-tabellen, in elke volgorde, is geldig.

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

De waarde van de parameter ModulesToImport van de Register-PSSessionConfiguration cmdlet heeft voorrang op de waarde van de sleutel ModulesToImport in het sessieconfiguratiebestand.

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

-MountUserDrive

Hiermee configureert u sessies die gebruikmaken van deze sessieconfiguratie om de User: PSDrive beschikbaar te maken. Gebruikersstations zijn uniek voor elke verbindende gebruiker en stellen gebruikers in staat om gegevens te kopiëren van en naar PowerShell-eindpunten, zelfs als de bestandssysteemprovider niet beschikbaar is. Basismappen van gebruikersstations worden gemaakt onder $env:LOCALAPPDATA\Microsoft\PowerShell\DriveRoots\. Voor elke gebruiker die verbinding maakt met het eindpunt, wordt een map gemaakt met de naam $env:USERDOMAIN\$env:USERNAME. Voor computers in werkgroepen is de waarde van $env:USERDOMAIN de hostnaam.

Inhoud in het gebruikersstation blijft behouden tussen gebruikerssessies en wordt niet automatisch verwijderd. Standaard kunnen gebruikers maximaal 50 MB aan gegevens opslaan in het gebruikersstation. Dit kan worden aangepast met de parameter UserDriveMaximumSize .

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

-Path

Hiermee geeft u het pad en de bestandsnaam van het sessieconfiguratiebestand. Het bestand moet een .pssc bestandsnaamextensie hebben.

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

-PowerShellVersion

Hiermee geeft u de versie van de PowerShell-engine op in sessies die gebruikmaken van de sessieconfiguratie. De acceptabele waarden voor deze parameter zijn: 2.0 en 3.0. Als u deze parameter weglaat, wordt de PowerShellVersion-sleutel als commentaar weergegeven en wordt de nieuwste versie van PowerShell uitgevoerd in de sessie.

De waarde van de PARAMETER PSVersion van de Register-PSSessionConfiguration cmdlet heeft voorrang op de waarde van de PowerShellVersion-sleutel in het sessieconfiguratiebestand.

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

-RequiredGroups

Hiermee geeft u regels voor voorwaardelijke toegang op voor gebruikers die verbinding maken met sessies die gebruikmaken van deze sessieconfiguratie.

Voer een hashtabel in om uw lijst met regels op te stellen met slechts 1 sleutel per hashtabel, 'And' of 'Or', en stel de waarde in op een matrix met namen van beveiligingsgroepen of extra hashtabellen.

Voorbeeld waarbij gebruikers die verbinding maken lid moeten zijn van één groep: @{ And = 'MyRequiredGroup' }

Voorbeeld waarbij gebruikers moeten behoren tot groep A, of beide groepen B en C, om toegang te krijgen tot het eindpunt: @{ Or = 'GroupA', @{ And = 'GroupB', 'GroupC' } }

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

-RoleDefinitions

Hiermee geeft u de toewijzing tussen beveiligingsgroepen (of gebruikers) en rolmogelijkheden. Gebruikers krijgen toegang tot alle rolmogelijkheden die van toepassing zijn op hun groepslidmaatschap op het moment dat de sessie wordt gemaakt.

Voer een hashtabel in waarin de sleutels de naam van de beveiligingsgroep zijn en de waarden hashtabellen zijn die een lijst met rolmogelijkheden bevatten die beschikbaar moeten worden gesteld aan de beveiligingsgroep.

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

Hiermee configureert u sessies met behulp van deze sessieconfiguratie om te worden uitgevoerd als het (virtuele) beheerdersaccount van de computer. Dit veld kan niet worden gebruikt met de parameter GroupManagedServiceAccount .

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

-RunAsVirtualAccountGroups

Hiermee geeft u de beveiligingsgroepen die moeten worden gekoppeld aan het virtuele account wanneer een sessie die gebruikmaakt van de sessieconfiguratie wordt uitgevoerd als een virtueel account. Als u dit weglaat, behoort het virtuele account tot domeinbeheerders op domeincontrollers en beheerders op alle andere computers.

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

-SchemaVersion

Hiermee geeft u de versie van het schema van het sessieconfiguratiebestand op. De standaardwaarde is '1.0.0.0'.

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

-ScriptsToProcess

Hiermee voegt u de opgegeven scripts toe aan sessies die gebruikmaken van de sessieconfiguratie. Voer het pad en de bestandsnamen van de scripts in. De waarde van deze parameter moet een volledig of absoluut pad van scriptbestandsnamen zijn.

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

-SessionType

Hiermee geeft u het type sessie op dat wordt gemaakt met behulp van de sessieconfiguratie. De standaardwaarde is Standaard. De aanvaardbare waarden voor deze parameter zijn:

  • Leeg: standaard worden er geen modules toegevoegd aan de sessie. Gebruik de parameters van deze cmdlet om modules, functies, scripts en andere functies toe te voegen aan de sessie. Met deze optie kunt u aangepaste sessies maken door geselecteerde opdrachten toe te voegen. Als u geen opdrachten toevoegt aan een lege sessie, is de sessie beperkt tot expressies en is deze mogelijk niet bruikbaar.
  • Standaard: hiermee voegt u de module Microsoft.PowerShell.Core toe aan de sessie. Deze module bevat de Import-Module cmdlet die gebruikers kunnen gebruiken om andere modules te importeren, tenzij u deze cmdlet expliciet verbiedt.
  • RestrictedRemoteServer. Bevat alleen de volgende proxyfuncties: Exit-PSSession, Get-Command, Get-FormatData, Get-Help, Measure-Object, Out-Default, en Select-Object. Gebruik de parameters van deze cmdlet om modules, functies, scripts en andere functies toe te voegen aan de sessie.
Type:SessionType
Accepted values:Empty, RestrictedRemoteServer, Default
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TranscriptDirectory

Hiermee geeft u de map voor het plaatsen van sessietranscripties voor sessies met behulp van deze sessieconfiguratie.

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

-TypesToProcess

Hiermee voegt u de opgegeven .ps1xml typebestanden toe aan sessies die gebruikmaken van de sessieconfiguratie. Voer de bestandsnamen van het type in. De waarde van deze parameter moet een volledig of absoluut pad zijn om bestandsnamen te typen.

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

-UserDriveMaximumSize

Hiermee geeft u de maximale grootte op voor gebruikersstations die worden weergegeven in sessies die gebruikmaken van deze sessieconfiguratie. Als u dit weglaat, is de standaardgrootte van elke User: schijfhoofdmap 50 MB.

Deze parameter moet worden gebruikt met MountUserDrive.

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

-VariableDefinitions

Voegt de opgegeven variabelen toe aan sessies die gebruikmaken van de sessieconfiguratie. Voer een hash-tabel in met de volgende sleutels:

  • Naam: de naam van de variabele. Deze sleutel is vereist.
  • Value - Variabele waarde. Deze sleutel is vereist.
  • Opties: variabele opties. Deze sleutel is optioneel. De standaardwaarde is Geen. De acceptabele waarden voor deze parameter zijn: None, ReadOnly, Constant, Private of AllScope.

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

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

-VisibleAliases

Beperkt de aliassen in de sessie tot de aliassen die zijn opgegeven in de waarde van deze parameter, plus eventuele aliassen die u definieert in de aliasDefinition parameter . Jokertekens worden ondersteund. Standaard zijn alle aliassen die zijn gedefinieerd door de PowerShell-engine en alle aliassen die door modules worden geëxporteerd, zichtbaar in de sessie.

Bijvoorbeeld: VisibleAliases='gcm', 'gp'

Wanneer een Visible-parameter is opgenomen in het sessieconfiguratiebestand, verwijdert PowerShell de cmdlet en de Import-Module bijbehorende ipmo-alias uit de sessie.

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

-VisibleCmdlets

Beperkt de cmdlets in de sessie tot de cmdlets die zijn opgegeven in de waarde van deze parameter. Jokertekens en gekwalificeerde namen van modules worden ondersteund.

Standaard zijn alle cmdlets die modules in de sessieexport worden weergegeven in de sessie. Gebruik de parameters SessionType en ModulesToImport om te bepalen welke modules en modules in de sessie worden geïmporteerd. Als er geen modules in ModulesToImport de cmdlet beschikbaar maken, probeert de juiste module automatisch te worden geladen.

Wanneer een Visible-parameter is opgenomen in het sessieconfiguratiebestand, verwijdert PowerShell de cmdlet en de Import-Module bijbehorende ipmo-alias uit de sessie.

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

-VisibleExternalCommands

Beperkt de externe binaire bestanden, scripts en opdrachten die kunnen worden uitgevoerd in de sessie tot de bestanden die zijn opgegeven in de waarde van deze parameter. Jokertekens worden ondersteund.

Standaard zijn er geen externe opdrachten zichtbaar in de sessie.

Wanneer een Visible-parameter is opgenomen in het sessieconfiguratiebestand, verwijdert PowerShell de cmdlet en de Import-Module bijbehorende ipmo-alias uit de sessie.

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

-VisibleFunctions

Beperkt de functies in de sessie tot de functies die zijn opgegeven in de waarde van deze parameter, plus alle functies die u definieert in de parameter FunctionDefinition . Jokertekens worden ondersteund.

Standaard zijn alle functies die modules in de sessie-export worden weergegeven in de sessie. Gebruik de parameters SessionType en ModulesToImport om te bepalen welke modules en modules in de sessie worden geïmporteerd.

Wanneer een Visible-parameter is opgenomen in het sessieconfiguratiebestand, verwijdert PowerShell de cmdlet en de Import-Module bijbehorende ipmo-alias uit de sessie.

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

-VisibleProviders

Beperkt de PowerShell-providers in de sessie tot de providers die zijn opgegeven in de waarde van deze parameter. Jokertekens worden ondersteund.

Standaard zijn alle providers met modules in de sessie-export zichtbaar in de sessie. Gebruik de parameters SessionType en ModulesToImport om te bepalen welke modules in de sessie worden geïmporteerd.

Wanneer een Visible-parameter is opgenomen in het sessieconfiguratiebestand, verwijdert PowerShell de cmdlet en de Import-Module alias uit ipmo de sessie.

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

Invoerwaarden

None

U kunt geen objecten doorspezen naar deze cmdlet.

Uitvoerwaarden

None

Deze cmdlet genereert geen uitvoer.

Notities

Deze cmdlet is alleen beschikbaar op Windows-platforms.

  • Parameters, zoals VisibleCmdlets en VisibleProviders, importeren geen items in de sessie. In plaats daarvan selecteren ze uit de items die in de sessie zijn geïmporteerd. Als de waarde van de parameter VisibleProviders bijvoorbeeld de certificaatprovider is, maar de parameter ModulesToImport niet de module Microsoft.PowerShell.Security opgeeft die de certificaatprovider bevat, is de certificaatprovider niet zichtbaar in de sessie.

  • New-PSSessionConfigurationFile maakt een sessieconfiguratiebestand met de bestandsextensie .pssc in het pad dat u opgeeft in de path-parameter . Wanneer u het sessieconfiguratiebestand gebruikt om een sessieconfiguratie te maken, kopieert de Register-PSSessionConfiguration cmdlet het configuratiebestand en slaat een actieve kopie van het bestand op in de submap SessionConfig van de $PSHOME map.

    De eigenschap ConfigFilePath van de sessieconfiguratie bevat het volledig gekwalificeerde pad van het configuratiebestand voor actieve sessies. U kunt het actieve configuratiebestand in de $PSHOME map op elk gewenst moment wijzigen met behulp van een teksteditor. De wijzigingen die u aanbrengt, zijn van invloed op alle nieuwe sessies die gebruikmaken van de sessieconfiguratie, maar niet op bestaande sessies.

    Voordat u een bewerkt sessieconfiguratiebestand gebruikt, gebruikt u de Test-PSSessionConfigurationFile cmdlet om te controleren of de vermeldingen in het configuratiebestand geldig zijn.