Condividi tramite


New-PSSessionConfigurationFile

Crea un file che definisce una configurazione di sessione.

Sintassi

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

Descrizione

Il New-PSSessionConfigurationFile cmdlet crea un file di impostazioni che definiscono una configurazione di sessione e l'ambiente delle sessioni create usando la configurazione di sessione. Per usare il file in una configurazione di sessione, usare il parametro Path dei Register-PSSessionConfiguration cmdlet o Set-PSSessionConfiguration .

Il file di configurazione della sessione creato New-PSSessionConfigurationFile è un file di testo leggibile che contiene una tabella hash delle proprietà e dei valori di configurazione della sessione. Il file ha un'estensione .pssc del nome file.

Tutti i parametri di New-PSSessionConfigurationFile sono facoltativi, ad eccezione del parametro Path . Se si omette un parametro, la chiave corrispondente nel file di configurazione della sessione viene impostata come commento, salvo dove diversamente indicato nella descrizione del parametro.

Una configurazione di sessione, nota anche come endpoint, è una raccolta di impostazioni nel computer locale che definiscono l'ambiente per le sessioni di PowerShell (PSSession) che si connettono al computer. Tutte le sessioni PSSession usano una configurazione di sessione. Per specificare una configurazione di sessione specifica, usare il parametro ConfigurationName dei cmdlet che creano una sessione, ad esempio il New-PSSession cmdlet .

Un file di configurazione della sessione semplifica la definizione di una configurazione di sessione senza script complessi o assembly di codice. Le impostazioni nel file vengono usate con lo script di avvio facoltativo ed eventuali assembly nella configurazione della sessione.

Per altre informazioni sulle configurazioni di sessione e sui file di configurazione della sessione, vedere about_Session_Configurations e about_Session_Configuration_Files.

Questo cmdlet è stato introdotto in PowerShell 3.0. A partire da PowerShell 6.0, questo cmdlet era disponibile solo nella piattaforma Windows. PowerShell 7.3 ha reso disponibile questo cmdlet in tutte le piattaforme supportate.

Esempio

Esempio 1: Creazione e uso di una sessione NoLanguage

In questo esempio viene illustrato come creare e gli effetti dell'uso di una sessione senza linguaggio.

Questi passaggi includono:

  1. Creare un nuovo file di configurazione.
  2. Registrare la configurazione.
  3. Creare una nuova sessione che usa la configurazione.
  4. Eseguire i comandi nella nuova sessione.

Per eseguire i comandi in questo esempio, avviare PowerShell usando l'opzione Esegui come amministratore. Questa opzione è necessaria per eseguire il Register-PSSessionConfiguration cmdlet .

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 questo esempio l'oggetto Invoke-Command ha esito negativo perché LanguageMode è impostato su NoLanguage.

Esempio 2: Creazione e uso di una sessione RestrictedLanguage

In questo esempio viene illustrato come creare e gli effetti dell'uso di una sessione senza linguaggio.

Questi passaggi includono:

  1. Creare un nuovo file di configurazione.
  2. Registrare la configurazione.
  3. Creare una nuova sessione che usa la configurazione.
  4. Eseguire i comandi nella nuova sessione.

Per eseguire i comandi in questo esempio, avviare PowerShell usando l'opzione Esegui come amministratore. Questa opzione è necessaria per eseguire il Register-PSSessionConfiguration cmdlet .

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 questo esempio l'oggetto Invoke-Command ha esito positivo perché LanguageMode è impostato su RestrictedLanguage.

Esempio 3: Modifica di un file di configurazione di sessione

In questo esempio viene illustrato come modificare il file di configurazione della sessione usato in una sessione esistente denominata "ITTasks". In precedenza, queste sessioni avevano solo i moduli principali e un modulo ITTasks interno. L'amministratore vuole aggiungere il modulo PSScheduledJob alle sessioni create usando la configurazione della sessione ITTasks.

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

