New-PSSessionConfigurationFile

Erstellt eine Datei, die eine Sitzungskonfiguration definiert.

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

Beschreibung

Das New-PSSessionConfigurationFile Cmdlet erstellt eine Datei mit Einstellungen, die eine Sitzungskonfiguration und die Umgebung von Sitzungen definieren, die mithilfe der Sitzungskonfiguration erstellt werden. Um die Datei in einer Sitzungskonfiguration zu verwenden, verwenden Sie den Path-Parameter der Register-PSSessionConfiguration Oder Set-PSSessionConfiguration Cmdlets.

Die Sitzungskonfigurationsdatei, die erstellt wird, New-PSSessionConfigurationFile ist eine lesbare Textdatei, die eine Hashtabelle der Sitzungskonfigurationseigenschaften und -werte enthält. Die Datei hat eine .pssc Dateinamenerweiterung.

Alle Parameter sind New-PSSessionConfigurationFile optional, mit Ausnahme des Path-Parameters . Wenn Sie einen Parameter weglassen, wird der entsprechende Schlüssel in der Sitzungskonfigurationsdatei auskommentiert, es sei denn, er wurde in der Parameterbeschreibung angegeben.

Eine Sitzungskonfiguration, auch als Endpunkt bezeichnet, ist eine Sammlung von Einstellungen auf dem lokalen Computer, die die Umgebung für PowerShell-Sitzungen (PSSessions) definieren, die eine Verbindung mit dem Computer herstellen. Alle PSSessions verwenden eine Sitzungskonfiguration . Verwenden Sie zum Angeben einer bestimmten Sitzungskonfiguration den ConfigurationName-Parameter von Cmdlets, die eine Sitzung erstellen, z. B. das New-PSSession Cmdlet.

Eine Sitzungskonfigurationsdatei erleichtert das Definieren einer Sitzungskonfiguration ohne komplexe Skripts oder Codeassemblys. Die Einstellungen in der Datei werden mit dem optionalen Startskript und allen Assemblys in der Sitzungskonfiguration verwendet.

Weitere Informationen zu Sitzungskonfigurationen und Sitzungskonfigurationsdateien finden Sie unter about_Session_Configurations und about_Session_Configuration_Files.

Dieses Cmdlet wurde in PowerShell 3.0 eingeführt. Ab PowerShell 6.0 war dieses Cmdlet nur auf der Windows-Plattform verfügbar. PowerShell 7.3 hat dieses Cmdlet auf allen unterstützten Plattformen verfügbar gemacht.

Beispiele

Beispiel 1: Erstellen und Verwenden einer NoLanguage-Sitzung

In diesem Beispiel wird gezeigt, wie Sie eine No-Language-Sitzung erstellen und die Effekte verwenden.

Dazu müssen folgende Schritte ausgeführt werden:

  1. Erstellen Sie eine neue Konfigurationsdatei.
  2. Registrieren Sie die Konfiguration.
  3. Erstellen Sie eine neue Sitzung, die die Konfiguration verwendet.
  4. Führen Sie Befehle in dieser neuen Sitzung aus.

Um die Befehle in diesem Beispiel auszuführen, starten Sie PowerShell mithilfe der Option "Als Administrator ausführen". Diese Option ist erforderlich, um das Register-PSSessionConfiguration Cmdlet auszuführen.

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 diesem Beispiel schlägt der Invoke-Command Fehler fehl, da der LanguageMode auf "NoLanguage" festgelegt ist.

Beispiel 2: Erstellen und Verwenden einer RestrictedLanguage-Sitzung

In diesem Beispiel wird gezeigt, wie Sie eine No-Language-Sitzung erstellen und die Effekte verwenden.

Dazu müssen folgende Schritte ausgeführt werden:

  1. Erstellen Sie eine neue Konfigurationsdatei.
  2. Registrieren Sie die Konfiguration.
  3. Erstellen Sie eine neue Sitzung, die die Konfiguration verwendet.
  4. Führen Sie Befehle in dieser neuen Sitzung aus.

