New-PSSessionConfigurationFile

Membuat file yang menentukan konfigurasi sesi.

Sintaks

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

Deskripsi

Cmdlet ini hanya tersedia di platform Windows.

New-PSSessionConfigurationFile Cmdlet membuat file pengaturan yang menentukan konfigurasi sesi dan lingkungan sesi yang dibuat dengan menggunakan konfigurasi sesi. Untuk menggunakan file dalam konfigurasi sesi, gunakan parameter Jalur cmdlet Register-PSSessionConfiguration atau Set-PSSessionConfiguration .

File konfigurasi sesi yang New-PSSessionConfigurationFile dibuat adalah file teks yang dapat dibaca manusia yang berisi tabel hash properti dan nilai konfigurasi sesi. File memiliki .pssc ekstensi nama file.

Semua parameter New-PSSessionConfigurationFile bersifat opsional, kecuali untuk parameter Jalur . Jika Anda menghilangkan parameter, kunci yang sesuai dalam file konfigurasi sesi dikomentari, kecuali jika dicatat dalam deskripsi parameter.

Konfigurasi sesi, juga dikenal sebagai titik akhir, adalah kumpulan pengaturan di komputer lokal yang menentukan lingkungan untuk sesi PowerShell (PSSessions) yang terhubung ke komputer. Semua PSSessions menggunakan konfigurasi sesi. Untuk menentukan konfigurasi sesi tertentu, gunakan parameter ConfigurationName cmdlet yang membuat sesi, seperti New-PSSession cmdlet.

File konfigurasi sesi memudahkan untuk menentukan konfigurasi sesi tanpa skrip kompleks atau rakitan kode. Pengaturan dalam file digunakan dengan skrip startup opsional dan rakitan apa pun dalam konfigurasi sesi.

Untuk informasi selengkapnya tentang konfigurasi sesi dan file konfigurasi sesi, lihat about_Session_Configurations dan about_Session_Configuration_Files.

Cmdlet ini diperkenalkan di PowerShell 3.0.

Contoh

Contoh 1: Membuat dan menggunakan sesi NoLanguage

Contoh ini menunjukkan cara membuat dan efek menggunakan sesi tanpa bahasa.

Langkah-langkahnya meliputi:

  1. Buat file konfigurasi baru.
  2. Daftarkan konfigurasi.
  3. Buat sesi baru yang menggunakan konfigurasi.
  4. Jalankan perintah dalam sesi baru tersebut.

Untuk menjalankan perintah dalam contoh ini, mulai PowerShell dengan menggunakan opsi Jalankan sebagai administrator. Opsi ini diperlukan untuk menjalankan 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

Dalam contoh ini, Invoke-Command gagal karena LanguageMode diatur ke NoLanguage.

Contoh 2: Membuat dan menggunakan sesi RestrictedLanguage

Contoh ini menunjukkan cara membuat dan efek menggunakan sesi tanpa bahasa.

Langkah-langkahnya meliputi:

  1. Buat file konfigurasi baru.
  2. Daftarkan konfigurasi.
  3. Buat sesi baru yang menggunakan konfigurasi.
  4. Jalankan perintah dalam sesi baru tersebut.

Untuk menjalankan perintah dalam contoh ini, mulai PowerShell dengan menggunakan opsi Jalankan sebagai administrator. Opsi ini diperlukan untuk menjalankan 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

Dalam contoh ini, Invoke-Command berhasil karena LanguageMode diatur ke RestrictedLanguage.

Contoh 3: Mengubah File Konfigurasi Sesi

Contoh ini menunjukkan cara mengubah file konfigurasi sesi yang digunakan dalam sesi yang sudah ada bernama "ITTasks". Sebelumnya, sesi ini hanya memiliki modul inti dan modul ITTasks internal. Administrator ingin menambahkan modul PSScheduledJob ke sesi yang dibuat dengan menggunakan konfigurasi sesi ITTasks.

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

