Delen via


New-PSSessionConfigurationFile

Hiermee maakt u een bestand dat een sessieconfiguratie definieert.

Syntaxis

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

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 in een sessieconfiguratie wilt gebruiken, gebruikt u de padparameter van de Register-PSSessionConfiguration of Set-PSSessionConfiguration cmdlets.

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

Alle parameters New-PSSessionConfigurationFile zijn optioneel, met uitzondering van de parameter Path . Als u een parameter weglaat, wordt de bijbehorende sleutel in het sessieconfiguratiebestand als commentaar weergegeven, met uitzondering van waar vermeld in de parameterbeschrijving.

Een sessieconfiguratie, ook wel een eindpunt genoemd, is een verzameling instellingen op de lokale computer die de omgeving voor PowerShell-sessies (PSSessions) definiëren die verbinding maken met de computer. Alle PSSessions maken gebruik van een sessieconfiguratie. Als u een bepaalde sessieconfiguratie wilt opgeven, gebruikt u de ConfigurationName-parameter van cmdlets die een sessie maken, 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 en about_Session_Configuration_Files voor meer informatie over sessieconfiguraties en sessieconfiguratiebestanden.

Deze cmdlet is geïntroduceerd in PowerShell 3.0. Vanaf PowerShell 6.0 was deze cmdlet alleen beschikbaar op het Windows-platform. PowerShell 7.3 heeft deze cmdlet beschikbaar gemaakt op alle ondersteunde platforms.

Voorbeelden

Voorbeeld 1: Een NoLanguage-sessie maken en gebruiken

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

De stappen omvatten:

  1. Maak een nieuw configuratiebestand.
  2. Registreer de configuratie.
  3. Maak 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 fout omdat 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 de effecten van het gebruik van een sessie zonder taal.

De stappen omvatten:

  1. Maak een nieuw configuratiebestand.
  2. Registreer de configuratie.
  3. Maak 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 bewerking 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 PSScheduledJob-module toevoegen aan sessies die zijn gemaakt met behulp van de ITTasks-sessieconfiguratie.

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 zijn gemaakt na de wijziging. Bestaande ITTasks-sessies worden niet beïnvloed.

Voorbeeld 4: Een sessieconfiguratiebestand bewerken

In dit voorbeeld ziet u hoe u een sessieconfiguratie wijzigt door de kopie van de actieve sessieconfiguratie van het configuratiebestand te bewerken. Als u de sessieconfiguratiekopie van het configuratiebestand wilt wijzigen, moet u de toegang tot het bestand volledig beheren. 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.

De onderstaande voorbeeldcode voert de volgende stappen uit 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 van Notepad.exe om de waarde AliasDefinitions 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 uitgebreide parameter met om Test-PSSessionConfigurationFile eventuele gedetecteerde fouten weer te geven. De cmdlet retourneert $True als er geen fouten worden gedetecteerd in het bestand.

Voorbeeld 5: Een voorbeeldconfiguratiebestand maken

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 : naam van de alias. Deze sleutel is vereist.
  • Waarde: 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 None. 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-AssembliesToLoad

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