Um die Befehle in diesem Beispiel auszuführen, starten Sie PowerShell mithilfe der Option "Als Administrator ausführen". Diese Option ist erforderlich, um das Register-PSSessionConfiguration Cmdlet auszuführen.

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 diesem Beispiel wird der Invoke-Command Vorgang erfolgreich ausgeführt, da " LanguageMode " auf "RestrictedLanguage" festgelegt ist.

Beispiel 3: Ändern einer Sitzungskonfigurationsdatei

In diesem Beispiel wird gezeigt, wie Sie die Sitzungskonfigurationsdatei ändern, die in einer vorhandenen Sitzung mit dem Namen "ITTasks" verwendet wird. Zuvor hatten diese Sitzungen nur die Kernmodule und ein internes ITTasks-Modul . Der Administrator möchte das PSScheduledJob-Modul zu Sitzungen hinzufügen, die mithilfe der ITTasks-Sitzungskonfiguration erstellt wurden.

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

Das New-PSSessionConfigurationFile Cmdlet zum Erstellen einer Sitzungskonfigurationsdatei, die die erforderlichen Module importiert. Das Set-PSSessionConfiguration Cmdlet ersetzt die aktuelle Konfigurationsdatei durch die neue. Diese neue Konfiguration wirkt sich nur auf neue Sitzungen aus, die nach der Änderung erstellt wurden. Vorhandene "ITTasks"-Sitzungen sind nicht betroffen.

Beispiel 4: Bearbeiten einer Sitzungskonfigurationsdatei

In diesem Beispiel wird veranschaulicht, wie Sie eine Sitzungskonfiguration durch Bearbeiten der aktiven Sitzungskonfigurationskopie der Konfigurationsdatei ändern können. Um die Sitzungskonfigurationskopie der Konfigurationsdatei zu ändern, müssen Sie vollzugriff auf die Datei haben. Dies erfordert möglicherweise, dass Sie die Berechtigungen für die Datei ändern.

In diesem Szenario möchten wir einen neuen Alias für das Select-String Cmdlet hinzufügen, indem wir die aktive Konfigurationsdatei bearbeiten.

Der folgende Beispielcode führt die folgenden Schritte aus, um diese Änderung vorzunehmen:

  1. Rufen Sie den Konfigurationsdateipfad für die ITConfig-Sitzung ab.
  2. Der Benutzer bearbeitet die Konfigurationsdatei mithilfe von Editor.exe, um den AliasDefinitions-Wert wie folgt zu ändern: AliasDefinitions = @(@{Name='slst';Value='Select-String'})
  3. Testen Sie die aktualisierte Konfigurationsdatei.
$ITConfig = Get-PSSessionConfiguration -Name ITConfig
notepad.exe $ITConfig.ConfigFilePath
Test-PSSessionConfigurationFile -Path $ITConfig.ConfigFilePath

True

Verwenden Sie den Verbose-Parameter , Test-PSSessionConfigurationFile um alle erkannten Fehler anzuzeigen. Das Cmdlet gibt zurück $True , wenn in der Datei keine Fehler erkannt werden.

Beispiel 5: Erstellen einer Beispielkonfigurationsdatei

Dieses Beispiel zeigt einen New-PSSessionConfigurationFile Befehl, der alle Cmdlet-Parameter verwendet. Er wurde angegeben, um das richtige Eingabeformat für jeden Parameter zu zeigen.

Die resultierende SampleFile.pssc wird in der Ausgabe angezeigt.

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

}

Parameter

-AliasDefinitions

Fügt die angegebenen Aliase zu Sitzungen hinzu, die die Sitzungskonfiguration verwenden. Geben Sie eine Hashtabelle mit den folgenden Schlüsseln ein:

  • Name – Name des Alias. Dieser Schlüssel ist erforderlich.
  • Value - Der Befehl, den der Alias darstellt. Dieser Schlüssel ist erforderlich.
  • Beschreibung : Eine Textzeichenfolge, die den Alias beschreibt. Dieser Schlüssel ist optional.
  • Optionen – Aliasoptionen. Dieser Schlüssel ist optional. Der Standardwert ist Keiner. Die zulässigen Werte für diesen Parameter sind: None, ReadOnly, Constant, Private oder AllScope.

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