New-PSSessionConfigurationFile Cmdlet untuk membuat file konfigurasi sesi yang mengimpor modul yang diperlukan. Set-PSSessionConfiguration Cmdlet menggantikan file konfigurasi saat ini dengan yang baru. Konfigurasi baru ini hanya memengaruhi sesi baru yang dibuat setelah perubahan. Sesi "ITTasks" yang ada tidak terpengaruh.

Contoh 4: Mengedit File Konfigurasi Sesi

Contoh ini menunjukkan cara mengubah konfigurasi sesi dengan mengedit salinan konfigurasi sesi aktif dari file konfigurasi. Untuk mengubah salinan konfigurasi sesi file konfigurasi, Anda harus memiliki akses kontrol penuh ke file. Ini mungkin mengharuskan Anda mengubah izin pada file.

Dalam skenario ini, kita ingin menambahkan alias baru untuk Select-String cmdlet dengan mengedit file konfigurasi aktif.

Contoh kode di bawah ini melakukan langkah-langkah berikut untuk membuat perubahan ini:

  1. Dapatkan jalur file konfigurasi untuk sesi ITConfig.
  2. Pengguna mengedit file konfigurasi menggunakan Notepad.exe untuk mengubah nilai AliasDefinitions sebagai berikut: AliasDefinitions = @(@{Name='slst';Value='Select-String'}) .
  3. Uji file konfigurasi yang diperbarui.
$ITConfig = Get-PSSessionConfiguration -Name ITConfig
notepad.exe $ITConfig.ConfigFilePath
Test-PSSessionConfigurationFile -Path $ITConfig.ConfigFilePath

True

Gunakan parameter Verbose dengan Test-PSSessionConfigurationFile untuk menampilkan kesalahan apa pun yang terdeteksi. Cmdlet mengembalikan $True jika tidak ada kesalahan yang terdeteksi dalam file.

Contoh 5: Membuat file konfigurasi sampel

Contoh ini menunjukkan New-PSSessionConfigurationFile perintah yang menggunakan semua parameter cmdlet. Ini disertakan untuk menunjukkan format input yang benar untuk setiap parameter.

SampleFile.pssc yang dihasilkan ditampilkan dalam 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'

}

Parameter

-AliasDefinitions

Menambahkan alias yang ditentukan ke sesi yang menggunakan konfigurasi sesi. Masukkan tabel hash dengan kunci berikut:

  • Nama - Nama alias. Kunci ini diperlukan.
  • Nilai - Perintah yang diwakili alias. Kunci ini diperlukan.
  • Deskripsi - String teks yang menjelaskan alias. Kunci ini bersifat opsional.
  • Opsi - Opsi alias. Kunci ini bersifat opsional. Nilai defaultnya adalah Tidak Ada. Nilai yang dapat diterima untuk parameter ini adalah: None, ReadOnly, Constant, Private, atau AllScope.

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

Menentukan rakitan yang akan dimuat ke dalam sesi yang menggunakan konfigurasi sesi.

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

-Author

Menentukan penulis konfigurasi sesi atau file konfigurasi. Defaultnya adalah pengguna saat ini. Nilai parameter ini terlihat dalam file konfigurasi sesi, tetapi bukan properti objek konfigurasi sesi.

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

-CompanyName

Menentukan perusahaan yang membuat konfigurasi sesi atau file konfigurasi. Nilai defaultnya adalah Tidak Diketahui. Nilai parameter ini terlihat dalam file konfigurasi sesi, tetapi bukan properti objek konfigurasi sesi.

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

Menentukan hak cipta file konfigurasi sesi. Nilai parameter ini terlihat dalam file konfigurasi sesi, tetapi bukan properti objek konfigurasi sesi.

Jika Anda menghilangkan parameter ini, New-PSSessionConfigurationFile buat pernyataan hak cipta dengan menggunakan nilai parameter Penulis .

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

-Description

Menentukan deskripsi konfigurasi sesi atau file konfigurasi sesi. Nilai parameter ini terlihat dalam file konfigurasi sesi, tetapi bukan properti objek konfigurasi sesi.

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

