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

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
None
To set the policy as remote signed, the following cmdlet is used

Set-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 โดยจะอธิบายคุณลักษณะของนโยบายที่ลงนามจากระยะไกลพร้อมกับไวยากรณ์ บทความนี้แสดงตัวอย่างวิธีตั้งค่านโยบายให้ลงนามจากระยะไกลสำหรับขอบเขตต่างๆ นอกจากนี้ยังให้ข้อมูลเบื้องต้นสั้นๆ เกี่ยวกับนโยบายการดำเนินการอื่นๆ ที่มีอยู่อีกด้วย หากต้องการเรียนรู้รายละเอียดเพิ่มเติม ขอแนะนำให้เขียนโปรแกรมตัวอย่างและฝึกฝน

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