Gibt die Assemblys an, die in die Sitzungen geladen werden sollen und die die Sitzungskonfiguration verwenden.

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

-Author

Gibt den Autor der Sitzungskonfiguration oder der Konfigurationsdatei an. Der Standardwert ist der aktuelle Benutzer. Der Wert dieses Parameters wird in der Sitzungskonfigurationsdatei angezeigt, aber es handelt sich nicht um eine Eigenschaft des Sitzungskonfigurationsobjekts.

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

-CompanyName

Gibt das Unternehmen an, das die Sitzungskonfiguration oder die Konfigurationsdatei erstellt hat. Der Standardwert ist Unbekannt. Der Wert dieses Parameters wird in der Sitzungskonfigurationsdatei angezeigt, aber es handelt sich nicht um eine Eigenschaft des Sitzungskonfigurationsobjekts.

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

Gibt ein Copyright für die Sitzungskonfigurationsdatei an. Der Wert dieses Parameters wird in der Sitzungskonfigurationsdatei angezeigt, aber es handelt sich nicht um eine Eigenschaft des Sitzungskonfigurationsobjekts.

Wenn Sie diesen Parameter weglassen, New-PSSessionConfigurationFile wird eine Copyright-Anweisung mithilfe des Werts des Author-Parameters generiert.

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

-Description

Gibt eine Beschreibung der Sitzungskonfiguration oder der Sitzungskonfigurationsdatei an. Der Wert dieses Parameters wird in der Sitzungskonfigurationsdatei angezeigt, aber es handelt sich nicht um eine Eigenschaft des Sitzungskonfigurationsobjekts.

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

-EnvironmentVariables

Fügt der Sitzung Umgebungsvariablen hinzu. Geben Sie eine Hashtabelle ein, in der die Schlüssel die Namen der Umgebungsvariablen und die Werte die Werte der Umgebungsvariablen sind.

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

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

-ExecutionPolicy

Bestimmt die Ausführungsrichtlinie von Sitzungen, die die Sitzungskonfiguration verwenden. Wenn Sie diesen Parameter weglassen, ist der Wert des ExecutionPolicy-Schlüssels in der Sitzungskonfigurationsdatei eingeschränkt. Informationen zu Ausführungsrichtlinien in PowerShell finden Sie unter about_Execution_Policies.

Type:ExecutionPolicy
Accepted values:Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FormatsToProcess

Gibt die Formatierungsdateien (.ps1xml) an, die in Sitzungen ausgeführt werden, die die Sitzungskonfiguration verwenden. Der Wert dieses Parameters muss ein vollständiger oder absoluter Pfad der Formatierungsdateien sein.

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

-Full

Gibt an, dass dieser Vorgang alle möglichen Konfigurationseigenschaften in der Sitzungskonfigurationsdatei enthält.

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

-FunctionDefinitions

Fügt Sitzungen, die die Sitzungskonfiguration verwenden, die angegebenen Funktionen hinzu. Geben Sie eine Hashtabelle mit den folgenden Schlüsseln ein:

  • Name - Name der Funktion. Dieser Schlüssel ist erforderlich.
  • ScriptBlock – Funktionstext. Geben Sie einen Skriptblock ein. Dieser Schlüssel ist erforderlich.
  • Optionen – Funktionsoptionen. Dieser Schlüssel ist optional. Der Standardwert ist Keiner. Die zulässigen Werte für diesen Parameter sind: None, ReadOnly, Constant, Private oder AllScope.

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

Konfiguriert Sitzungen mithilfe dieser Sitzungskonfiguration, um unter dem Kontext des angegebenen gruppenverwalteten Dienstkontos auszuführen. Der Computer, auf dem diese Sitzungskonfiguration registriert ist, muss über die Berechtigung zum Anfordern des gMSA-Kennworts verfügen, damit Sitzungen erfolgreich erstellt werden können. Dieses Feld kann nicht mit dem Parameter RunAsVirtualAccount verwendet werden.

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