-EnvironmentVariables

Menambahkan variabel lingkungan ke sesi. Masukkan tabel hash di mana kunci adalah nama variabel lingkungan dan nilainya adalah nilai variabel lingkungan.

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

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

-ExecutionPolicy

Menentukan kebijakan eksekusi sesi yang menggunakan konfigurasi sesi. Jika Anda menghilangkan parameter ini, nilai kunci ExecutionPolicy dalam file konfigurasi sesi dibatasi. Untuk informasi tentang kebijakan eksekusi di PowerShell, lihat 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

Menentukan file pemformatan (.ps1xml) yang berjalan dalam sesi yang menggunakan konfigurasi sesi. Nilai parameter ini harus berupa jalur penuh atau absolut dari file pemformatan.

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

-Full

Menunjukkan bahwa operasi ini mencakup semua kemungkinan properti konfigurasi dalam file konfigurasi sesi.

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

-FunctionDefinitions

Menambahkan fungsi yang ditentukan ke sesi yang menggunakan konfigurasi sesi. Masukkan tabel hash dengan kunci berikut:

  • Nama - Nama fungsi. Kunci ini diperlukan.
  • ScriptBlock - Isi fungsi. Masukkan blok skrip. Kunci ini diperlukan.
  • Opsi - Opsi fungsi. Kunci ini bersifat opsional. Nilai defaultnya adalah Tidak Ada. Nilai yang dapat diterima untuk parameter ini adalah: None, ReadOnly, Constant, Private, atau AllScope.

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

Mengonfigurasi sesi menggunakan konfigurasi sesi ini untuk berjalan di bawah konteks Akun Layanan Terkelola Grup yang ditentukan. Komputer tempat konfigurasi sesi ini terdaftar harus memiliki izin untuk meminta kata sandi gMSA agar sesi berhasil dibuat. Bidang ini tidak dapat digunakan dengan parameter RunAsVirtualAccount .

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

-Guid

Menentukan pengidentifikasi unik untuk file konfigurasi sesi. Jika Anda menghilangkan parameter ini, New-PSSessionConfigurationFile menghasilkan GUID untuk file tersebut. Untuk membuat GUID baru di PowerShell, ketik New-Guid.

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

-LanguageMode

Menentukan elemen bahasa PowerShell mana yang diizinkan dalam sesi yang menggunakan konfigurasi sesi ini. Anda dapat menggunakan parameter ini untuk membatasi perintah yang dapat dijalankan pengguna tertentu di komputer.

Nilai yang dapat diterima untuk parameter ini adalah:

  • FullLanguage - Semua elemen bahasa diizinkan.
  • ConstrainedLanguage - Perintah yang berisi skrip yang akan dievaluasi tidak diizinkan. Mode ConstrainedLanguage membatasi akses pengguna ke jenis, objek, atau metode Microsoft .NET Framework.
  • NoLanguage - Pengguna dapat menjalankan cmdlet dan fungsi, tetapi tidak diizinkan untuk menggunakan elemen bahasa apa pun, seperti blok skrip, variabel, atau operator.
  • RestrictedLanguage - Pengguna dapat menjalankan cmdlet dan fungsi, tetapi tidak diizinkan untuk menggunakan blok atau variabel skrip kecuali untuk variabel yang diizinkan berikut: $PSCulture, , $PSUICulture, $True$False, dan $Null. Pengguna hanya dapat menggunakan operator perbandingan dasar (-eq, -gt, -lt). Pernyataan penugasan, referensi properti, dan panggilan metode tidak diizinkan.

Nilai default parameter LanguageMode bergantung pada nilai parameter SessionType .

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

-ModulesToImport

Menentukan modul dan snap-in yang secara otomatis diimpor ke dalam sesi yang menggunakan konfigurasi sesi.

