Set-PSSessionConfiguration

Mengubah properti konfigurasi sesi terdaftar.

Sintaks

Set-PSSessionConfiguration
   [-Name] <String>
   [-ApplicationBase <String>]
   [-RunAsCredential <PSCredential>]
   [-ThreadApartmentState <ApartmentState>]
   [-ThreadOptions <PSThreadOptions>]
   [-AccessMode <PSSessionConfigurationAccessMode>]
   [-UseSharedProcess]
   [-StartupScript <String>]
   [-MaximumReceivedDataSizePerCommandMB <Double>]
   [-MaximumReceivedObjectSizeMB <Double>]
   [-SecurityDescriptorSddl <String>]
   [-ShowSecurityDescriptorUI]
   [-Force]
   [-NoServiceRestart]
   [-PSVersion <Version>]
   [-SessionTypeOption <PSSessionTypeOption>]
   [-TransportOption <PSTransportOption>]
   [-ModulesToImport <Object[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-PSSessionConfiguration
   [-Name] <String>
   [-AssemblyName] <String>
   [-ApplicationBase <String>]
   [-ConfigurationTypeName] <String>
   [-RunAsCredential <PSCredential>]
   [-ThreadApartmentState <ApartmentState>]
   [-ThreadOptions <PSThreadOptions>]
   [-AccessMode <PSSessionConfigurationAccessMode>]
   [-UseSharedProcess]
   [-StartupScript <String>]
   [-MaximumReceivedDataSizePerCommandMB <Double>]
   [-MaximumReceivedObjectSizeMB <Double>]
   [-SecurityDescriptorSddl <String>]
   [-ShowSecurityDescriptorUI]
   [-Force]
   [-NoServiceRestart]
   [-PSVersion <Version>]
   [-SessionTypeOption <PSSessionTypeOption>]
   [-TransportOption <PSTransportOption>]
   [-ModulesToImport <Object[]>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-PSSessionConfiguration
   [-Name] <String>
   [-RunAsCredential <PSCredential>]
   [-ThreadApartmentState <ApartmentState>]
   [-ThreadOptions <PSThreadOptions>]
   [-AccessMode <PSSessionConfigurationAccessMode>]
   [-UseSharedProcess]
   [-StartupScript <String>]
   [-MaximumReceivedDataSizePerCommandMB <Double>]
   [-MaximumReceivedObjectSizeMB <Double>]
   [-SecurityDescriptorSddl <String>]
   [-ShowSecurityDescriptorUI]
   [-Force]
   [-NoServiceRestart]
   [-TransportOption <PSTransportOption>]
   -Path <String>
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Deskripsi

Cmdlet ini hanya tersedia di platform Windows.

Set-PSSessionConfiguration Cmdlet mengubah properti konfigurasi sesi di komputer lokal.

Gunakan parameter Nama untuk mengidentifikasi konfigurasi sesi yang ingin Anda ubah. Gunakan parameter lain untuk menentukan nilai baru untuk properti konfigurasi sesi. Untuk menghapus nilai properti dari konfigurasi, dan menggunakan nilai default, masukkan string kosong ("") atau nilai $Null untuk parameter yang sesuai.

Mulai dari PowerShell 3.0, Anda dapat menggunakan file konfigurasi sesi untuk menentukan konfigurasi sesi. Fitur ini menyediakan metode sederhana dan dapat ditemukan untuk mengatur dan mengubah properti sesi yang menggunakan konfigurasi sesi. Untuk menentukan file konfigurasi sesi, gunakan parameter Jalur .Set-PSSessionConfiguration Untuk informasi tentang file konfigurasi sesi, lihat about_Session_Configuration_Files. Untuk informasi tentang cara membuat dan memodifikasi file konfigurasi sesi, lihat New-PSSessionConfigurationFile cmdlet .

Konfigurasi sesi menentukan lingkungan sesi jarak jauh (PSSessions) yang terhubung ke komputer lokal. Setiap PSSession menggunakan konfigurasi sesi. Konfigurasi sesi menentukan fitur PSSession, seperti modul yang tersedia dalam sesi, cmdlet yang diizinkan untuk dijalankan, mode bahasa, kuota, dan batas waktu. Pendeskripsi keamanan konfigurasi sesi menentukan siapa yang dapat menggunakan konfigurasi sesi untuk menyambungkan ke komputer lokal. Untuk informasi selengkapnya tentang konfigurasi sesi, lihat about_Session_Configurations.

Untuk melihat properti konfigurasi sesi, gunakan Get-PSSessionConfiguration cmdlet atau Penyedia WSMan. Untuk informasi selengkapnya tentang Penyedia WSMan, ketik Get-Help WSMan.

Contoh

Contoh 1: Membuat dan mengubah konfigurasi sesi

Contoh ini menunjukkan cara menambahkan dan menghapus skrip startup dari konfigurasi.

Perintah pertama membuat konfigurasi AdminShell . Perintah kedua menambahkan AdminConfig.ps1 skrip ke konfigurasi. Perubahan ini efektif ketika Anda memulai ulang WinRM. Perintah ketiga menghapus AdminConfig.ps1 skrip dari konfigurasi.

Register-PSSessionConfiguration -Name "AdminShell" -AssemblyName "C:\Shells\AdminShell.dll" -ConfigurationTypeName "AdminClass"
Set-PSSessionConfiguration -Name "AdminShell" -StartupScript "AdminConfig.ps1"
Set-PSSessionConfiguration -Name "AdminShell" -StartupScript $Null

Contoh 2: Menampilkan hasil

Contoh ini meningkatkan nilai properti MaximumReceivedObjectSizeMB menjadi 20. Perintah ini juga meminta Anda untuk memulai ulang layanan WinRM . Perubahan tidak efektif sampai layanan WinRM dimulai ulang.

Set-PSSessionConfiguration -Name "IncObj" -MaximumReceivedObjectSizeMB 20

WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\IncObj\InitializationParameters

ParamName                       ParamValue
---------                       ----------
psmaximumreceivedobjectsizemb   20

"Restart WinRM service"
WinRM service need to be restarted to make the changes effective. Do you want to run the command "restart-service winrm"?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

Contoh 3: Menampilkan hasil dengan cara yang berbeda

Dalam contoh ini, Set-PSSessionConfiguration ubah skrip startup dalam konfigurasi sesi MaintenanceShell menjadi Maintenance.ps1. Output menunjukkan perubahan dan meminta Anda untuk memulai ulang layanan WinRM . Responsnya adalah y (ya).

Get-PSSessionConfiguration mendapatkan konfigurasi sesi MaintenanceShell . Operator alur (|) mengirimkan hasil perintah ke Format-List, yang menampilkan semua properti objek konfigurasi dalam daftar. Selanjutnya, menggunakan penyedia WSMan, kami melihat parameter inisialisasi untuk konfigurasi MaintenanceShell . Get-ChildItem mendapatkan item anak di node InitializationParameters untuk plug-in MaintenanceShell . Untuk informasi selengkapnya tentang penyedia WSMan, ketik Get-Help wsman.

Set-PSSessionConfiguration -Name "MaintenanceShell" -StartupScript "C:\ps-test\Maintenance.ps1"

WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\MaintenanceShell\InitializationParameters

ParamName            ParamValue
---------            ----------
startupscript        c:\ps-test\Mainte...

"Restart WinRM service"
WinRM service need to be restarted to make the changes effective. Do you want to run
the command "restart-service winrm"?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is "Y"): y

Get-PSSessionConfiguration MaintenanceShell | Format-List -Property *

xmlns            : http://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
Name             : MaintenanceShell
Filename         : %windir%\system32\pwrshplugin.dll
SDKVersion       : 1
XmlRenderingType : text
lang             : en-US
PSVersion        : 2.0
startupscript    : c:\ps-test\Maintenance.ps1
ResourceUri      : http://schemas.microsoft.com/powershell/MaintenanceShell
SupportsOptions  : true
ExactMatch       : true
Capability       : {Shell}
Permission       :

Get-ChildItem WSMan:\localhost\Plugin\MaintenanceShell\InitializationParameters

ParamName     ParamValue
---------     ----------
PSVersion     2.0
startupscript c:\ps-test\Maintenance.ps1

Parameter

-AccessMode

Mengaktifkan dan menonaktifkan konfigurasi sesi dan menentukan apakah dapat digunakan untuk sesi jarak jauh atau lokal di komputer. Nilai yang dapat diterima untuk parameter ini adalah:

  • Disabled. Menonaktifkan konfigurasi sesi. Ini tidak dapat digunakan untuk akses jarak jauh atau lokal ke komputer. Nilai ini menetapkan properti Diaktifkan dari konfigurasi sesi (WSMan:\<ComputerName>\PlugIn\<SessionConfigurationName>\Enabled) ke False.
  • Local. Menambahkan entri Network_Deny_All ke pendeskripsi keamanan konfigurasi sesi. Pengguna komputer lokal dapat menggunakan konfigurasi sesi untuk membuat sesi loopback lokal di komputer yang sama, tetapi pengguna jarak jauh ditolak aksesnya.
  • Remote. Menghapus entri Deny_All dan Network_Deny_All dari deskriptor keamanan konfigurasi sesi. Pengguna komputer lokal dan jarak jauh dapat menggunakan konfigurasi sesi untuk membuat sesi dan menjalankan perintah pada komputer ini.

Nilai defaultnya adalah Remote.

Cmdlet lain dapat mengambil alih nilai parameter ini nanti. Misalnya, Enable-PSRemoting cmdlet memungkinkan semua konfigurasi sesi di komputer dan mengizinkan akses jarak jauh ke komputer tersebut, dan Disable-PSRemoting cmdlet hanya mengizinkan akses lokal ke semua konfigurasi sesi di komputer.

Parameter ini diperkenalkan di PowerShell 3.0.

Type:PSSessionConfigurationAccessMode
Accepted values:Disabled, Local, Remote
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationBase

Menentukan jalur file assembly (*.dll) yang ditentukan dalam nilai parameter AssemblyName .

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

-AssemblyName

Menentukan nama rakitan. Cmdlet ini membuat konfigurasi sesi berdasarkan kelas yang didefinisikan dalam perakitan.

Masukkan nama file atau jalur lengkap file assembly .dll yang menentukan konfigurasi sesi. Jika Anda hanya memasukkan nama file, Anda dapat memasukkan jalur dalam nilai parameter ApplicationBase .

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

-ConfigurationTypeName

Menentukan jenis konfigurasi sesi yang ditentukan dalam assembly dalam parameter AssemblyName . Jenis yang Anda tentukan harus menerapkan kelas System.Management.Automation.Remoting.PSSessionConfiguration .

Parameter ini diperlukan saat Anda menentukan nama rakitan.

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

-Confirm

Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Menekan semua permintaan pengguna, dan memulai ulang layanan WinRM tanpa meminta. Memulai ulang layanan membuat perubahan konfigurasi efektif.

Untuk mencegah restart dan menekan perintah hidupkan ulang, gunakan parameter NoServiceRestart .

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

-MaximumReceivedDataSizePerCommandMB

Menentukan batas jumlah data yang dapat dikirim ke komputer ini dalam satu perintah jarak jauh. Masukkan ukuran data dalam megabyte (MB). Defaultnya adalah 50.

Jika batas ukuran data ditentukan dalam jenis konfigurasi yang ditentukan dalam parameter ConfigurationTypeName , batas dalam jenis konfigurasi akan digunakan. Nilai parameter ini diabaikan.

Type:Nullable<T>[Double]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-MaximumReceivedObjectSizeMB

Menentukan batasan jumlah data yang dapat dikirim ke komputer ini dalam satu objek. Masukkan ukuran data dalam megabyte. Defaultnya adalah 10.

Jika batas ukuran objek ditentukan dalam jenis konfigurasi yang ditentukan dalam parameter ConfigurationTypeName , batas dalam jenis konfigurasi akan digunakan. Nilai parameter ini diabaikan.

Type:Nullable<T>[Double]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-ModulesToImport

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

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

Modul yang ditentukan dalam nilai parameter ini diimpor selain modul yang ditentukan dalam file konfigurasi sesi (New-PSSessionConfigurationFile). Namun, pengaturan dalam file konfigurasi sesi dapat menyembunyikan perintah yang diekspor oleh modul atau mencegah pengguna menggunakannya.

Modul yang ditentukan dalam nilai parameter ini menggantikan daftar modul yang ditentukan dengan parameter ModulesToImport cmdlet Register-PSSessionConfiguration .

Parameter ini diperkenalkan di PowerShell 3.0.

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

-Name

Menentukan nama konfigurasi sesi yang ingin Anda ubah.

Anda tidak dapat menggunakan parameter ini untuk mengubah nama konfigurasi sesi.

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

-NoServiceRestart

Tidak memulai ulang layanan WinRM , dan menekan perintah untuk memulai ulang layanan.

Secara default, ketika Anda menjalankan Set-PSSessionConfiguration, Anda diminta untuk memulai ulang layanan WinRM untuk membuat konfigurasi sesi baru efektif. Hingga layanan WinRM dimulai ulang, konfigurasi sesi baru tidak efektif.

Untuk memulai ulang layanan WinRM tanpa meminta, gunakan parameter Paksa . Untuk memulai ulang layanan WinRM secara manual, gunakan Restart-Service cmdlet .

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

-Path

Menentukan jalur file konfigurasi sesi (.pssc), seperti yang dibuat oleh New-PSSessionConfigurationFile cmdlet. Jika Anda menghilangkan jalur, defaultnya adalah direktori saat ini.

Untuk informasi tentang cara mengubah file konfigurasi sesi, lihat topik bantuan untuk New-PSSessionConfigurationFile cmdlet.

Parameter ini diperkenalkan di PowerShell 3.0.

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

-PSVersion

Menentukan versi PowerShell dalam sesi yang menggunakan konfigurasi sesi ini.

Nilai parameter ini lebih diutamakan daripada nilai kunci PowerShellVersion dalam file konfigurasi sesi.

Parameter ini diperkenalkan di PowerShell 3.0.

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

-RunAsCredential

Menentukan kredensial untuk perintah dalam sesi. Secara default, perintah berjalan dengan izin pengguna saat ini.

Parameter ini diperkenalkan di PowerShell 3.0.

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

-SecurityDescriptorSddl

Menentukan string Security Descriptor Definition Language (SDDL) yang berbeda untuk konfigurasi.

String ini menentukan izin yang diperlukan untuk menggunakan konfigurasi sesi baru. Untuk menggunakan konfigurasi sesi dalam sesi, pengguna harus memiliki setidaknya Execute(Invoke) izin untuk konfigurasi.

Untuk menggunakan deskriptor keamanan default untuk konfigurasi, masukkan string kosong ("") atau nilai $Null. Defaultnya adalah SDDL akar di WSMan: drive.

Jika deskriptor keamanan rumit, pertimbangkan untuk menggunakan parameter ShowSecurityDescriptorUI , bukan yang ini. Anda tidak dapat menggunakan kedua parameter dalam perintah yang sama.

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

-SessionTypeOption

Menentukan opsi khusus jenis untuk konfigurasi sesi. Masukkan objek opsi jenis sesi, seperti objek PSWorkflowExecutionOption yang New-PSWorkflowExecutionOption dikembalikan cmdlet.

Opsi sesi yang menggunakan konfigurasi sesi ditentukan oleh nilai opsi sesi dan opsi konfigurasi sesi. Kecuali ditentukan, opsi yang diatur dalam sesi, seperti dengan New-PSSessionOption cmdlet, lebih diutamakan daripada opsi yang diatur dalam konfigurasi sesi. Namun, nilai opsi sesi tidak boleh melebihi nilai maksimum yang ditetapkan dalam konfigurasi sesi.

Parameter ini diperkenalkan di PowerShell 3.0.

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

-ShowSecurityDescriptorUI

Ketika parameter ini digunakan, cmdlet membuka lembar properti yang membantu Anda membuat SDDL baru untuk konfigurasi sesi. Lembar properti muncul setelah Anda menjalankan Set-PSSessionConfiguration perintah lalu memulai ulang layanan WinRM .

Saat Anda mengatur izin ke konfigurasi, ingatlah bahwa pengguna harus memiliki setidaknya Execute(Invoke) izin untuk menggunakan konfigurasi sesi dalam sesi.

Anda tidak dapat menggunakan parameter SecurityDescriptorSDDL dan parameter ini dalam perintah yang sama.

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

-StartupScript

Menentukan skrip startup untuk konfigurasi. Masukkan jalur skrip PowerShell yang sepenuhnya memenuhi syarat. Skrip yang ditentukan berjalan dalam sesi baru yang menggunakan konfigurasi sesi.

Untuk menghapus skrip startup dari konfigurasi sesi, masukkan string kosong ("") atau nilai $Null.

Anda dapat menggunakan skrip startup untuk mengonfigurasi sesi pengguna lebih lanjut. Jika skrip menghasilkan kesalahan, bahkan kesalahan yang tidak mengakhiri, sesi tidak dibuat dan New-PSSession perintah gagal.

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

-ThreadApartmentState

Menentukan status apartemen modul utas yang akan digunakan. Nilai yang dapat diterima adalah:

  • Unknown
  • MTA
  • STA
Type:ApartmentState
Accepted values:STA, MTA, Unknown
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-ThreadOptions

Menentukan pengaturan opsi utas dalam konfigurasi. Pengaturan ini menentukan bagaimana utas dibuat dan digunakan saat perintah dijalankan dalam sesi. Nilai yang dapat diterima untuk parameter ini adalah:

  • Default
  • ReuseThread
  • UseCurrentThread
  • UseNewThread

Nilai defaultnya adalah UseCurrentThread.

Untuk informasi selengkapnya, lihat Enumerasi PSThreadOptions.

Type:PSThreadOptions
Accepted values:Default, UseNewThread, ReuseThread, UseCurrentThread
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-TransportOption

Menentukan opsi transportasi untuk konfigurasi sesi. Masukkan objek opsi transportasi, seperti objek WSManConfigurationOption yang New-PSTransportOption dikembalikan cmdlet.

Opsi sesi yang menggunakan konfigurasi sesi ditentukan oleh nilai opsi sesi dan opsi konfigurasi sesi. Kecuali ditentukan, opsi yang diatur dalam sesi, seperti dengan New-PSSessionOption cmdlet, lebih diutamakan daripada opsi yang diatur dalam konfigurasi sesi. Namun, nilai opsi sesi tidak boleh melebihi nilai maksimum yang ditetapkan dalam konfigurasi sesi.

Parameter ini diperkenalkan di PowerShell 3.0.

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

-UseSharedProcess

Gunakan hanya satu proses untuk menghosting semua sesi yang dimulai oleh pengguna yang sama dan menggunakan konfigurasi sesi yang sama. Secara default, setiap sesi dihosting dalam prosesnya sendiri.

Parameter ini diperkenalkan di PowerShell 3.0.

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

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Anda tidak dapat menyalurkan input ke cmdlet ini.

Output

Microsoft.WSMan.Management.WSManConfigLeafElement

Catatan

Cmdlet ini hanya tersedia di platform Windows.

Untuk menjalankan cmdlet ini, mulai PowerShell dengan menggunakan opsi Jalankan sebagai administrator .

Set-PSSessionConfiguration Cmdlet tidak mengubah nama konfigurasi dan penyedia WSMan tidak mendukung Rename-Item cmdlet . Untuk mengubah nama konfigurasi sesi, gunakan Unregister-PSSessionConfiguration cmdlet untuk menghapus konfigurasi lalu gunakan Register-PSSessionConfiguration cmdlet untuk membuat dan mendaftarkan konfigurasi sesi baru.

Anda dapat menggunakan Set-PSSessionConfiguration cmdlet untuk mengubah konfigurasi default Microsoft.PowerShell dan Microsoft.PowerShell32 sesi. Mereka tidak terlindungi. Untuk kembali ke versi asli konfigurasi sesi default, gunakan Unregister-PSSessionConfiguration cmdlet untuk menghapus konfigurasi sesi default lalu gunakan Enable-PSRemoting cmdlet untuk memulihkannya.

Properti objek konfigurasi sesi bervariasi menurut opsi yang diatur untuk konfigurasi sesi dan nilai opsi tersebut. Selain itu, konfigurasi sesi yang menggunakan file konfigurasi sesi memiliki properti tambahan.

Anda dapat menggunakan perintah di WSMan: drive untuk mengubah properti konfigurasi sesi. Namun, Anda tidak dapat menggunakan WSMan: drive di PowerShell 2.0 untuk mengubah properti konfigurasi sesi yang diperkenalkan di PowerShell 3.0, seperti OutputBufferingMode. Windows PowerShell perintah 2.0 tidak menghasilkan kesalahan, tetapi tidak efektif. Untuk mengubah properti yang diperkenalkan di PowerShell 3.0, gunakan WSMan: drive di PowerShell 3.0 atau yang lebih baru.