-Guid

Gibt einen eindeutigen Bezeichner für die Sitzungskonfigurationsdatei an. Wenn Sie diesen Parameter weglassen, New-PSSessionConfigurationFile wird eine GUID für die Datei generiert. Geben Sie New-Guidzum Erstellen einer neuen GUID in PowerShell ein.

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

-LanguageMode

Bestimmt, welche Elemente der PowerShell-Sprache in Sitzungen zulässig sind, die diese Sitzungskonfiguration verwenden. Sie können diesen Parameter verwenden, um die Befehle einzuschränken, die bestimmte Benutzer auf dem Computer ausführen können.

Zulässige Werte für diesen Parameter:

  • FullLanguage – Alle Sprachelemente sind zulässig.
  • EingeschränktesLanguage - Befehle, die zu bewertende Skripts enthalten, sind nicht zulässig. Der ConstrainedLanguage-Modus schränkt den Benutzerzugriff auf Microsoft .NET Framework-Typen, -Objekte oder -Methoden ein.
  • NoLanguage – Benutzer können Cmdlets und Funktionen ausführen, dürfen jedoch keine Sprachelemente wie Skriptblöcke, Variablen oder Operatoren verwenden.
  • RestrictedLanguage – Benutzer können Cmdlets und Funktionen ausführen, dürfen jedoch keine Skriptblöcke oder Variablen verwenden, mit Ausnahme der folgenden zulässigen Variablen: $PSCulture, , , $PSUICulture, $True, $Falseund $Null. Benutzer dürfen nur die grundlegenden Vergleichsoperatoren (-eq, -gt, -lt) verwenden. Zuweisungsanweisungen, Eigenschaftsverweise und Methodenaufrufe sind nicht zulässig.

Der Standardwert des LanguageMode-Parameters hängt vom Wert des SessionType-Parameters ab.

  • Leer - NoLanguage
  • RestrictedRemoteServer - NoLanguage
  • Standard – FullLanguage
Type:PSLanguageMode
Accepted values:FullLanguage, RestrictedLanguage, NoLanguage, ConstrainedLanguage
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ModulesToImport

Gibt die Module und Snap-ins an, die automatisch in Sitzungen importiert werden, die die Sitzungskonfiguration verwenden.

Standardmäßig werden nur das Microsoft.PowerShell.Core-Snap-In in Remotesitzungen importiert, es sei denn, die Cmdlets sind ausgeschlossen, können Benutzer die Import-Module Module Add-PSSnapin und Snap-Ins zur Sitzung hinzufügen.

Jedes Modul oder Snap-In im Wert dieses Parameters kann durch eine Zeichenfolge oder als Hashtabelle dargestellt werden. Eine Modulzeichenfolge besteht nur aus dem Namen des Moduls oder Snap-Ins. Eine Modulhashtabelle kann ModuleName-, ModuleVersion- und GUID-Schlüssel enthalten. Es ist nur der Schlüssel "ModuleName " erforderlich.

Beispielsweise besteht der folgende Wert aus einer Zeichenfolge und einer Hashtabelle. Jede Kombination aus Zeichenfolgen und Hashtabellen, in beliebiger Reihenfolge, ist gültig.

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

Der Wert des Parameters ModulesToImport des Register-PSSessionConfiguration Cmdlets hat Vorrang vor dem Wert des ModulesToImport-Schlüssels in der Sitzungskonfigurationsdatei.

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

-MountUserDrive

Konfiguriert Sitzungen, die diese Sitzungskonfiguration verwenden, um das User: PSDrive verfügbar zu machen. Benutzerlaufwerke sind für jeden Verbindungsbenutzer eindeutig und ermöglichen Benutzern das Kopieren von Daten in und aus PowerShell-Endpunkten, auch wenn der Dateisystemanbieter nicht verfügbar gemacht wird. Benutzerlaufwerkstamms werden unter $env:LOCALAPPDATA\Microsoft\PowerShell\DriveRoots\. Für jeden Benutzer, der eine Verbindung zum Endpunkt herstellt, wird ein Ordner mit dem Namen $env:USERDOMAIN\$env:USERNAME erstellt. Für Computer in Arbeitsgruppen ist der Wert des $env:USERDOMAIN Hostnamens.