Secara default, hanya snap-in Microsoft.PowerShell.Core yang diimpor ke sesi jarak jauh, tetapi kecuali cmdlet dikecualikan, pengguna dapat menggunakan Import-Module cmdlet dan Add-PSSnapin untuk menambahkan modul dan snap-in ke sesi.

Setiap modul atau snap-in dalam nilai parameter ini dapat diwakili oleh string atau sebagai tabel hash. String modul hanya terdiri dari nama modul atau snap-in. Tabel hash modul dapat mencakup kunci ModuleName, ModuleVersion, dan GUID . Hanya kunci ModuleName yang diperlukan.

Misalnya, nilai berikut terdiri dari string dan tabel hash. Kombinasi string dan tabel hash apa pun, dalam urutan apa pun, valid.

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

Nilai parameter ModulesToImport cmdlet Register-PSSessionConfiguration lebih diutamakan daripada nilai kunci ModulesToImport dalam file konfigurasi sesi.

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

-MountUserDrive

Mengonfigurasi sesi yang menggunakan konfigurasi sesi ini untuk mengekspos User: PSDrive. Drive pengguna unik untuk setiap pengguna yang menghubungkan dan memungkinkan pengguna menyalin data ke dan dari titik akhir PowerShell bahkan jika penyedia Sistem File tidak diekspos. Akar drive pengguna dibuat di bawah $env:LOCALAPPDATA\Microsoft\PowerShell\DriveRoots\. Untuk setiap pengguna yang terhubung ke titik akhir, folder dibuat dengan nama $env:USERDOMAIN\$env:USERNAME. Untuk komputer dalam grup kerja, nilainya $env:USERDOMAIN adalah nama host.

Konten dalam drive pengguna bertahan di seluruh sesi pengguna dan tidak dihapus secara otomatis. Secara default, pengguna hanya dapat menyimpan hingga 50MB data di drive pengguna. Ini dapat dikustomisasi dengan parameter UserDriveMaximumSize .

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

-Path

Menentukan jalur dan nama file file konfigurasi sesi. File harus memiliki .pssc ekstensi nama file.

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

-PowerShellVersion

Menentukan versi mesin PowerShell dalam sesi yang menggunakan konfigurasi sesi. Nilai yang dapat diterima untuk parameter ini adalah: 2.0 dan 3.0. Jika Anda menghilangkan parameter ini, kunci PowerShellVersion dikomentari dan versi terbaru PowerShell berjalan dalam sesi.

Nilai parameter PSVersion cmdlet Register-PSSessionConfiguration lebih diutamakan daripada nilai kunci PowerShellVersion dalam file konfigurasi sesi.

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

-RequiredGroups

Menentukan aturan akses bersyar bagi pengguna yang tersambung ke sesi yang menggunakan konfigurasi sesi ini.

Masukkan hashtable untuk menyusun daftar aturan Anda hanya menggunakan 1 kunci per hashtable, 'And' atau 'Or', dan atur nilai ke array nama grup keamanan atau hashtable tambahan.

Contoh yang mengharuskan pengguna menyambungkan menjadi anggota satu grup: @{ And = 'MyRequiredGroup' }

Contoh yang mengharuskan pengguna berada dalam grup A, atau kedua grup B dan C, untuk mengakses titik akhir: @{ Or = 'GroupA', @{ And = 'GroupB', 'GroupC' } }

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

-RoleDefinitions

Menentukan pemetaan antara kelompok keamanan (atau pengguna) dan kemampuan peran. Pengguna akan diberikan akses ke semua kemampuan peran yang berlaku untuk keanggotaan grup mereka pada saat sesi dibuat.

Masukkan tabel hash di mana kunci adalah nama grup keamanan dan nilainya adalah tabel hash yang berisi daftar kemampuan peran yang harus disediakan untuk grup keamanan.

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

Mengonfigurasi sesi menggunakan konfigurasi sesi ini untuk dijalankan sebagai akun administrator komputer (virtual). Bidang ini tidak dapat digunakan dengan parameter GroupManagedServiceAccount .

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

