ค้นหาเว็บไซต์

เกี่ยวกับการกำหนดค่าเซสชัน


คำอธิบายสั้น ๆ

อธิบายการกำหนดค่าเซสชัน ซึ่งกำหนดผู้ใช้ที่สามารถเชื่อมต่อกับคอมพิวเตอร์จากระยะไกลและคำสั่งที่สามารถเรียกใช้ได้

คำอธิบายยาว

การกำหนดค่าเซสชันหรือที่เรียกว่า "จุดสิ้นสุด" คือกลุ่มของการตั้งค่าบนเครื่องคอมพิวเตอร์ที่กำหนดสภาพแวดล้อมสำหรับเซสชัน PowerShell ที่ถูกสร้างขึ้นเมื่อผู้ใช้ระยะไกลหรือผู้ใช้ภายในเครื่องเชื่อมต่อกับ PowerShell บนเครื่องคอมพิวเตอร์

ผู้ดูแลระบบคอมพิวเตอร์สามารถใช้การกำหนดค่าเซสชันเพื่อปกป้องคอมพิวเตอร์และเพื่อกำหนดสภาพแวดล้อมที่กำหนดเองสำหรับผู้ใช้ที่เชื่อมต่อกับคอมพิวเตอร์

ผู้ดูแลระบบยังสามารถใช้การกำหนดค่าเซสชันเพื่อกำหนดสิทธิ์ที่จำเป็นในการเชื่อมต่อกับคอมพิวเตอร์จากระยะไกล ตามค่าเริ่มต้น เฉพาะสมาชิกของกลุ่มผู้ดูแลระบบเท่านั้นที่มีสิทธิ์ใช้การกำหนดค่าเซสชันเพื่อเชื่อมต่อระยะไกล แต่คุณสามารถเปลี่ยนการตั้งค่าเริ่มต้นเพื่ออนุญาตให้ผู้ใช้ทั้งหมดหรือผู้ใช้ที่เลือก เชื่อมต่อกับคอมพิวเตอร์ของคุณจากระยะไกลได้

เริ่มต้นใน PowerShell 3.0 คุณสามารถใช้ไฟล์การกำหนดค่าเซสชันเพื่อกำหนดองค์ประกอบของการกำหนดค่าเซสชันได้ คุณสมบัตินี้ทำให้ง่ายต่อการปรับแต่งเซสชันโดยไม่ต้องเขียนโค้ดและค้นพบคุณสมบัติของการกำหนดค่าเซสชัน หากต้องการสร้างไฟล์การกำหนดค่าเซสชัน ให้ใช้ New-PSSessionConfiguration cmdlet สำหรับข้อมูลเพิ่มเติมเกี่ยวกับไฟล์คอนฟิกูเรชันเซสชัน โปรดดูที่ about_Session_Configuration_Files

การกำหนดค่าเซสชันเป็นคุณลักษณะของการทำงานระยะไกลของ PowerShell ที่ใช้ WSMAN จะใช้เฉพาะเมื่อคุณใช้ New-PSSession, Invoke-Command หรือ Enter-PSSession cmdlets เพื่อเชื่อมต่อกับคอมพิวเตอร์ Windows ระยะไกล

หากต้องการจัดการการกำหนดค่าเซสชันบนคอมพิวเตอร์ Windows ให้เริ่ม PowerShell ด้วยตัวเลือก เรียกใช้ในฐานะผู้ดูแลระบบ

เกี่ยวกับการกำหนดค่าเซสชัน

ทุกเซสชันของ PowerShell ใช้การกำหนดค่าเซสชัน ซึ่งรวมถึงเซสชันถาวรที่คุณสร้างโดยใช้ New-PSSession หรือ Enter-PSSession cmdlets และเซสชันชั่วคราวที่ PowerShell สร้างขึ้นเมื่อคุณใช้พารามิเตอร์ ComputerName ของ cmdlet ที่ใช้เทคโนโลยีระยะไกลที่ใช้ WS-Management เช่น Invoke-Command .

ผู้ดูแลระบบสามารถใช้การกำหนดค่าเซสชันเพื่อปกป้องทรัพยากรของคอมพิวเตอร์ และเพื่อสร้างสภาพแวดล้อมแบบกำหนดเองสำหรับผู้ใช้ที่เชื่อมต่อกับคอมพิวเตอร์ ตัวอย่างเช่น คุณสามารถใช้การกำหนดค่าเซสชันเพื่อจำกัดขนาดของวัตถุที่คอมพิวเตอร์ได้รับในเซสชัน เพื่อกำหนดโหมดภาษาของเซสชัน และเพื่อระบุ cmdlets ผู้ให้บริการ และฟังก์ชันที่มีอยู่ในเซสชัน

