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

นโยบายการดำเนินการ PowerShell: เลิกบล็อกไฟล์ | โซนความปลอดภัย


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

https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.2

นี่คือคำอธิบายอย่างเป็นทางการของนโยบายการดำเนินการ นโยบายถูกตั้งค่าเป็น RemoteSigned บนระบบปฏิบัติการ Windows Sever และตั้งค่าเป็นจำกัดบนระบบปฏิบัติการ Windows Client ในบล็อกโพสต์นี้ ฉันต้องการแสดงตัวอย่างเกี่ยวกับวิธีการค้นหาโซนความปลอดภัยของไฟล์ และ (หากจำเป็น) - ปลดบล็อกไฟล์นี้

การดาวน์โหลดไฟล์จากอินเทอร์เน็ต

มาเริ่มดาวน์โหลดไฟล์จากอินเทอร์เน็ตกันดีกว่า

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

มาทำการตรวจสอบกันเถอะ ฉันพยายามเรียกใช้สคริปต์นี้

นี่คือสิ่งที่เราคาดหวัง เราไม่สามารถเรียกใช้สคริปต์ได้

ไฟล์ C:\Users\PatrickGruenauersid-\Downloads\if_elseif.ps1 ไม่ได้เซ็นชื่อแบบดิจิทัล คุณไม่สามารถรันสคริปต์นี้บนระบบปัจจุบันได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการเรียกใช้สคริปต์และการตั้งค่านโยบายการดำเนินการ โปรดดู about_Execution_Policies ที่ https://go.microsoft.com/fwlink/?LinkID=135170

กำลังรวบรวมข้อมูลเกี่ยวกับไฟล์นี้

ตอนนี้เรามาดูไฟล์ที่ดาวน์โหลดนี้ให้ละเอียดยิ่งขึ้น

Get-Content C:\Users\PatrickGruenauersid-\Downloads\if_elseif.ps1 -Stream Zone.Identifier

ไฟล์นี้อ้างอิงถึง ZoneId=3 ZoneId3 คืออะไร?

[enum]::GetValues([System.Security.SecurityZone]) + [enum]::GetValues([System.Security.SecurityZone]).value__

Zone Id=3 คือโซนอินเทอร์เน็ต จำไว้ว่าเราเริ่มต้นที่ 0 ?

อะไรต่อไป? เราสามารถเปลี่ยนนโยบายการดำเนินการหรือปลดบล็อกไฟล์ได้

เลิกบล็อกไฟล์

โชคดีที่มี cmdlet เพื่อปลดบล็อกไฟล์

Unblock-File C:\Users\PatrickGruenauersid-\Downloads\if_elseif.ps1 -Verbose

ทำได้ดีนี่. ตอนนี้เราสามารถเรียกใช้ไฟล์ได้แล้ว

เลิกบล็อกหลายไฟล์

สุดท้ายแต่ไม่ท้ายสุด ฉันต้องการแสดงให้คุณเห็นโค้ดบางส่วนที่ทำงานเป็นกลุ่ม เรียกใช้โค้ดนี้เพื่อปลดบล็อกไฟล์ ps1 หลายไฟล์ในโฟลเดอร์ดาวน์โหลดของคุณ:

$ps1files = Get-ChildItem $home\downloads\*.ps1

foreach ($i in $ps1files) {

    Unblock-File -Path $i.FullName -Verbose
}

แค่นั้นแหละสำหรับวันนี้

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