Der Inhalt des Benutzerlaufwerks wird über Benutzersitzungen hinweg beibehalten und nicht automatisch entfernt. Standardmäßig können Benutzer nur bis zu 50 MB Daten auf dem Benutzerlaufwerk speichern. Dies kann mit dem Parameter UserDriveMaximumSize angepasst werden.

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

-Path

Gibt den Pfad und Dateinamen der Sitzungskonfigurationsdatei an. Die Datei muss über eine .pssc Dateinamenerweiterung verfügen.

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

-PowerShellVersion

Gibt die Version des PowerShell-Moduls in Sitzungen an, die die Sitzungskonfiguration verwenden. Die zulässigen Werte für diesen Parameter sind: 2,0 und 3,0. Wenn Sie diesen Parameter weglassen, wird der PowerShellVersion-Schlüssel auskommentiert, und die neueste Version von PowerShell wird in der Sitzung ausgeführt.

Der Wert des PSVersion-Parameters des Register-PSSessionConfiguration Cmdlets hat Vorrang vor dem Wert des PowerShellVersion-Schlüssels in der Sitzungskonfigurationsdatei.

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

-RequiredGroups

Gibt Regeln für bedingten Zugriff für Benutzer an, die eine Verbindung mit Sitzungen herstellen, die diese Sitzungskonfiguration verwenden.

Geben Sie eine Hashtabelle ein, um Ihre Regelliste mit nur 1 Schlüsseln pro Hashtable, "And" oder "Or" zu erstellen, und legen Sie den Wert auf ein Array von Sicherheitsgruppennamen oder zusätzliche Hashtables fest.

Beispiel für das Verbinden von Benutzern als Mitglieder einer einzelnen Gruppe: @{ And = 'MyRequiredGroup' }

Beispiel für den Zugriff auf den Endpunkt: @{ Or = 'GroupA', @{ And = 'GroupB', 'GroupC' } }

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

-RoleDefinitions

Gibt die Zuordnung zwischen Sicherheitsgruppen (oder Benutzern) und Rollenfunktionen an. Benutzern wird Zugriff auf alle Rollenfunktionen gewährt, die zum Zeitpunkt der Erstellung der Sitzung für ihre Gruppenmitgliedschaft gelten.

Geben Sie eine Hashtabelle ein, in der es sich bei den Schlüsseln um den Namen der Sicherheitsgruppe handelt, und die Werte sind Hashtabellen, die eine Liste der Rollenfunktionen enthalten, die der Sicherheitsgruppe zur Verfügung gestellt werden sollen.

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

Konfiguriert Sitzungen, die diese Sitzungskonfiguration verwenden, um als das (virtuelle) Administratorkonto des Computers ausgeführt zu werden. Dieses Feld kann nicht mit dem Parameter GroupManagedServiceAccount verwendet werden.

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

-RunAsVirtualAccountGroups

Gibt die Sicherheitsgruppen an, die dem virtuellen Konto zugeordnet werden sollen, wenn eine Sitzung, die die Sitzungskonfiguration verwendet, als virtuelles Konto ausgeführt wird. Wenn sie weggelassen wird, gehört das virtuelle Konto zu Do Standard Administratoren auf allen anderen Computern Standard Controllern und Administratoren.

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

-SchemaVersion

Gibt die Version des Sitzungskonfigurationsdateischemas an. Der Standardwert ist „1.0.0.0“.

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

-ScriptsToProcess

Fügt den Sitzungen, die die Sitzungskonfiguration verwenden, die angegebenen Skripts hinzu. Geben Sie den Pfad und die Dateinamen der Skripts ein. Der Wert dieses Parameters muss ein vollständiger oder absoluter Pfad von Skriptdateinamen sein.

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

-SessionType

