Powershell ลงนามระยะไกล | เรียนรู้คุณลักษณะนโยบายที่ลงนามระยะไกล
ข้อมูลเบื้องต้นเกี่ยวกับ PowerShell Remotesigned
PowerShell มีนโยบายบางอย่างที่กำหนดสถานการณ์ที่ PowerShell สามารถเรียกใช้ไฟล์การกำหนดค่าและสคริปต์ได้ วิธีนี้จะป้องกันไม่ให้ PowerShell ทำงานหรือรันโค้ดหรือซอฟต์แวร์ที่เป็นอันตราย นโยบายการดำเนินการในเครื่องที่ใช้ Windows สามารถตั้งค่าสำหรับผู้ใช้ เครื่อง หรือเซสชันได้ นโยบายกลุ่มสามารถสร้างขึ้นสำหรับผู้ใช้กลุ่มเฉพาะได้ นโยบายการดำเนินการสำหรับระบบและผู้ใช้ปัจจุบันจะยังคงอยู่ในรีจิสทรี นโยบายการดำเนินการของเซสชันจะคงอยู่ในหน่วยความจำและจะหายไปทันทีที่ปิดเซสชัน นโยบายการดำเนินการที่ใช้ได้ ได้แก่ ลงนามทั้งหมด, บายพาส, ค่าเริ่มต้น, ลงนามระยะไกล, จำกัด, ไม่ได้กำหนด และไม่จำกัด นโยบายเริ่มต้นคือการลงนามระยะไกล บทความนี้จะกล่าวถึงรายละเอียดเกี่ยวกับนโยบายการดำเนินการที่ลงนามจากระยะไกลใน PowerShell ในหัวข้อนี้ เราจะเรียนรู้เกี่ยวกับ Powershell Remotesigned
คุณสมบัตินโยบายการดำเนินการแบบลงนามระยะไกล
นโยบายการดำเนินการที่เซ็นชื่อจากระยะไกลเป็นค่าเริ่มต้น ภายใต้นโยบายการดำเนินการนี้ คุณสามารถเรียกใช้สคริปต์ได้ จำเป็นต้องมีลายเซ็นดิจิทัลเพื่อเรียกใช้สคริปต์และไฟล์กำหนดค่าที่ดาวน์โหลดจากอินเทอร์เน็ต ไม่จำเป็นต้องมีลายเซ็นดิจิทัลเพื่อเรียกใช้ไฟล์ที่พัฒนาบนเครื่องท้องถิ่น หากต้องการเรียกใช้ไฟล์โดยไม่มีลายเซ็นดิจิทัล ต้องใช้ Unlock-File cmdlet การเรียกใช้สคริปต์โดยไม่มีลายเซ็นดิจิทัลอาจเป็นอันตรายถึงชีวิตได้
นโยบายการดำเนินการถูกตั้งค่าโดยใช้ Set-ExecutionPolicy cmdlet
ไวยากรณ์:
NAME Set-ExecutionPolicy SYNTAX Set-ExecutionPolicy [-ExecutionPolicy] {Unrestricted | RemoteSigned | AllSigned | Restricted | Default | Bypass | Undefined} [[-Scope] {Process | CurrentUser | LocalMachine | UserPolicy | MachinePolicy}] [-Force] [-WhatIf] [-Confirm] [<CommonParameters>] ALIASES NoneTo set the policy as remote signed, the following cmdlet is usedSet-ExecutionPolicy -ExecutionPolicy RemoteSigned
To see the execution policy settings the following cmdlet can be used.
Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine Unrestricted
1. ขอบเขตนโยบายการดำเนินการ
สามารถกำหนดนโยบายสำหรับขอบเขตที่กำหนดได้ ค่าขอบเขตที่อนุญาต ได้แก่ นโยบายเครื่องจักร นโยบายผู้ใช้ กระบวนการ เครื่องภายในเครื่อง และผู้ใช้ปัจจุบัน นโยบายการดำเนินการเริ่มต้นคือเครื่องภายในเครื่อง
<แข็งแกร่ง>2. นโยบายเกี่ยวกับเครื่องจักร
ใช้เพื่อใช้นโยบายกับผู้ใช้ระบบทั้งหมด
<แข็งแกร่ง>3. นโยบายผู้ใช้
มันสร้างนโยบายกลุ่มสำหรับผู้ใช้ปัจจุบัน
<แข็งแกร่ง>4. ดำเนินการ
สิ่งนี้ใช้ได้กับเซสชันปัจจุบันเท่านั้น ค่าของมันถูกเก็บไว้ในตัวแปรสภาพแวดล้อมและไม่ได้อยู่ในรีจิสทรี ตัวแปรและค่าที่เกี่ยวข้องจะถูกลบเมื่อปิดเซสชัน PowerShell
<แข็งแกร่ง>5. ผู้ใช้ปัจจุบัน
สิ่งนี้ใช้กับผู้ใช้ปัจจุบันเท่านั้น มีอยู่ในคีย์ HKEY_CURRENT_USER ในรีจิสทรี
<แข็งแกร่ง>6. เครื่องท้องถิ่น:
ใช้เพื่อกำหนดนโยบายให้กับผู้ใช้ทุกคนในระบบ มีอยู่ใน HKEY_LOCAL_MACHINE ในรีจิสทรี
การตั้งค่านโยบายสำหรับหนึ่งเซสชัน
คุณสามารถกำหนดนโยบายการดำเนินการสำหรับเซสชันและเซสชันลูกได้ สำหรับ pwsh.exe นั้นสามารถใช้ได้ สิ่งนี้ถูกเก็บไว้ในตัวแปรสภาพแวดล้อม ” $env: PSExecutionPolicyPreference ” ค่านี้จะถูกลบออกเมื่อปิดเซสชัน ภายในเซสชัน นโยบายการดำเนินการนี้จะได้รับลำดับความสำคัญที่สูงกว่าที่กำหนดไว้ในรีจิสทรี ไม่สามารถมีลำดับความสำคัญเหนือนโยบายการดำเนินการกลุ่มได้
ตัวอย่าง:
pwsh.exe -ExecutionPolicy LocalMachineอินพุต:
Write-Host "Example of remote signed policy"
Write-Host "Setting the policy to remote signed"
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Write-Host "Policy changed to remote signed"
write-host "Setting local computers from a remote"
Invoke-Command -ComputerName testserver1 -ScriptBlock { Get-ExecutionPolicy } | Set-ExecutionPolicy
Write-Host "Policy set to Local Machine"
Write-Host "Setting the scope for current user to remote signed"
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Write-Host "Policy set to remote signed for local user"
Write-Host "Removing the user policy"
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser
Write-Host "Current users execution policy removed"
Write-Host "Setting the current sessions policy to remote signed"
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
Write-Host "policy set for current session"
Write-Host "Running a script without digital signature"
Unblock-File c:\vignesh\test.ps1
Write-Host "File executed successfully"
Write-Host "Setting the policy to remote signed for local machine"
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Write-Host "policy set for local machine"
Write-Host "Setting the policy to remote signed for user group"
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope UserPolicy
Write-Host "policy set for user group"
Write-Host "Setting the policy to remote signed for all users"
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope MachinePolicy
Write-Host "policy set all users"เอาต์พุต:
คุณสมบัตินโยบายการดำเนินการที่ลงชื่อระยะไกลของ Powershell อื่นๆ
1. ลงนามทั้งหมด
ซึ่งช่วยให้สามารถเรียกใช้สคริปต์ทั้งหมดได้ แต่ต้องมีลายเซ็นดิจิทัลสำหรับสคริปต์ทั้งหมด แม้แต่สคริปต์ที่พัฒนาในเครื่องท้องถิ่นก็ตาม ระบบจะถามพร้อมท์ก่อนเรียกใช้สคริปต์
<แข็งแกร่ง>2. บายพาส
ไม่มีคำเตือนหรือข้อความแจ้งเตือนสำหรับการรันสคริปต์
<แข็งแกร่ง>3. ค่าเริ่มต้น
นโยบายเริ่มต้นสำหรับไคลเอนต์ windows ถูกจำกัด และสำหรับ windows เซิร์ฟเวอร์จะถูกลงนามจากระยะไกล
<แข็งแกร่ง>4. ถูกจำกัด
อนุญาตเฉพาะคำสั่งเท่านั้นและไม่อนุญาตให้เรียกใช้สคริปต์ ไม่อนุญาตให้ใช้ไฟล์กำหนดค่า ไฟล์ ps หรือสคริปต์โมดูลใดๆ
<แข็งแกร่ง>5. ไม่จำกัด
นโยบายสำหรับคอมพิวเตอร์ที่ไม่ใช่ Windows ไม่สามารถเปลี่ยนแปลงได้ สามารถเรียกใช้สคริปต์ที่ไม่ได้ลงนามทั้งหมดได้
คุณสมบัตินโยบายกลุ่ม
หากปิดใช้งานสคริปต์การเปิด สคริปต์จะไม่ทำงาน นี่เป็นเหมือนนโยบายการดำเนินการแบบจำกัด หากต้องการเปิดใช้งานนโยบายการดำเนินการ ต้องเปิดใช้งานนโยบายกลุ่มการดำเนินการสคริปต์ หากต้องการอนุญาตสคริปต์ทั้งหมด ควรตั้งค่านโยบายเป็นไม่จำกัด หากต้องการอนุญาตให้เรียกใช้สคริปต์ด้วยลายเซ็นดิจิทัล จะต้องลงนามจากระยะไกล หากจะเรียกใช้สคริปต์ที่ลงนามเท่านั้น นโยบายจะต้องลงนามทั้งหมด
นโยบายจะดำเนินการตามลำดับต่อไปนี้ ลำดับความสำคัญสูงสุดจะมอบให้กับนโยบายเครื่อง จากนั้นนโยบายผู้ใช้ตามด้วยกระบวนการ ผู้ใช้ปัจจุบันในขณะนั้น และสุดท้ายคือเครื่องในเครื่อง
บทสรุป - Powershell Remotesigned
ดังนั้นบทความนี้จึงกล่าวถึงรายละเอียดเกี่ยวกับนโยบายการดำเนินการที่ลงนามจากระยะไกลใน PowerShell โดยจะอธิบายคุณลักษณะของนโยบายที่ลงนามจากระยะไกลพร้อมกับไวยากรณ์ บทความนี้แสดงตัวอย่างวิธีตั้งค่านโยบายให้ลงนามจากระยะไกลสำหรับขอบเขตต่างๆ นอกจากนี้ยังให้ข้อมูลเบื้องต้นสั้นๆ เกี่ยวกับนโยบายการดำเนินการอื่นๆ ที่มีอยู่อีกด้วย หากต้องการเรียนรู้รายละเอียดเพิ่มเติม ขอแนะนำให้เขียนโปรแกรมตัวอย่างและฝึกฝน

