about_Session_Configuration_Files
Deskripsi singkat
Menjelaskan file konfigurasi sesi, yang digunakan dalam konfigurasi sesi (juga dikenal sebagai "titik akhir") untuk menentukan lingkungan sesi yang menggunakan konfigurasi sesi.
Deskripsi panjang
Informasi ini hanya berlaku untuk PowerShell yang berjalan di Windows.
"File konfigurasi sesi" adalah file teks dengan ekstensi nama file .pssc yang berisi tabel hash properti dan nilai konfigurasi sesi. Anda dapat menggunakan file konfigurasi sesi untuk mengatur properti konfigurasi sesi. Melakukannya menentukan lingkungan sesi PowerShell apa pun yang menggunakan konfigurasi sesi tersebut.
File konfigurasi sesi memudahkan untuk membuat konfigurasi sesi kustom tanpa menggunakan rakitan atau skrip C# yang kompleks.
"Konfigurasi sesi" atau "titik akhir" adalah kumpulan pengaturan komputer lokal yang menentukan hal-hal seperti itu yang dapat dibuat pengguna sesi di komputer; perintah mana yang dapat dijalankan pengguna dalam sesi tersebut; dan apakah sesi harus berjalan sebagai akun virtual istimewa. Untuk informasi selengkapnya tentang konfigurasi sesi, lihat about_Session_Configurations.
Konfigurasi sesi diperkenalkan di Windows PowerShell 2.0, dan file konfigurasi sesi diperkenalkan di Windows PowerShell 3.0. Anda harus menggunakan Windows PowerShell 3.0 untuk menyertakan file konfigurasi sesi dalam konfigurasi sesi. Namun, pengguna Windows PowerShell 2.0 (dan yang lebih baru) dipengaruhi oleh pengaturan dalam konfigurasi sesi.
Membuat Sesi Kustom
Anda dapat menyesuaikan banyak fitur sesi PowerShell dengan menentukan properti sesi dalam konfigurasi sesi. Anda dapat menyesuaikan sesi dengan menulis program C# yang menentukan runspace kustom, atau Anda dapat menggunakan file konfigurasi sesi untuk menentukan properti sesi yang dibuat dengan menggunakan konfigurasi sesi. Sebagai aturan umum, lebih mudah untuk menggunakan file konfigurasi sesi daripada menulis program C#.
Anda dapat menggunakan file konfigurasi sesi untuk membuat item seperti sesi yang berfungsi penuh untuk pengguna yang sangat tepercaya; sesi terkunci yang memungkinkan akses minimal; sesi yang dirancang khusus dan hanya berisi modul yang diperlukan untuk tugas-tugas tersebut; dan sesi di mana pengguna yang tidak memiliki hak istimewa hanya dapat menjalankan perintah tertentu sebagai akun istimewa.
Selain itu, Anda dapat mengelola apakah pengguna sesi dapat menggunakan elemen bahasa PowerShell seperti blok skrip, atau apakah mereka hanya dapat menjalankan perintah. Anda dapat mengelola versi pengguna PowerShell dapat berjalan dalam sesi; mengelola modul mana yang diimpor ke dalam sesi; dan mengelola cmdlet, fungsi, dan alias mana yang dapat dijalankan pengguna sesi. Saat menggunakan bidang RoleDefinitions, Anda dapat memberi pengguna kemampuan yang berbeda dalam sesi berdasarkan keanggotaan grup.
Untuk informasi selengkapnya tentang RoleDefinitions dan cara menentukan Nilai ini, lihat topik bantuan untuk Cmdlet New-PSRoleCapabilityFile.
Membuat File Konfigurasi Sesi
Cara term mudah untuk membuat file konfigurasi sesi adalah dengan menggunakan cmdlet New-PSSessionConfigurationFile. Cmdlet ini menghasilkan file yang menggunakan sintaks dan format yang benar, dan yang secara otomatis memverifikasi banyak nilai properti file konfigurasi.
Untuk deskripsi terperinci tentang properti yang dapat Anda atur dalam file konfigurasi sesi, lihat topik bantuan untuk cmdlet New-PSSessionConfigurationFile.
Perintah berikut membuat file konfigurasi sesi yang menggunakan nilai default. File konfigurasi yang dihasilkan hanya menggunakan nilai default karena tidak ada parameter selain parameter Jalur (yang menentukan jalur file) yang disertakan:
New-PSSessionConfigurationFile -Path .\Defaults.pssc
Untuk melihat file konfigurasi baru di editor teks default Anda, gunakan perintah berikut:
Invoke-Item -Path .\Defaults.pssc
Untuk membuat konfigurasi sesi untuk sesi di mana pengguna dapat menjalankan perintah, tetapi tidak menggunakan elemen lain dari bahasa PowerShell, ketik:
New-PSSessionConfigurationFile -LanguageMode NoLanguage
-Path .\NoLanguage.pssc
Dalam perintah sebelumnya, mengatur parameter LanguageMode ke NoLanguage mencegah pengguna melakukan hal-hal seperti menulis atau menjalankan skrip, atau menggunakan variabel.
Untuk membuat konfigurasi sesi untuk sesi di mana pengguna hanya dapat menggunakan Dapatkan cmdlet, ketik:
New-PSSessionConfigurationFile -VisibleCmdlets Get-*
-Path .\GetSessions.pssc
Dalam contoh sebelumnya, mengatur parameter VisibleCmdlets ke Get-* membatasi pengguna ke cmdlet yang memiliki nama yang dimulai dengan nilai string "Get-".
Untuk membuat konfigurasi sesi untuk sesi yang berjalan di bawah akun virtual istimewa alih-alih kredensial pengguna, ketik:
New-PSSessionConfigurationFile -RunAsVirtualAccount
-Path .\VirtualAccount.pssc
Untuk membuat konfigurasi sesi untuk sesi di mana perintah yang terlihat oleh pengguna ditentukan dalam file kemampuan peran, ketik:
New-PSSessionConfigurationFile -RoleDefinitions
@{ 'CONTOSO\User' = @{ RoleCapabilities = 'Maintenance' }}
-Path .\Maintenance.pssc
Menggunakan File Konfigurasi Sesi
Anda dapat menyertakan file konfigurasi sesi saat membuat konfigurasi sesi atau menambahkan Anda dapat menambahkan file ke konfigurasi sesi di lain waktu.
Untuk menyertakan file konfigurasi sesi saat membuat konfigurasi sesi, gunakan parameter Jalur cmdlet Register-PSSessionConfiguration.
Misalnya, perintah berikut menggunakan file NoLanguage.pssc saat membuat konfigurasi sesi NoLanguage.
Register-PSSessionConfiguration -Name NoLanguage
-Path .\NoLanguage.pssc
Ketika sesi NoLanguage baru dimulai, pengguna hanya akan memiliki akses ke perintah PowerShell.
Untuk menambahkan file konfigurasi sesi ke konfigurasi sesi yang ada, gunakan cmdlet Set-PSSessionConfiguration dan parameter Jalur. Ini memengaruhi sesi baru yang dibuat dengan konfigurasi sesi yang ditentukan. Perhatikan bahwa cmdlet Set-PSSessionConfiguration mengubah sesi itu sendiri dan tidak mengubah file konfigurasi sesi.
Misalnya, perintah berikut menambahkan file NoLanguage.pssc ke konfigurasi sesi LockedDown.
Set-PSSessionConfiguration -Name LockedDown
-Path .\NoLanguage.pssc
Saat pengguna menggunakan konfigurasi sesi LockedDown untuk membuat sesi, mereka akan dapat menjalankan cmdlet tetapi mereka tidak akan dapat membuat atau menggunakan variabel, menetapkan nilai, atau menggunakan elemen bahasa PowerShell lainnya.
Perintah berikut menggunakan cmdlet New-PSSession untuk membuat sesi di komputer Srv01 yang menggunakan konfigurasi sesi LockedDown, menyimpan referensi objek ke sesi dalam variabel $s. ACL (daftar kontrol akses) dari konfigurasi sesi menentukan siapa yang dapat menggunakannya untuk membuat sesi.
$s = New-PSSession -ComputerName Srv01
-ConfigurationName LockedDown
Karena batasan NoLanguage ditambahkan ke konfigurasi sesi LockedDown, pengguna dalam sesi LockedDown hanya akan dapat menjalankan perintah dan cmdlet PowerShell. Misalnya, dua perintah berikut menggunakan cmdlet Invoke-Command untuk menjalankan perintah dalam sesi yang dirujuk dalam variabel $s. Perintah pertama, yang menjalankan cmdlet Get-UICulture dan tidak menggunakan variabel apa pun, berhasil. Perintah kedua, yang mendapatkan nilai variabel $PSUICulture, gagal.
Invoke-Command -Session $s {Get-UICulture}
en-US
Invoke-Command -Session $s {$PSUICulture}
The syntax is not supported by this runspace. This might be
because it is in no-language mode.
+ CategoryInfo : ParserError: ($PSUICulture:String) [],
ParseException
+ FullyQualifiedErrorId : ScriptsNotAllowed
Mengedit File Konfigurasi Sesi
Semua pengaturan dalam konfigurasi sesi kecuali untuk RunAsVirtualAccount dan RunAsVirtualAccountGroups dapat dimodifikasi dengan mengedit file konfigurasi sesi yang digunakan oleh konfigurasi sesi. Untuk melakukan ini, mulailah dengan menemukan salinan aktif file konfigurasi sesi.
Saat Anda menggunakan file konfigurasi sesi dalam konfigurasi sesi, PowerShell membuat salinan aktif file konfigurasi sesi dan menyimpannya di direktori $pshome\SessionConfig di komputer lokal.
Lokasi salinan aktif file konfigurasi sesi disimpan di properti ConfigFilePath dari objek konfigurasi sesi.
Perintah berikut mendapatkan lokasi file konfigurasi sesi untuk konfigurasi sesi NoLanguage.
(Get-PSSessionConfiguration -Name NoLanguage).ConfigFilePath
Perintah tersebut mengembalikan jalur file yang mirip dengan yang berikut ini:
C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\
NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc
Anda dapat mengedit file .pssc di editor teks apa pun. Setelah file disimpan, file akan digunakan oleh sesi baru apa pun yang menggunakan konfigurasi sesi.
Jika Anda perlu mengubah pengaturan RunAsVirtualAccount atau RunAsVirtualAccountGroups, Anda harus membatalkan pendaftaran konfigurasi sesi dan mendaftarkan ulang file konfigurasi sesi yang menyertakan nilai yang diedit.
Menguji File Konfigurasi Sesi
Gunakan cmdlet Test-PSSessionConfigurationFile untuk menguji file konfigurasi sesi yang diedit secara manual. Itu penting: jika sintaks file dan nilai bukan pengguna yang valid tidak akan dapat menggunakan konfigurasi sesi untuk membuat sesi.
Misalnya, perintah berikut menguji file konfigurasi sesi aktif dari konfigurasi sesi NoLanguage.
Test-PSSessionConfigurationFile -Path C:\WINDOWS\System32\
WindowsPowerShell\v1.0\SessionConfig\
NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc
Jika sintaks dan nilai dalam file konfigurasi adalah Test-PSSessionConfigurationFile yang valid mengembalikan True. Jika sintaks dan nilai tidak valid, cmdlet mengembalikan False.
Anda dapat menggunakan Test-PSSessionConfigurationFile untuk menguji file konfigurasi sesi apa pun, termasuk file yang dibuat cmdlet New-PSSessionConfiguration. Untuk informasi selengkapnya, lihat topik bantuan untuk cmdlet Test-PSSessionConfigurationFile.
Menghapus File Konfigurasi Sesi
Anda tidak dapat menghapus file konfigurasi sesi dari konfigurasi sesi. Namun, Anda dapat mengganti file dengan file baru yang menggunakan pengaturan default. Ini secara efektif membatalkan pengaturan yang digunakan oleh file konfigurasi asli.
Untuk mengganti file konfigurasi sesi, buat file konfigurasi sesi baru yang menggunakan pengaturan default, lalu gunakan cmdlet Set-PSSessionConfiguration untuk mengganti file konfigurasi sesi kustom dengan file baru.
Misalnya, perintah berikut membuat file konfigurasi sesi Default lalu mengganti file konfigurasi sesi aktif dalam konfigurasi sesi NoLanguage.
New-PSSessionConfigurationFile -Path .\Default.pssc
Set-PSSessionConfiguration -Name NoLanguage
-Path .\Default.pssc
Setelah perintah ini selesai, konfigurasi sesi NoLanguage akan benar-benar memberikan dukungan bahasa lengkap (pengaturan default) untuk semua sesi yang dibuat dengan konfigurasi sesi tersebut.
Menampilkan Properti Konfigurasi Sesi Objek konfigurasi sesi yang mewakili konfigurasi sesi menggunakan file konfigurasi sesi memiliki properti tambahan yang memudahkan untuk menemukan dan menganalisis konfigurasi sesi. (Perhatikan bahwa nama jenis yang ditunjukkan di bawah ini menyertakan definisi tampilan yang diformat.) Anda dapat melihat properti dengan menjalankan cmdlet Get-PSSessionConfiguration dan mempipa data yang dikembalikan ke cmdlet Get-Member:
Get-PSSessionConfiguration NoLanguage | Get-Member
TypeName: Microsoft.PowerShell.Commands.PSSessionConfigurationCommands
#PSSessionConfiguration
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.O...
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Architecture NoteProperty System.String Archit...
Author NoteProperty System.String Author...
AutoRestart NoteProperty System.String AutoRe...
Capability NoteProperty System.Object[] Capa...
CompanyName NoteProperty System.String Compan...
configfilepath NoteProperty System.String config...
Copyright NoteProperty System.String Copyri...
Enabled NoteProperty System.String Enable...
ExactMatch NoteProperty System.String ExactM...
ExecutionPolicy NoteProperty System.String Execut...
Filename NoteProperty System.String Filena...
GUID NoteProperty System.String GUID=0...
ProcessIdleTimeoutSec NoteProperty System.String Proces...
IdleTimeoutms NoteProperty System.String IdleTi...
lang NoteProperty System.String lang=e...
LanguageMode NoteProperty System.String Langua...
MaxConcurrentCommandsPerShell NoteProperty System.String MaxCon...
MaxConcurrentUsers NoteProperty System.String MaxCon...
MaxIdleTimeoutms NoteProperty System.String MaxIdl...
MaxMemoryPerShellMB NoteProperty System.String MaxMem...
MaxProcessesPerShell NoteProperty System.String MaxPro...
MaxShells NoteProperty System.String MaxShells
MaxShellsPerUser NoteProperty System.String MaxShe...
Name NoteProperty System.String Name=N...
PSVersion NoteProperty System.String PSVersion
ResourceUri NoteProperty System.String Resour...
RunAsPassword NoteProperty System.String RunAsP...
RunAsUser NoteProperty System.String RunAsUser
SchemaVersion NoteProperty System.String Schema...
SDKVersion NoteProperty System.String SDKVer...
OutputBufferingMode NoteProperty System.String Output...
SessionType NoteProperty System.String Sessio...
UseSharedProcess NoteProperty System.String UseSha...
SupportsOptions NoteProperty System.String Suppor...
xmlns NoteProperty System.String xmlns=...
XmlRenderingType NoteProperty System.String XmlRen...
Permission ScriptProperty System.Object Permis...
Properti ini memudahkan pencarian konfigurasi sesi tertentu. Misalnya, Anda dapat menggunakan properti ExecutionPolicy untuk menemukan konfigurasi sesi yang mendukung sesi dengan kebijakan eksekusi RemoteSigned. Perhatikan bahwa, karena properti ExecutionPolicy hanya ada pada sesi yang menggunakan file konfigurasi sesi, perintah mungkin tidak mengembalikan semua konfigurasi sesi yang memenuhi syarat.
Get-PSSessionConfiguration |
where {$_.ExecutionPolicy -eq "RemoteSigned"}
Perintah berikut mendapatkan konfigurasi sesi di mana RunAsUser adalah administrator Exchange.
Get-PSSessionConfiguration |
where {$_.RunAsUser -eq "Exchange01\Admin01"}
Untuk melihat informasi tentang definisi peran yang terkait dengan konfigurasi, gunakan cmdlet Get-PSSessionCapability. Cmdlet ini memungkinkan Anda menentukan perintah dan lingkungan yang tersedia untuk pengguna tertentu di titik akhir tertentu.
Catatan
Konfigurasi sesi juga mendukung jenis sesi yang dikenal sebagai sesi "kosong". Jenis sesi Kosong memungkinkan Anda membuat sesi kustom dengan perintah yang dipilih. Jika Anda tidak menambahkan modul, fungsi, atau skrip ke sesi kosong, sesi terbatas pada ekspresi dan mungkin tidak berguna. Properti SessionType memberi tahu Anda apakah Anda bekerja dengan sesi kosong atau tidak.
Lihat juga
- about_Session_Configurations
- New-PSRoleCapabilityFile
- New-PSSession
- Get-PSSessionCapability
- Disable-PSSessionConfiguration
- Enable-PSSessionConfiguration
- Get-PSSessionConfiguration
- Register-PSSessionConfiguration
- Set-PSSessionConfiguration
- Unregister-PSSessionConfiguration
- New-PSSessionConfigurationFile
- Test-PSSessionConfigurationFile