ด้วยการกำหนดค่าตัวบอกความปลอดภัยของการกำหนดค่าเซสชัน คุณจะกำหนดได้ว่าใครสามารถใช้การกำหนดค่าเซสชันเพื่อเชื่อมต่อกับคอมพิวเตอร์ได้ ผู้ใช้ต้องมีสิทธิ์ดำเนินการในการกำหนดค่าเซสชันเพื่อใช้ในเซสชัน หากผู้ใช้ไม่มีสิทธิ์ที่จำเป็นในการใช้การกำหนดค่าเซสชันใดๆ บนคอมพิวเตอร์ ผู้ใช้จะไม่สามารถเชื่อมต่อกับคอมพิวเตอร์จากระยะไกลได้

ตามค่าเริ่มต้น เฉพาะผู้ดูแลระบบของคอมพิวเตอร์เท่านั้นที่มีสิทธิ์ใช้การกำหนดค่าเซสชันเริ่มต้น แต่คุณสามารถเปลี่ยนตัวบอกเกี่ยวกับความปลอดภัยเพื่อให้ทุกคน ไม่มีใคร หรือเฉพาะผู้ใช้ที่เลือกเท่านั้นที่จะใช้การกำหนดค่าเซสชันบนคอมพิวเตอร์ของคุณได้

การกำหนดค่าเซสชันในตัว

PowerShell 3.0 มีการกำหนดค่าเซสชันในตัวชื่อ Microsoft.PowerShell และ Microsoft.PowerShell.Workflow บนคอมพิวเตอร์ที่ใช้ Windows เวอร์ชัน 64 บิต PowerShell ยังมี Microsoft.PowerShell32 ซึ่งเป็นการกำหนดค่าเซสชันแบบ 32 บิตอีกด้วย

การกำหนดค่าเซสชัน Microsoft.PowerShell ใช้สำหรับเซสชันตามค่าเริ่มต้น นั่นคือเมื่อคำสั่งเพื่อสร้างเซสชันไม่มีพารามิเตอร์ ConfigurationName ของ New-PSSession, Enter-PSSession หรือ Invoke-Command cmdlet

ตัวบอกเกี่ยวกับความปลอดภัยสำหรับการกำหนดค่าเซสชันเริ่มต้นอนุญาตให้เฉพาะสมาชิกของกลุ่มผู้ดูแลระบบบนเครื่องคอมพิวเตอร์ที่ใช้เท่านั้น ด้วยเหตุนี้ เฉพาะสมาชิกของกลุ่มผู้ดูแลระบบเท่านั้นที่สามารถเชื่อมต่อกับคอมพิวเตอร์จากระยะไกลได้ เว้นแต่คุณจะเปลี่ยนการตั้งค่าเริ่มต้น

คุณสามารถเปลี่ยนการกำหนดค่าเซสชันดีฟอลต์ได้โดยใช้ตัวแปรการกำหนดค่าตามความชอบ $PSSessionConfigurationName สำหรับข้อมูลเพิ่มเติม โปรดดู about_Preference_Variables

การดูการกำหนดค่าเซสชันบนคอมพิวเตอร์เฉพาะที่

หากต้องการรับการกำหนดค่าเซสชันบนเครื่องคอมพิวเตอร์ของคุณ ให้ใช้ Get-PSSessionConfiguration cmdlet

ตัวอย่างเช่น พิมพ์:

PS C:> Get-PSSessionConfiguration | Format-List -Property Name, Permission

Name       : microsoft.powershell
Permission : BUILTIN\Administrators AccessAllowed

Name       : microsoft.powershell.workflow
Permission : BUILTIN\Administrators AccessAllowed

Name       : microsoft.powershell32
Permission : BUILTIN\Administrators AccessAllowed

ออบเจ็กต์การกำหนดค่าเซสชันถูกขยายใน PowerShell 3.0 เพื่อแสดงคุณสมบัติของการกำหนดค่าเซสชันที่ได้รับการกำหนดค่าโดยใช้ไฟล์การกำหนดค่าเซสชัน