Cmdlet New-PSSessionConfigurationFile per creare un file di configurazione di sessione che importa i moduli necessari. Il Set-PSSessionConfiguration cmdlet sostituisce il file di configurazione corrente con quello nuovo. Questa nuova configurazione influisce solo sulle nuove sessioni create dopo la modifica. Le sessioni "ITTasks" esistenti non sono interessate.

Esempio 4: Modifica di un file di configurazione della sessione

Questo esempio illustra come modificare una configurazione di sessione modificando la copia della configurazione di sessione attiva del file di configurazione. Per modificare la copia di configurazione della sessione del file di configurazione, è necessario disporre dell'accesso completo al file. Potrebbe essere necessario modificare le autorizzazioni per il file.

In questo scenario si vuole aggiungere un nuovo alias per il Select-String cmdlet modificando il file di configurazione attivo.

Il codice di esempio seguente esegue i passaggi seguenti per apportare questa modifica:

  1. Ottenere il percorso del file di configurazione per la sessione ITConfig.
  2. L'utente modifica il file di configurazione usando Notepad.exe per modificare il valore AliasDefinitions come indicato di seguito: AliasDefinitions = @(@{Name='slst';Value='Select-String'}) .
  3. Testare il file di configurazione aggiornato.
$ITConfig = Get-PSSessionConfiguration -Name ITConfig
notepad.exe $ITConfig.ConfigFilePath
Test-PSSessionConfigurationFile -Path $ITConfig.ConfigFilePath

True

Usare il parametro Verbose con Test-PSSessionConfigurationFile per visualizzare eventuali errori rilevati. Il cmdlet restituisce $True se non vengono rilevati errori nel file.

Esempio 5: Creare un file di configurazione di esempio

In questo esempio viene illustrato un New-PSSessionConfigurationFile comando che usa tutti i parametri del cmdlet. È incluso per mostrare il formato di input corretto per ogni parametro.

Il file SampleFile.pssc generato è visualizzato nell'output.

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

}

Parametri

-AliasDefinitions

Aggiunge gli alias specificati alle sessioni che usano la configurazione di sessione. Immettere una tabella hash con le chiavi seguenti:

  • Nome: nome dell'alias. Questa chiave è obbligatoria.
  • Value: comando rappresentato dall'alias. Questa chiave è obbligatoria.
  • Descrizione: stringa di testo che descrive l'alias. Questa chiave è facoltativa.
  • Opzioni - Opzioni alias. Questa chiave è facoltativa. Il valore predefinito è None. I valori accettabili per questo parametro sono: None, ReadOnly, Constant, Private o AllScope.

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