-RunAsVirtualAccountGroups

Menentukan grup keamanan yang akan dikaitkan dengan akun virtual saat sesi yang menggunakan konfigurasi sesi dijalankan sebagai akun virtual. Jika dihilangkan, akun virtual milik Admin Domain pada pengendali domain dan Administrator di semua komputer lain.

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

-SchemaVersion

Menentukan versi skema file konfigurasi sesi. Nilai defaultnya adalah "1.0.0.0".

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

-ScriptsToProcess

Menambahkan skrip yang ditentukan ke sesi yang menggunakan konfigurasi sesi. Masukkan jalur dan nama file skrip. Nilai parameter ini harus berupa jalur lengkap atau absolut dari nama file skrip.

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

-SessionType

Menentukan jenis sesi yang dibuat dengan menggunakan konfigurasi sesi. Nilai default-nya adalah Default. Nilai yang dapat diterima untuk parameter ini adalah:

  • Kosong - Tidak ada modul yang ditambahkan ke sesi secara default. Gunakan parameter cmdlet ini untuk menambahkan modul, fungsi, skrip, dan fitur lainnya ke sesi. Opsi ini dirancang bagi Anda untuk membuat sesi kustom dengan menambahkan perintah yang dipilih. Jika Anda tidak menambahkan perintah ke sesi kosong, sesi terbatas pada ekspresi dan mungkin tidak dapat digunakan.
  • Default - Menambahkan modul Microsoft.PowerShell.Core ke sesi. Modul ini mencakup Import-Module cmdlet yang dapat digunakan pengguna untuk mengimpor modul lain kecuali Anda secara eksplisit melarang cmdlet ini.
  • RestrictedRemoteServer. Hanya mencakup fungsi proksi berikut: Exit-PSSession, , Get-Command, Get-FormatData, Get-HelpMeasure-Object, , Out-Defaultdan Select-Object. Gunakan parameter cmdlet ini untuk menambahkan modul, fungsi, skrip, dan fitur lainnya ke sesi.
Type:SessionType
Accepted values:Empty, RestrictedRemoteServer, Default
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-TranscriptDirectory

Menentukan direktori untuk menempatkan transkrip sesi untuk sesi menggunakan konfigurasi sesi ini.

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

-TypesToProcess

Menambahkan file jenis yang ditentukan .ps1xml ke sesi yang menggunakan konfigurasi sesi. Masukkan nama file jenis. Nilai parameter ini harus berupa jalur penuh atau absolut untuk mengetik nama file.

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

-UserDriveMaximumSize

Menentukan ukuran maksimum untuk drive pengguna yang diekspos dalam sesi yang menggunakan konfigurasi sesi ini. Saat dihilangkan, ukuran default setiap User: akar drive adalah 50MB.

Parameter ini harus digunakan dengan MountUserDrive.

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

-VariableDefinitions

Menambahkan variabel yang ditentukan ke sesi yang menggunakan konfigurasi sesi. Masukkan tabel hash dengan kunci berikut:

  • Nama - Nama variabel. Kunci ini diperlukan.
  • Nilai - Nilai variabel. Kunci ini diperlukan.

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

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

-VisibleAliases

Membatasi alias dalam sesi untuk yang ditentukan dalam nilai parameter ini, ditambah alias apa pun yang Anda tentukan dalam parameter AliasDefinition . Karakter kartubebas didukung. Secara default, semua alias yang ditentukan oleh mesin PowerShell dan semua alias yang diekspor modul terlihat dalam sesi.

Misalnya: VisibleAliases='gcm', 'gp'

Ketika parameter Terlihat disertakan dalam file konfigurasi sesi, PowerShell menghapus Import-Module cmdlet dan alias ipmo-nya dari sesi.

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

-VisibleCmdlets

Membatasi cmdlet dalam sesi untuk yang ditentukan dalam nilai parameter ini. Karakter kartubebas dan Nama Yang Memenuhi Syarat Modul didukung.