Gibt den Typ der Sitzung an, die mit der Sitzungskonfiguration erstellt wird. Der Standardwert lautet Default. Zulässige Werte für diesen Parameter:

  • Leer – Standardmäßig werden keine Module zur Sitzung hinzugefügt. Verwenden Sie die Parameter dieses Cmdlets, um der Sitzung Module, Funktionen, Skripts und andere Funktionen hinzuzufügen. Diese Option wurde für Sie entwickelt, um benutzerdefinierte Sitzungen zu erstellen, indem Sie ausgewählte Befehle hinzufügen. Wenn Sie einer leeren Sitzung keine Befehle hinzufügen, ist die Sitzung auf Ausdrücke beschränkt und kann womöglich nicht verwendet werden.
  • Standard : Fügt das Microsoft.PowerShell.Core-Modul der Sitzung hinzu. Dieses Modul enthält das Import-Module Cmdlet, mit dem Benutzer andere Module importieren können, es sei denn, Sie verbieten dieses Cmdlet explizit.
  • RestrictedRemoteServer. Enthält nur die folgenden Proxyfunktionen: Exit-PSSession, , Get-Command, Get-FormatData, Get-Help, Measure-Object, , und Out-DefaultSelect-Object. Verwenden Sie die Parameter dieses Cmdlets, um der Sitzung Module, Funktionen, Skripts und andere Funktionen hinzuzufügen.
Type:SessionType
Accepted values:Empty, RestrictedRemoteServer, Default
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TranscriptDirectory

Gibt das Verzeichnis an, in dem Sitzungstranskripte für Sitzungen mit dieser Sitzungskonfiguration platziert werden sollen.

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

-TypesToProcess

Fügt die angegebenen .ps1xml Typdateien zu Sitzungen hinzu, die die Sitzungskonfiguration verwenden. Geben Sie die Typdateinamen ein. Der Wert dieses Parameters muss ein vollständiger oder absoluter Pfad zum Eingeben von Dateinamen sein.

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

-UserDriveMaximumSize

Gibt die maximale Größe für Benutzerlaufwerke an, die in Sitzungen verfügbar gemacht werden, die diese Sitzungskonfiguration verwenden. Wenn sie weggelassen wird, beträgt die Standardgröße jedes User: Laufwerkstamms 50 MB.

Dieser Parameter sollte mit MountUserDrive verwendet werden.

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

-VariableDefinitions

Fügt den Sitzungen, die die Sitzungskonfiguration verwenden, die angegebenen Variablen hinzu. Geben Sie eine Hashtabelle mit den folgenden Schlüsseln ein:

  • Name - Name der Variablen. Dieser Schlüssel ist erforderlich.
  • Wert - Variabler Wert. Dieser Schlüssel ist erforderlich.

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

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

-VisibleAliases

Beschränkt die Aliase in der Sitzung auf die im Wert dieses Parameters angegebenen Aliase sowie alle Aliase, die Sie im AliasDefinition-Parameter definieren. Platzhalterzeichen werden unterstützt. Standardmäßig sind alle Aliase, die vom PowerShell-Modul definiert sind, und alle Aliase, die exportiert werden, in der Sitzung sichtbar.

Beispiel: VisibleAliases='gcm', 'gp'

Wenn ein sichtbarer Parameter in der Sitzungskonfigurationsdatei enthalten ist, entfernt PowerShell das Import-Module Cmdlet und den ipmo-Alias aus der Sitzung.

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

-VisibleCmdlets

Beschränkt die Cmdlets in der Sitzung auf jene, die im Wert dieses Parameters angegeben wurden. Wild Karte Zeichen und modulqualifizierte Namen werden unterstützt.

Standardmäßig sind alle Cmdlets, die von Modulen in der Sitzung exportiert werden, in der Sitzung sichtbar. Verwenden Sie die Parameter SessionType und ModulesToImport , um zu bestimmen, welche Module und Snap-Ins in die Sitzung importiert werden. Wenn kein Modul in ModulesToImport das Cmdlet verfügbar macht, versucht das entsprechende Modul, automatisch geladen zu werden.

Wenn ein sichtbarer Parameter in der Sitzungskonfigurationsdatei enthalten ist, entfernt PowerShell das Import-Module Cmdlet und den ipmo-Alias aus der Sitzung.

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