Tipo:IDictionary[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-AssembliesToLoad

Specifica gli assembly da caricare nelle sessioni che usano la configurazione di sessione.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Author

Specifica l'autore della configurazione della sessione o del file di configurazione. Il valore predefinito è l'utente corrente. Il valore di questo parametro è visibile nel file di configurazione della sessione ma non è una proprietà dell'oggetto di configurazione della sessione.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-CompanyName

Specifica la società che ha creato la configurazione della sessione o il file di configurazione. Il valore predefinito è Unknown. Il valore di questo parametro è visibile nel file di configurazione della sessione ma non è una proprietà dell'oggetto di configurazione della sessione.

Tipo:String
Posizione:Named
Valore predefinito:Unknown
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Specifica un copyright del file di configurazione della sessione. Il valore di questo parametro è visibile nel file di configurazione della sessione ma non è una proprietà dell'oggetto di configurazione della sessione.

Se si omette questo parametro, New-PSSessionConfigurationFile genera un'istruzione copyright usando il valore del parametro Author .

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Description

Specifica una descrizione della configurazione della sessione o del file di configurazione della sessione. Il valore di questo parametro è visibile nel file di configurazione della sessione ma non è una proprietà dell'oggetto di configurazione della sessione.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-EnvironmentVariables

Aggiunge le variabili di ambiente alla sessione. Immettere una tabella hash in cui le chiavi sono i nomi delle variabili di ambiente e i valori sono i valori delle variabili di ambiente.

Ad esempio: EnvironmentVariables=@{TestShare='\\Server01\TestShare'}

Tipo:IDictionary
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ExecutionPolicy

Specifica i criteri di esecuzione delle sessioni che usano la configurazione di sessione. Se si omette questo parametro, il valore della chiave ExecutionPolicy nel file di configurazione della sessione è Limitato. Per informazioni sui criteri di esecuzione in PowerShell, vedere about_Execution_Policies.

Tipo:ExecutionPolicy
Valori accettati:Unrestricted, RemoteSigned, AllSigned, Restricted, Default, Bypass, Undefined
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-FormatsToProcess

Specifica i file di formattazione, con estensione ps1xml, che vengono eseguiti in sessioni che usano la configurazione di sessione. Il valore di questo parametro deve essere un percorso completo o assoluto dei file di formattazione.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Full

Indica che questa operazione include tutte le possibili proprietà di configurazione nel file di configurazione della sessione.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-FunctionDefinitions

Aggiunge le funzioni specificate alle sessioni che usano la configurazione di sessione. Immettere una tabella hash con le chiavi seguenti:

  • Name: nome della funzione. Questa chiave è obbligatoria.
  • ScriptBlock : corpo della funzione. Immettere un blocco di script. Questa chiave è obbligatoria.
  • Opzioni - Opzioni della funzione. Questa chiave è facoltativa. Il valore predefinito è None. I valori accettabili per questo parametro sono: None, ReadOnly, Constant, Private o AllScope.

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

Tipo:IDictionary[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-GroupManagedServiceAccount

Configura le sessioni usando questa configurazione di sessione per l'esecuzione nel contesto dell'account del servizio gestito del gruppo specificato. Il computer in cui è registrata questa configurazione di sessione deve disporre dell'autorizzazione necessaria per richiedere la password dell'account del servizio gestito del gruppo affinché le sessioni vengano create correttamente. Questo campo non può essere usato con il parametro RunAsVirtualAccount .

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Guid

Specifica un identificatore univoco per il file di configurazione della sessione. Se si omette questo parametro, New-PSSessionConfigurationFile genera un GUID per il file. Per creare un nuovo GUID in PowerShell, digitare New-Guid.

Tipo:Guid
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-LanguageMode

Determina quali elementi del linguaggio di PowerShell sono consentiti nelle sessioni che usano questa configurazione di sessione. È possibile usare questo parametro per limitare i comandi che determinati utenti possono eseguire nel computer.

I valori validi per questo parametro sono:

  • FullLanguage: sono consentiti tutti gli elementi del linguaggio.
  • ConstrainedLanguage: i comandi che contengono script da valutare non sono consentiti. La modalità ConstrainedLanguage limita l'accesso degli utenti a tipi, oggetti o metodi di Microsoft .NET Framework.
  • NoLanguage: gli utenti possono eseguire cmdlet e funzioni, ma non possono usare elementi del linguaggio, ad esempio blocchi di script, variabili o operatori.
  • RestrictedLanguage: gli utenti possono eseguire cmdlet e funzioni, ma non possono usare blocchi di script o variabili, ad eccezione delle variabili consentite seguenti: $PSCulture, $PSUICulture$True, $False, e $Null. Gli utenti possono usare solo gli operatori di confronto di base (-eq, -gt, -lt). Istruzioni di assegnazione, riferimenti a proprietà e chiamate ai metodi non sono consentiti.

Il valore predefinito del parametro LanguageMode dipende dal valore del parametro SessionType .

  • Vuoto - NoLanguage
  • RestrictedRemoteServer - NoLanguage
  • Impostazione predefinita - FullLanguage
Tipo:PSLanguageMode
Valori accettati:FullLanguage, RestrictedLanguage, NoLanguage, ConstrainedLanguage
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ModulesToImport

Specifica i moduli e gli snap-in che vengono importati automaticamente nelle sessioni che usano la configurazione di sessione.

Per impostazione predefinita, solo lo snap-in Microsoft.PowerShell.Core viene importato in sessioni remote, ma a meno che i cmdlet non vengano esclusi, gli utenti possono usare i Import-Module cmdlet e Add-PSSnapin per aggiungere moduli e snap-in alla sessione.

Ogni modulo o snap-in nel valore di questo parametro può essere rappresentato da una stringa o come una tabella hash. Una stringa di modulo è costituita solo dal nome del modulo o dello snap-in. Una tabella hash del modulo può includere chiavi ModuleName, ModuleVersion e GUID . È necessaria solo la chiave ModuleName .

Ad esempio, il valore seguente è costituito da una stringa e da una tabella hash. Qualsiasi combinazione di stringhe e tabelle hash, in qualunque ordine, è valida.

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

Il valore del parametro ModulesToImport del Register-PSSessionConfiguration cmdlet ha la precedenza sul valore della chiave ModulesToImport nel file di configurazione della sessione.

Tipo:Object[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-MountUserDrive

Configura le sessioni che usano questa configurazione di sessione per esporre PSDrive User: . Le unità utente sono univoche per ogni utente che si connette e consentono agli utenti di copiare dati da e verso gli endpoint di PowerShell anche se il provider del file system non è esposto. Le radici delle unità utente vengono create in $env:LOCALAPPDATA\Microsoft\PowerShell\DriveRoots\. Per ogni utente che si connette all'endpoint, viene creata una cartella con il nome $env:USERDOMAIN\$env:USERNAME. Per i computer nei gruppi di lavoro, il valore di $env:USERDOMAIN è il nome host.

I contenuti nell'unità utente vengono mantenuti tra le sessioni utente e non vengono rimossi automaticamente. Per impostazione predefinita, gli utenti possono archiviare fino a 50 MB di dati nell'unità utente. Questa operazione può essere personalizzata con il parametro UserDriveMaximumSize .

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Path

Specifica il percorso e il nome file del file di configurazione della sessione. Il file deve avere un'estensione di .pssc file.

Tipo:String
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-PowerShellVersion

Specifica la versione del motore di PowerShell nelle sessioni che usano la configurazione di sessione. I valori accettabili per questo parametro sono: 2.0 e 3.0. Se si omette questo parametro, la chiave di PowerShellVersion viene impostata come commento e viene eseguita la versione più recente di PowerShell nella sessione.

Il valore del parametro PSVersion del Register-PSSessionConfiguration cmdlet ha la precedenza sul valore della chiave PowerShellVersion nel file di configurazione della sessione.

Tipo:Version
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-RequiredGroups

Specifica le regole di accesso condizionale per gli utenti che si connettono alle sessioni che usano questa configurazione di sessione.

Immettere una tabella hash per comporre l'elenco di regole usando solo una chiave per ogni tabella hash, "And" o "Or" e impostare il valore su una matrice di nomi di gruppi di sicurezza o tabelle hash aggiuntive.

Esempio che richiede la connessione degli utenti come membri di un singolo gruppo: @{ And = 'MyRequiredGroup' }

Esempio che richiede agli utenti di appartenere al gruppo A o a entrambi i gruppi B e C, di accedere all'endpoint: @{ Or = 'GroupA', @{ And = 'GroupB', 'GroupC' } }

Tipo:IDictionary
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-RoleDefinitions

Specifica il mapping tra gruppi di sicurezza (o utenti) e funzionalità del ruolo. Agli utenti verrà concesso l'accesso a tutte le funzionalità del ruolo che si applicano all'appartenenza al gruppo al momento della creazione della sessione.

Immettere una tabella hash in cui le chiavi sono il nome del gruppo di sicurezza e i valori sono tabelle hash che contengono un elenco di funzionalità del ruolo che devono essere rese disponibili al gruppo di sicurezza.

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

Tipo:IDictionary
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-RunAsVirtualAccount

Configura le sessioni usando questa configurazione di sessione da eseguire come account amministratore (virtuale) del computer. Questo campo non può essere utilizzato con il parametro GroupManagedServiceAccount .

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-RunAsVirtualAccountGroups

Specifica i gruppi di sicurezza da associare all'account virtuale quando viene eseguita una sessione che usa la configurazione di sessione come account virtuale. Se omesso, l'account virtuale appartiene a Domain Admins nei controller di dominio e amministratori in tutti gli altri computer.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-SchemaVersion

Specifica la versione dello schema del file di configurazione della sessione. Il valore predefinito è "1.0.0.0".

Tipo:Version
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ScriptsToProcess

Aggiunge gli script specificati alle sessioni che usano la configurazione di sessione. Immettere il percorso e i nomi file degli script. Il valore di questo parametro deve essere un percorso completo o assoluto dei nomi di file di script.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-SessionType

Specifica il tipo di sessione che viene creato usando la configurazione di sessione. Il valore predefinito è Default. I valori validi per questo parametro sono:

  • Vuoto: nessun modulo viene aggiunto alla sessione per impostazione predefinita. Usare i parametri di questo cmdlet per aggiungere moduli, funzioni, script o altre funzionalità alla sessione. Questa opzione è progettata per creare sessioni personalizzate aggiungendo comandi selezionati. Se non vengono aggiunti comandi a una sessione vuota, la sessione è limitata alle espressioni e potrebbe non essere utilizzabile.
  • Impostazione predefinita: aggiunge il modulo Microsoft.PowerShell.Core alla sessione. Questo modulo include il Import-Module cmdlet che gli utenti possono usare per importare altri moduli, a meno che non si impedisca esplicitamente questo cmdlet.
  • RestrictedRemoteServer. Include solo le funzioni proxy seguenti: Exit-PSSession, Get-Command, Get-FormatData, Get-HelpMeasure-Object, Out-Default, e Select-Object. Usare i parametri di questo cmdlet per aggiungere moduli, funzioni, script o altre funzionalità alla sessione.
Tipo:SessionType
Valori accettati:Empty, RestrictedRemoteServer, Default
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-TranscriptDirectory

Specifica la directory in cui inserire le trascrizioni di sessione per le sessioni che usano questa configurazione di sessione.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-TypesToProcess

Aggiunge i file di tipo specificati .ps1xml alle sessioni che usano la configurazione di sessione. Immettere i nomi file di tipo. Il valore di questo parametro deve essere un percorso completo o assoluto per il tipo filenames.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-UserDriveMaximumSize

Specifica le dimensioni massime per le unità utente esposte nelle sessioni che usano questa configurazione di sessione. Se omesso, le dimensioni predefinite di ogni User: radice di unità sono 50 MB.

Questo parametro deve essere usato con MountUserDrive.

Tipo:Int64
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-VariableDefinitions

Aggiunge le variabili specificate alle sessioni che usano la configurazione di sessione. Immettere una tabella hash con le chiavi seguenti:

  • Name : nome della variabile. Questa chiave è obbligatoria.
  • Valore - Valore variabile. Questa chiave è obbligatoria.

Ad esempio: @{Name='WarningPreference';Value='SilentlyContinue'}

Tipo:Object
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-VisibleAliases

Limita gli alias nella sessione a quelli specificati nel valore di questo parametro, oltre agli alias definiti nel parametro AliasDefinition . I carattere jolly sono supportati. Per impostazione predefinita, tutti gli alias definiti dal motore di PowerShell e tutti gli alias che i moduli esportare sono visibili nella sessione.

Ad esempio: VisibleAliases='gcm', 'gp'

Quando un parametro Visible viene incluso nel file di configurazione della sessione, PowerShell rimuove il cmdlet e il Import-Module relativo alias ipmo dalla sessione.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-VisibleCmdlets

Limita i cmdlet nella sessione a quelli specificati nel valore di questo parametro. Sono supportati i caratteri jolly e i nomi completi del modulo.

Per impostazione predefinita, tutti i cmdlet esportati dai moduli nella sessione sono visibili nella sessione. Usare i parametri SessionType e ModulesToImport per determinare quali moduli e snap-in vengono importati nella sessione. Se nessun modulo in ModulesToImport espone il cmdlet, il modulo appropriato tenterà di essere caricato automaticamente.

Quando un parametro Visible viene incluso nel file di configurazione della sessione, PowerShell rimuove il cmdlet e il Import-Module relativo alias ipmo dalla sessione.

Tipo:Object[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-VisibleExternalCommands

Limita i file binari, gli script e i comandi esterni che possono essere eseguiti nella sessione a quelli specificati nel valore di questo parametro. I carattere jolly sono supportati.

Per impostazione predefinita, nella sessione non sono visibili comandi esterni.

Quando un parametro Visible viene incluso nel file di configurazione della sessione, PowerShell rimuove il cmdlet e il Import-Module relativo alias ipmo dalla sessione.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-VisibleFunctions

Limita le funzioni nella sessione a quelle specificate nel valore di questo parametro, oltre a tutte le funzioni definite nel parametro FunctionDefinition . I carattere jolly sono supportati.

Per impostazione predefinita, tutte le funzioni esportate dai moduli nella sessione sono visibili nella sessione. Usare i parametri SessionType e ModulesToImport per determinare quali moduli e snap-in vengono importati nella sessione.

Quando un parametro Visible viene incluso nel file di configurazione della sessione, PowerShell rimuove il cmdlet e il Import-Module relativo alias ipmo dalla sessione.

Tipo:Object[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-VisibleProviders

Limita i provider di PowerShell nella sessione a quelli specificati nel valore di questo parametro. I carattere jolly sono supportati.

Per impostazione predefinita, tutti i provider esportati dai moduli nella sessione sono visibili nella sessione. Usare i parametri SessionType e ModulesToImport per determinare quali moduli vengono importati nella sessione.

Quando un parametro Visible viene incluso nel file di configurazione della sessione, PowerShell rimuove il Import-Module cmdlet e il relativo ipmo alias dalla sessione.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

None

Questo cmdlet non restituisce output.

Note

  • I parametri, ad esempio VisibleCmdlets e VisibleProviders, non importano elementi nella sessione. Al contrario, effettuano una selezione tra gli elementi importati nella sessione. Ad esempio, se il valore del parametro VisibleProviders è il provider di certificati, ma il parametro ModulesToImport non specifica il modulo Microsoft.PowerShell.Security che contiene il provider di certificati, il provider di certificati non è visibile nella sessione.

  • New-PSSessionConfigurationFile crea un file di configurazione della sessione con estensione pssc nel percorso specificato nel parametro Path . Quando si usa il file di configurazione della sessione per creare una configurazione di sessione, il Register-PSSessionConfiguration cmdlet copia il file di configurazione e salva una copia attiva del file nella sottodirectory SessionConfig della $PSHOME directory.

    La proprietà ConfigFilePath della configurazione della sessione contiene il percorso completo del file di configurazione sessione attivo. È possibile modificare il file di configurazione attivo nella $PSHOME directory in qualsiasi momento usando qualsiasi editor di testo. Le modifiche apportate interessano tutte le nuove sessioni che usano la configurazione di sessione, ma non le sessioni esistenti.

    Prima di usare un file di configurazione della sessione modificato, usare il Test-PSSessionConfigurationFile cmdlet per verificare che le voci del file di configurazione siano valide.