Secara default, semua cmdlet yang modul dalam ekspor sesi terlihat dalam sesi. Gunakan parameter SessionType dan ModulesToImport untuk menentukan modul dan snap-in mana yang diimpor ke dalam sesi. Jika tidak ada modul dalam ModulesToImport yang mengekspos cmdlet, modul yang sesuai akan mencoba untuk dimuat otomatis.

Ketika parameter Terlihat disertakan dalam file konfigurasi sesi, PowerShell menghapus Import-Module cmdlet dan alias ipmo-nya dari sesi.

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

-VisibleExternalCommands

Membatasi biner eksternal, skrip, dan perintah yang dapat dijalankan dalam sesi untuk yang ditentukan dalam nilai parameter ini. Karakter kartubebas didukung.

Secara default, tidak ada perintah eksternal yang terlihat dalam sesi.

Ketika parameter Terlihat disertakan dalam file konfigurasi sesi, PowerShell, menghapus Import-Module cmdlet dan alias ipmo-nya dari sesi.

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

-VisibleFunctions

Membatasi fungsi dalam sesi ke yang ditentukan dalam nilai parameter ini, ditambah fungsi apa pun yang Anda tentukan dalam parameter FunctionDefinition . Karakter kartubebas didukung.

Secara default, semua fungsi yang modul dalam ekspor sesi terlihat dalam sesi. Gunakan parameter SessionType dan ModulesToImport untuk menentukan modul dan snap-in mana yang diimpor ke dalam sesi.

Ketika parameter Terlihat disertakan dalam file konfigurasi sesi, PowerShell menghapus Import-Module cmdlet dan alias ipmo-nya dari sesi.

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

-VisibleProviders

Membatasi penyedia PowerShell dalam sesi dengan yang ditentukan dalam nilai parameter ini. Karakter kartubebas didukung.

Secara default, semua penyedia yang modul dalam ekspor sesi terlihat dalam sesi. Gunakan parameter SessionType dan ModulesToImport untuk menentukan modul mana yang diimpor ke dalam sesi.

Ketika parameter Terlihat disertakan dalam file konfigurasi sesi, PowerShell menghapus Import-Module cmdlet dan aliasnya ipmo dari sesi.

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

Input

None

Anda tidak dapat menyalurkan objek ke cmdlet ini.

Output

None

Cmdlet ini tidak mengembalikan output.

Catatan

Cmdlet ini hanya tersedia di platform Windows.

  • Parameter, seperti VisibleCmdlets dan VisibleProviders, tidak mengimpor item ke dalam sesi. Sebagai gantinya, mereka memilih dari antara item yang diimpor ke dalam sesi. Misalnya, jika nilai parameter VisibleProviders adalah penyedia Sertifikat, tetapi parameter ModulesToImport tidak menentukan modul Microsoft.PowerShell.Security yang berisi penyedia Sertifikat, penyedia Sertifikat tidak terlihat dalam sesi.

  • New-PSSessionConfigurationFile membuat file konfigurasi sesi yang memiliki ekstensi nama file .pssc di jalur yang Anda tentukan di parameter Jalur . Saat Anda menggunakan file konfigurasi sesi untuk membuat konfigurasi sesi, Register-PSSessionConfiguration cmdlet menyalin file konfigurasi dan menyimpan salinan aktif file di subdirektori $PSHOME SessionConfig direktori.

    Properti ConfigFilePath dari konfigurasi sesi berisi jalur yang sepenuhnya memenuhi syarat dari file konfigurasi sesi aktif. Anda dapat mengubah file konfigurasi aktif di $PSHOME direktori kapan saja menggunakan editor teks apa pun. Perubahan yang Anda buat memengaruhi semua sesi baru yang menggunakan konfigurasi sesi, tetapi bukan sesi yang ada.

    Sebelum menggunakan file konfigurasi sesi yang diedit, gunakan Test-PSSessionConfigurationFile cmdlet untuk memverifikasi bahwa entri file konfigurasi valid.