-VisibleExternalCommands

Beschränkt die externen Binärdateien, Skripts und Befehle, die in der Sitzung ausgeführt werden können, auf diejenigen, die im Wert dieses Parameters angegeben sind. Platzhalterzeichen werden unterstützt.

Standardmäßig sind keine externen Befehle in der Sitzung sichtbar.

Wenn ein sichtbarer Parameter in der Sitzungskonfigurationsdatei enthalten ist, entfernt PowerShell das Import-Module Cmdlet und dessen ipmo-Alias aus der Sitzung.

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

-VisibleFunctions

Beschränkt die Funktionen in der Sitzung auf diejenigen, die im Wert dieses Parameters angegeben sind, sowie alle Funktionen, die Sie im Parameter FunctionDefinition definieren. Platzhalterzeichen werden unterstützt.

Standardmäßig sind alle Funktionen, die von Modulen in der Sitzung exportiert werden, in der Sitzung sichtbar. Verwenden Sie die Parameter SessionType und ModulesToImport , um zu bestimmen, welche Module und Snap-Ins in die Sitzung importiert werden.

Wenn ein sichtbarer Parameter in der Sitzungskonfigurationsdatei enthalten ist, entfernt PowerShell das Import-Module Cmdlet und den ipmo-Alias aus der Sitzung.

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

-VisibleProviders

Beschränkt die PowerShell-Anbieter in der Sitzung auf diejenigen, die im Wert dieses Parameters angegeben sind. Platzhalterzeichen werden unterstützt.

Standardmäßig sind alle Anbieter, die von Modulen in der Sitzung exportiert werden, in der Sitzung sichtbar. Verwenden Sie die Parameter SessionType und ModulesToImport , um zu bestimmen, welche Module in die Sitzung importiert werden.

Wenn ein sichtbarer Parameter in der Sitzungskonfigurationsdatei enthalten ist, entfernt PowerShell das Import-Module Cmdlet und dessen ipmo Alias aus der Sitzung.

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

Eingaben

None

Sie können keine Objekte an dieses Cmdlet weiterleiten.

Ausgaben

None

Dieses Cmdlet gibt keine Ausgabe zurück.

Hinweise

  • Parameter wie VisibleCmdlets und VisibleProviders importieren keine Elemente in die Sitzung. Stattdessen treffen sie ihre Auswahl unter den Elementen, die in die Sitzung importiert wurden. Wenn beispielsweise der Wert des VisibleProviders-Parameters der Zertifikatanbieter ist, aber der ModulesToImport-Parameter nicht das Microsoft.PowerShell.Security-Modul angibt, das den Zertifikatanbieter enthält, ist der Zertifikatanbieter in der Sitzung nicht sichtbar.

  • New-PSSessionConfigurationFile erstellt eine Sitzungskonfigurationsdatei mit der Dateinamenerweiterung PSSC im Pfad, den Sie im Parameter "Path " angeben. Wenn Sie die Sitzungskonfigurationsdatei zum Erstellen einer Sitzungskonfiguration verwenden, kopiert das Register-PSSessionConfiguration Cmdlet die Konfigurationsdatei und speichert eine aktive Kopie der Datei im Unterverzeichnis SessionConfig des $PSHOME Verzeichnisses.

    Die ConfigFilePath-Eigenschaft der Sitzungskonfiguration enthält den vollqualifizierten Pfad der aktiven Sitzungskonfigurationsdatei. Sie können die aktive Konfigurationsdatei im $PSHOME Verzeichnis jederzeit mithilfe eines beliebigen Text-Editors ändern. Die Änderungen, die Sie vornehmen, betreffen alle neuen Sitzungen, die diese Sitzungskonfiguration verwenden, aber nicht bereits vorhandene Sitzungen.

    Verwenden Sie vor der Verwendung einer bearbeiteten Sitzungskonfigurationsdatei das Test-PSSessionConfigurationFile Cmdlet, um zu überprüfen, ob die Konfigurationsdateieinträge gültig sind.