เกี่ยวกับการกำหนดค่าเซสชัน
คำอธิบายสั้น ๆ
อธิบายการกำหนดค่าเซสชัน ซึ่งกำหนดผู้ใช้ที่สามารถเชื่อมต่อกับคอมพิวเตอร์จากระยะไกลและคำสั่งที่สามารถเรียกใช้ได้
คำอธิบายยาว
การกำหนดค่าเซสชันหรือที่เรียกว่า "จุดสิ้นสุด" คือกลุ่มของการตั้งค่าบนเครื่องคอมพิวเตอร์ที่กำหนดสภาพแวดล้อมสำหรับเซสชัน 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