รับ AuthenticcodeSignature (Microsoft.PowerShell.Security)
Get-AuthenticodeSignature
- โมดูล :
- Microsoft.PowerShell.Security
รับข้อมูลเกี่ยวกับลายเซ็น Authenticode สำหรับไฟล์
ไวยากรณ์
Get-AuthenticodeSignature
[-FilePath] <String[]>
[<CommonParameters>]Get-AuthenticodeSignature
-LiteralPath <String[]>
[<CommonParameters>]Get-AuthenticodeSignature
-SourcePathOrExtension <String[]>
-Content <Byte[]>
[<CommonParameters>]คำอธิบาย
cmdlet นี้ใช้ได้เฉพาะบนแพลตฟอร์ม Windows เท่านั้น
Get-AuthenticodeSignature cmdlet รับข้อมูลเกี่ยวกับลายเซ็น Authenticode สำหรับไฟล์หรือเนื้อหาไฟล์เป็นอาร์เรย์ไบต์ หากไฟล์มีทั้งแบบฝังที่เซ็นชื่อและเซ็นชื่อแค็ตตาล็อก Windows ระบบจะใช้ลายเซ็นแค็ตตาล็อก Windows หากไฟล์ไม่ได้ลงนาม ข้อมูลจะถูกดึงออกมา แต่ฟิลด์จะว่างเปล่า
ตัวอย่าง
ตัวอย่างที่ 1: รับลายเซ็น Authenticode สำหรับไฟล์
Get-AuthenticodeSignature -FilePath "C:\Test\NewScript.ps1"คำสั่งนี้รับข้อมูลเกี่ยวกับลายเซ็น Authenticode ในไฟล์ NewScript.ps1 โดยใช้พารามิเตอร์ FilePath เพื่อระบุไฟล์
ตัวอย่างที่ 2: รับลายเซ็น Authenticode สำหรับหลายไฟล์
Get-AuthenticodeSignature test.ps1, test1.ps1, sign-file.ps1, makexml.ps1คำสั่งนี้รับข้อมูลเกี่ยวกับลายเซ็น Authenticode สำหรับสี่ไฟล์ที่แสดงอยู่ในบรรทัดคำสั่ง ในตัวอย่างนี้ ชื่อของพารามิเตอร์ FilePath ซึ่งเป็นทางเลือกจะถูกละเว้น
ตัวอย่างที่ 3: รับเฉพาะลายเซ็น Authenticode ที่ถูกต้องสำหรับหลายไฟล์
Get-ChildItem $PSHOME\*.* | ForEach-object {Get-AuthenticodeSignature $_} | Where-Object {$_.status -eq "Valid"}
คำสั่งนี้แสดงรายการไฟล์ทั้งหมดในไดเร็กทอรี $PSHOME ที่มีลายเซ็น Authenticode ที่ถูกต้อง ตัวแปรอัตโนมัติ $PSHOME มีเส้นทางไปยังไดเรกทอรีการติดตั้ง PowerShell
คำสั่งใช้ Get-ChildItem cmdlet เพื่อรับไฟล์ในไดเรกทอรี $PSHOME ใช้รูปแบบ . เพื่อยกเว้นไดเร็กทอรี (แม้ว่าจะยกเว้นไฟล์ที่ไม่มีจุดในชื่อไฟล์ด้วย)
คำสั่งใช้ตัวดำเนินการไปป์ไลน์ (|) เพื่อส่งไฟล์ใน $PSHOME ไปยัง ForEach-Object cmdlet โดยที่ Get- AuthenticodeSignature ถูกเรียกสำหรับแต่ละไฟล์
ผลลัพธ์ของคำสั่ง Get-AuthenticodeSignature จะถูกส่งไปยังคำสั่ง Where-Object ที่เลือกเฉพาะออบเจ็กต์ลายเซ็นที่มีสถานะถูกต้อง
ตัวอย่างที่ 4: รับลายเซ็น Authenticode สำหรับเนื้อหาไฟล์ที่ระบุเป็นอาร์เรย์ไบต์
Get-AuthenticodeSignature -Content (Get-Content foo.ps1 -AsByteStream) -SourcePathorExtension ps1คำสั่งนี้รับข้อมูลเกี่ยวกับลายเซ็น Authenticode สำหรับเนื้อหาของไฟล์ ในตัวอย่างนี้ นามสกุลไฟล์จะถูกระบุพร้อมกับเนื้อหาของไฟล์
พารามิเตอร์
-Content
เนื้อหาของไฟล์เป็นอาร์เรย์ไบต์ซึ่งดึงลายเซ็น Authenticode ต้องใช้พารามิเตอร์นี้กับพารามิเตอร์ SourcePathOrExtension ก่อน PowerShell 7.4 เนื้อหาของไฟล์จะต้องอยู่ในรูปแบบ Unicode (UTF-16LE)
- พิมพ์ :
ไบต์[]
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
-
True
- ยอมรับอักขระตัวแทน:
False
-FilePath
ระบุเส้นทางไปยังไฟล์ที่จะตรวจสอบ อนุญาตให้ใช้สัญลักษณ์แทนได้ แต่จะต้องนำไปสู่ไฟล์เดียว ไม่จำเป็นต้องพิมพ์ FilePath ที่บรรทัดคำสั่งเมื่อคุณระบุค่าสำหรับพารามิเตอร์นี้
- พิมพ์ :
String[]
- ตำแหน่ง:
0
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
True
-LiteralPath
ระบุเส้นทางไปยังไฟล์ที่กำลังตรวจสอบ ต่างจาก FilePath ตรงที่ค่าของพารามิเตอร์ LiteralPath จะถูกใช้เหมือนกับที่พิมพ์ทุกประการ ไม่มีอักขระใดที่ถูกตีความว่าเป็นไวด์การ์ด หากเส้นทางมีอักขระ Escape ให้ใส่เครื่องหมายคำพูดเดี่ยว เครื่องหมายคำพูดเดี่ยวบอก PowerShell ไม่ให้ตีความอักขระใดๆ เป็นอักขระหลีก
- พิมพ์ :
-
String[]
- นามแฝง :
PSPath
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-SourcePathOrExtension
พาธไปยังไฟล์หรือประเภทไฟล์ของเนื้อหาที่ดึงลายเซ็น Authenticode พารามิเตอร์นี้ใช้กับ เนื้อหา โดยที่เนื้อหาไฟล์ถูกส่งผ่านเป็นอาร์เรย์ไบต์
- พิมพ์ :
String[]
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
อินพุต
สตริง
คุณสามารถไปป์สตริงที่มีเส้นทางของไฟล์ไปยัง cmdlet นี้
เอาท์พุต
ลายเซ็น
cmdlet นี้ส่งกลับวัตถุลายเซ็นสำหรับแต่ละลายเซ็นที่ได้รับ
หมายเหตุ
cmdlet นี้ใช้ได้เฉพาะบนแพลตฟอร์ม Windows เท่านั้น
สำหรับข้อมูลเกี่ยวกับลายเซ็น Authenticode ใน PowerShell ดูที่ about_Signing