ตัวอย่างเช่น หากต้องการดูคุณสมบัติทั้งหมดของอ็อบเจ็กต์คอนฟิกูเรชันเซสชัน ให้พิมพ์:

PS C:> Get-PSSessionConfiguration | Format-List -Property *

คุณยังสามารถใช้ผู้ให้บริการ WSMan ใน PowerShell เพื่อดูการกำหนดค่าเซสชันได้ ผู้ให้บริการ WSMan สร้าง WSMAN: ไดรฟ์ในเซสชันของคุณ

ในไดรฟ์ WSMAN: การกำหนดค่าเซสชันจะอยู่ในโหนดปลั๊กอิน (การกำหนดค่าเซสชันทั้งหมดอยู่ในโหนดปลั๊กอิน แต่มีรายการในโหนดปลั๊กอินที่ไม่ใช่การกำหนดค่าเซสชัน)

ตัวอย่างเช่น หากต้องการดูการกำหนดค่าเซสชันบนเครื่องคอมพิวเตอร์ ให้พิมพ์:

PS C:> dir wsman:\localhost\plugin\microsoft*

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

Type       Keys                              Name
----       ----                              ----
Container  {Name=microsoft.powershell}       microsoft.powershell
Container  {Name=microsoft.powershell.wor... microsoft.powershell.workflow
Container  {Name=microsoft.powershell32}     microsoft.powershell32

การดูการกำหนดค่าเซสชันบนคอมพิวเตอร์ระยะไกล

หากต้องการดูการกำหนดค่าเซสชันบนคอมพิวเตอร์ระยะไกล ให้ใช้ Connect-WSMan cmdlet เพื่อเพิ่มหมายเหตุสำหรับคอมพิวเตอร์ระยะไกลไปยังไดรฟ์ WSMAN: บนเครื่องคอมพิวเตอร์ของคุณ จากนั้นใช้ไดรฟ์ WSMAN: เพื่อดูการกำหนดค่าเซสชัน

ตัวอย่างเช่น คำสั่งต่อไปนี้เพิ่มโหนดสำหรับคอมพิวเตอร์ระยะไกล Server01 ไปยัง WSMAN: ไดรฟ์บนคอมพิวเตอร์เฉพาะที่

PS C:> Connect-WSMan server01.corp.fabrikam.com

เมื่อคำสั่งเสร็จสมบูรณ์ คุณสามารถนำทางไปยังโหนดสำหรับคอมพิวเตอร์ Server01 เพื่อดูการกำหนดค่าเซสชันได้

ตัวอย่างเช่น:

PS C:> cd wsman:

PS WSMan:> dir

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01.corp.fabrikam.com                    Container

PS WSMan:> dir server01\plugin\

WSManConfig: Microsoft.WSMan.Management\WSMan::server01.corp.fabrikam.com\Pl
ugin

Type       Keys                              Name
----       ----                              ----
Container  {Name=microsoft.powershell}       microsoft.powershell
Container  {Name=microsoft.powershell.wor... microsoft.powershell.workflow
Container  {Name=microsoft.powershell32}     microsoft.powershell32

การเปลี่ยนตัวบอกความปลอดภัยของการกำหนดค่าเซสชัน

ใน Windows Server 2012 และ Windows Server รุ่นใหม่กว่า การกำหนดค่าเซสชันในตัวจะเปิดใช้งานสำหรับผู้ใช้ระยะไกลตามค่าเริ่มต้น ใน Windows เวอร์ชันอื่นๆ ที่รองรับ คุณต้องเปลี่ยนตัวบอกความปลอดภัยของการกำหนดค่าเซสชันเพื่ออนุญาตการเข้าถึงระยะไกล

หากต้องการเปิดใช้งานการเข้าถึงการกำหนดค่าเซสชันบนคอมพิวเตอร์จากระยะไกล ให้ใช้ Enable-PSRemoting cmdlet cmdlet นี้สร้างการกำหนดค่าเซสชันสองแบบ:

  • โดยมีชื่อที่กำหนดว่า: "PowerShell" + "เวอร์ชัน PowerShell ปัจจุบัน"
  • ด้วยชื่อ "PowerShell.6" ซึ่งเชื่อมโยงกับ PowerShell เวอร์ชันใดโดยเฉพาะ

นอกจากนี้ ตามค่าเริ่มต้น เฉพาะสมาชิกของกลุ่มผู้ดูแลระบบบนคอมพิวเตอร์เท่านั้นที่มีสิทธิ์ดำเนินการในการกำหนดค่าเซสชันเริ่มต้น แต่คุณสามารถเปลี่ยนตัวบอกเกี่ยวกับความปลอดภัยในการกำหนดค่าเซสชันเริ่มต้นและในการกำหนดค่าเซสชันใดๆ ที่คุณสร้างขึ้นได้

หากต้องการให้สิทธิ์ผู้ใช้รายอื่นในการเชื่อมต่อกับคอมพิวเตอร์จากระยะไกล ให้ใช้ Set-PSSessionConfiguration cmdlet เพื่อเพิ่มสิทธิ์ "ดำเนินการ" สำหรับผู้ใช้เหล่านั้นให้กับตัวบอกเกี่ยวกับความปลอดภัยของการกำหนดค่าเซสชัน Microsoft.PowerShell และ Microsoft.PowerShell32

ตัวอย่างเช่น คำสั่งต่อไปนี้จะเปิดเพจคุณสมบัติที่ให้คุณเปลี่ยนตัวบอกเกี่ยวกับความปลอดภัยสำหรับการกำหนดค่าเซสชันเริ่มต้นของ Microsoft.PowerShell

Set-PSSessionConfiguration -name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

หากต้องการปฏิเสธสิทธิ์ของทุกคนในการกำหนดค่าเซสชันทั้งหมดบนคอมพิวเตอร์ ให้ใช้ Disable-PSSessionConfiguration cmdlet ตัวอย่างเช่น คำสั่งต่อไปนี้จะปิดใช้งานการกำหนดค่าเซสชันเริ่มต้นบนคอมพิวเตอร์

PS C:> Disable-PSSessionConfiguration -Name Microsoft.PowerShell

เพื่อป้องกันไม่ให้ผู้ใช้ระยะไกลเชื่อมต่อกับคอมพิวเตอร์ แต่อนุญาตให้ผู้ใช้ภายในเครื่องเชื่อมต่อได้ ให้ใช้ Disable-PSRemoting cmdlet ปิดใช้งาน PSRemoting เพิ่มรายการ "Network_Deny_All" ในการกำหนดค่าเซสชันทั้งหมดบนคอมพิวเตอร์

PS C:> Disable-PSRemoting

หากต้องการอนุญาตให้ผู้ใช้ระยะไกลใช้การกำหนดค่าเซสชันทั้งหมดบนคอมพิวเตอร์ ให้ใช้ Enable-PSRemoting หรือ Enable-PSSessionConfiguration cmdlet ตัวอย่างเช่น คำสั่งต่อไปนี้เปิดใช้งานการเข้าถึงระยะไกลไปยังการกำหนดค่าเซสชันในตัว

PS C:> Enable-PSSessionConfiguration -name Microsoft.Power*

หากต้องการเปลี่ยนแปลงตัวบอกความปลอดภัยของการกำหนดค่าเซสชันอื่นๆ ให้ใช้ Set-PSSessionConfiguration cmdlet ใช้พารามิเตอร์ SecurityDescriptorSDDL เพื่อส่งค่าสตริง SDDL ใช้พารามิเตอร์ ShowSecurityDescriptorUI เพื่อแสดงแผ่นคุณสมบัติส่วนติดต่อผู้ใช้ที่ช่วยคุณในการสร้าง SDDL ใหม่

ตัวอย่างเช่น:

Set-PSSessionConfiguration -Name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

การสร้างการกำหนดค่าเซสชันใหม่

หากต้องการสร้างการกำหนดค่าเซสชันใหม่บนเครื่องคอมพิวเตอร์ ให้ใช้ Register-PSSessionConfiguration cmdlet หากต้องการกำหนดการกำหนดค่าเซสชันใหม่ คุณสามารถใช้แอสเซมบลี C# สคริปต์ PowerShell และพารามิเตอร์ของ Register-PSSessionConfiguration cmdlet

ตัวอย่างเช่น คำสั่งต่อไปนี้สร้างการกำหนดค่าเซสชันที่เหมือนกับการกำหนดค่าเซสชัน Microsoft.PowerShell ยกเว้นว่าจะจำกัดข้อมูลที่ได้รับจากคำสั่งระยะไกลไว้ที่ 20 เมกะไบต์ (MB) (ค่าเริ่มต้นคือ 50 MB)

Register-PSSessionConfiguration -Name NewConfig `
  -MaximumReceivedDataSizePerCommandMB 20

เมื่อคุณสร้างการกำหนดค่าเซสชัน คุณสามารถจัดการได้โดยใช้ cmdlet การกำหนดค่าเซสชันอื่นๆ และจะปรากฏในไดรฟ์ WSMAN:

สำหรับข้อมูลเพิ่มเติม โปรดดูที่ Register-PSSessionConfiguration

การลบการกำหนดค่าเซสชัน

หากต้องการลบการกำหนดค่าเซสชันออกจากเครื่องคอมพิวเตอร์ ให้ใช้ Unregister-PSSessionConfiguration cmdlet ตัวอย่างเช่น คำสั่งต่อไปนี้จะลบการกำหนดค่าเซสชัน NewConfig ออกจากคอมพิวเตอร์

PS C:> Unregister-PSSessionConfiguration -Name NewConfig

สำหรับข้อมูลเพิ่มเติม โปรดดูที่ ยกเลิกการลงทะเบียน-PSSessionConfiguration

การคืนค่าการกำหนดค่าเซสชัน

หากต้องการคืนค่าการกำหนดค่าเซสชันเริ่มต้นที่ถูกลบ (ไม่ได้ลงทะเบียน) โดยไม่ได้ตั้งใจ ให้ใช้ Enable-PSRemoting cmdlet

cmdlet การเปิดใช้งาน PSRemoting จะสร้างการกำหนดค่าเซสชันเริ่มต้นทั้งหมดที่ไม่มีอยู่บนคอมพิวเตอร์ใหม่ จะไม่เขียนทับหรือเปลี่ยนแปลงค่าคุณสมบัติของการกำหนดค่าเซสชันที่มีอยู่

หากต้องการคืนค่าคุณสมบัติดั้งเดิมของการกำหนดค่าเซสชันเริ่มต้น ให้ใช้ Unregister-PSSessionConfiguration เพื่อลบการกำหนดค่าเซสชัน จากนั้นใช้ Enable-PSRemoting cmdlet เพื่อสร้างใหม่

การเลือกการกำหนดค่าเซสชัน

หากต้องการเลือกการกำหนดค่าเซสชันเฉพาะสำหรับเซสชัน ให้ใช้พารามิเตอร์ ConfigurationName ของ New-PSSession, Enter-PSSession หรือ Intake-Command

ตัวอย่างเช่น คำสั่งนี้ใช้ New-PSSession cmdlet เพื่อเริ่ม PSSession บนคอมพิวเตอร์ Server01 คำสั่งใช้พารามิเตอร์ ConfigurationName เพื่อเลือกการกำหนดค่า WithProfile บนคอมพิวเตอร์ Server01

PS C:> New-PSSession -ComputerName Server01 -ConfigurationName WithProfile

คำสั่งนี้จะสำเร็จก็ต่อเมื่อผู้ใช้ปัจจุบันมีสิทธิ์ใช้การกำหนดค่าเซสชัน WithProfile หรือสามารถระบุข้อมูลประจำตัวของผู้ใช้ที่มีสิทธิ์ที่จำเป็น

คุณยังสามารถใช้ตัวแปรการกำหนดค่าตามความชอบ $PSSessionConfigurationName เพื่อเปลี่ยนการกำหนดค่าเซสชันเริ่มต้นบนคอมพิวเตอร์ได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรการกำหนดค่าตามความชอบ $PSSessionConfigurationName โปรดดูที่ about_Preference_Variables

คำสำคัญ

about_Endpoints about_SessionConfigurations

ดูเพิ่มเติม

  • about_Preference_Variables
  • about_PSSessions
  • เกี่ยวกับ_รีโมท
  • about_Session_Configuration_Files
  • ใหม่-PSSession
  • ปิดการใช้งาน-PSSessionConfiguration
  • เปิดใช้งาน-PSSessionConfiguration
  • รับ-PSSessionConfiguration
  • ลงทะเบียน-PSSessionConfiguration
  • ชุด-PSSessionConfiguration
  • ยกเลิกการลงทะเบียน-PSSessionConfiguration
  • ไฟล์ PSSessionConfigurationFile ใหม่
  • ทดสอบ-PSSessionConfigurationFile

บทความที่เกี่ยวข้อง