Type:String[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Hiermee geeft u een copyright van 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 u een copyright-instructie met behulp van de waarde van de parameter Auteur .

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-EnvironmentVariables

Voegt omgevingsvariabelen toe aan de sessie. Voer een hashtabel in waarin de sleutels de namen van de omgevingsvariabelen zijn en de waarden de omgevingsvariabelewaarden zijn.

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

Type:IDictionary
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ExecutionPolicy

Hiermee geeft u het uitvoeringsbeleid op 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 het uitvoeringsbeleid in PowerShell.

Type:ExecutionPolicy
Geaccepteerde waarden:Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Full

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

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-FunctionDefinitions

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

  • Naam : 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 None. 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-GroupManagedServiceAccount

Hiermee configureert u sessies met behulp van deze sessieconfiguratie om te worden uitgevoerd onder 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Guid

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

Type:Guid
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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: , , , en $Null$False. $True$PSUICulture$PSCulture Gebruikers mogen alleen de basisvergelijkingsoperatoren (-eq, -gt, -lt) gebruiken. Toewijzingsinstructies, eigenschapsverwijzingen en methode-aanroepen zijn niet toegestaan.

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

  • Leeg - NoLanguage
  • RestrictedRemoteServer - NoLanguage
  • Standaard - FullLanguage
Type:PSLanguageMode
Geaccepteerde waarden:FullLanguage, RestrictedLanguage, NoLanguage, ConstrainedLanguage
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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 zijn uitgesloten, kunnen gebruikers de Import-Module modules en Add-PSSnapin modules toevoegen aan de sessie, tenzij de cmdlets zijn uitgesloten.

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 modulenaam, ModuleVersion en GUID-sleutels bevatten. Alleen de ModuleName-sleutel is vereist.

De volgende waarde bestaat bijvoorbeeld uit een tekenreeks en een hash-tabel. Elke combinatie van tekenreeksen en hashtabellen, 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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 naar en van PowerShell-eindpunten, zelfs als de bestandssysteemprovider niet beschikbaar is. Hoofdmappen van gebruikersstations worden gemaakt onder $env:LOCALAPPDATA\Microsoft\PowerShell\DriveRoots\. Voor elke gebruiker die verbinding maakt met het eindpunt, wordt er een map gemaakt met de naam $env:USERDOMAIN\$env:USERNAME. Voor computers in werkgroepen is de waarde van $env:USERDOMAIN de hostnaam.

De inhoud van het gebruikersstation blijft behouden in 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren: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 uitgeschakeld en wordt de nieuwste versie van PowerShell in de sessie uitgevoerd.

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

Type:Version
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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 één sleutel per hashtabel, 'And' of 'Or' en stel de waarde in op een matrix met namen van beveiligingsgroepen of extra hashtables.

Voorbeeld waarbij gebruikers 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-RoleDefinitions

Hiermee geeft u de toewijzing tussen beveiligingsgroepen (of gebruikers) en rolmogelijkheden op. 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 functiemogelijkheden bevatten die beschikbaar moeten worden gesteld voor de beveiligingsgroep.

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

Type:IDictionary
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-RunAsVirtualAccount

Hiermee configureert u sessies die deze sessieconfiguratie gebruiken 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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 domeinadministratoren op domeincontrollers en beheerders op alle andere computers.

Type:String[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-SchemaVersion

Hiermee geeft u de versie van het sessieconfiguratiebestandschema. De standaardwaarde is 1.0.0.0.

Type:Version
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ScriptsToProcess

Voegt 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-SessionType

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

  • Leeg: er worden standaard geen modules aan de sessie toegevoegd. Gebruik de parameters van deze cmdlet om modules, functies, scripts en andere functies toe te voegen aan de sessie. Deze optie is ontworpen voor het maken van aangepaste sessies door geselecteerde opdrachten toe te voegen. Als u geen opdrachten aan een lege sessie toevoegt, is de sessie beperkt tot expressies en is deze mogelijk niet bruikbaar.
  • Standaard: voegt de Microsoft.PowerShell.Core-module 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-FormatDataGet-Command, Get-Help, Measure-Object, , en Select-ObjectOut-Default. Gebruik de parameters van deze cmdlet om modules, functies, scripts en andere functies toe te voegen aan de sessie.
Type:SessionType
Geaccepteerde waarden:Empty, RestrictedRemoteServer, Default
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-TranscriptDirectory

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

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-TypesToProcess

Hiermee voegt u de opgegeven .ps1xml typebestanden toe aan sessies die gebruikmaken van de sessieconfiguratie. Voer de bestandsnaam 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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: stationshoofdmap 50 MB.

Deze parameter moet worden gebruikt met MountUserDrive.

Type:Int64
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-VariableDefinitions

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

  • Naam : naam van de variabele. Deze sleutel is vereist.
  • Waarde - Variabele waarde. Deze sleutel is vereist.

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

Type:Object
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-VisibleAliases

Beperkt de aliassen in de sessie tot de aliassen die zijn opgegeven in de waarde van deze parameter, plus aliassen die u in de parameter AliasDefinition definieert. 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 zichtbare 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

-VisibleCmdlets

Hiermee beperkt u de cmdlets in de sessie tot de cmdlets die zijn opgegeven in de waarde van deze parameter. Jokertekens en module gekwalificeerde namen worden ondersteund.

Standaard zijn alle cmdlets die modules in de sessieexport zichtbaar zijn 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 beschikbaar zijn voor de cmdlet, probeert de juiste module automatisch te worden geladen.

Wanneer een zichtbare 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

-VisibleExternalCommands

Hiermee beperkt u de externe binaire bestanden, scripts en opdrachten die in de sessie kunnen worden uitgevoerd 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 zichtbare 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

-VisibleFunctions

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

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

Wanneer een zichtbare 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

-VisibleProviders

Hiermee beperkt u 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 die modules in de sessieexport zichtbaar zijn in de sessie. Gebruik de parameters SessionType en ModulesToImport om te bepalen welke modules in de sessie worden geïmporteerd.

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

Type:String[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

Invoerwaarden

None

U kunt geen objecten doorsluisen naar deze cmdlet.

Uitvoerwaarden

None

Deze cmdlet retourneert geen uitvoer.

Notities

  • 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.PowerShell.Security opgeeft die de certificaatprovider bevat, is de certificaatprovider niet zichtbaar in de sessie.

  • New-PSSessionConfigurationFile maakt een sessieconfiguratiebestand met de extensie .pssc-bestandsnaam in het pad dat u opgeeft in de parameter Pad . 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 actieve sessieconfiguratiebestand. 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 bestaande sessies.

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