cmdlet เป็นคำสั่งขนาดเล็กที่ใช้ใน Windows PowerShell สิ่งแวดล้อม. รันไทม์ Windows PowerShell เรียกใช้ cmdlet เหล่านี้ภายในบริบทของสคริปต์การทำงานอัตโนมัติที่มีให้ที่บรรทัดคำสั่ง รันไทม์ของ Windows PowerShell ยังเรียกใช้โดยทางโปรแกรมผ่าน Windows PowerShell API ในโพสต์ของวันนี้ เราจะระบุสาเหตุ จากนั้นจึงจัดเตรียมวิธีแก้ปัญหาสำหรับ PowerShell cmdlets ที่ลงชื่อแล้วซึ่งทำงานช้ากว่า cmdlet ที่ไม่ได้ลงนามใน Windows
Cmdlets ดำเนินการ และโดยทั่วไปจะส่งคืนอ็อบเจ็กต์ Microsoft .NET Framework ไปยังคำสั่งถัดไปในไปป์ไลน์ เมื่อต้องการเขียน cmdlet คุณต้องใช้คลาส cmdlet ที่มาจากหนึ่งในสองคลาสพื้นฐานของ cmdlet เฉพาะ คลาสที่ได้รับจะต้อง:
- ประกาศแอตทริบิวต์ที่ระบุคลาสที่ได้รับเป็น cmdlet
- กำหนดคุณสมบัติสาธารณะที่ตกแต่งด้วยแอตทริบิวต์ที่ระบุคุณสมบัติสาธารณะเป็นพารามิเตอร์ cmdlet
- แทนที่วิธีการประมวลผลอินพุตอย่างน้อยหนึ่งวิธีเพื่อประมวลผลระเบียน
เซ็นชื่อ PowerShell cmdlet ทำงานช้ากว่า cmdlet ที่ไม่ได้ลงนาม
คุณจะสังเกตเห็นว่า cmdlet ของ Windows PowerShell ที่ลงชื่อนั้นทำงานช้ากว่า cmdlet ที่ไม่ได้ลงนาม
ปัญหานี้เกิดขึ้นเนื่องจากคอมพิวเตอร์ไม่สามารถเชื่อมต่อกับที่อยู่ต่อไปนี้สำหรับการตรวจสอบใบรับรองรายการที่เชื่อถือได้ (CTL):
https://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcertstl.cab https://ctldl.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootstl.cab
สิ่งนี้เกิดขึ้นเมื่อมีปัญหาเครือข่าย ตัวอย่างเช่น มีการตั้งค่าพร็อกซีที่ไม่ถูกต้อง
ในการแก้ไขปัญหานี้ ให้ทำดังนี้:
- กดปุ่ม Windows + R ในกล่องโต้ตอบ Run ให้พิมพ์ gpedit.msc และกด Enter เพื่อเปิด Local Group Policy Editor
- นำทางไปยังเส้นทางด้านล่าง:
การกำหนดค่าคอมพิวเตอร์> การตั้งค่า Windows> การตั้งค่าความปลอดภัย> นโยบายคีย์สาธารณะ
- ในบานหน้าต่างรายละเอียดทางด้านขวา ให้ดับเบิลคลิก การตั้งค่าการตรวจสอบเส้นทางใบรับรอง .
- เลือก การดึงเครือข่าย แท็บ
- ตรวจสอบ กำหนดการตั้งค่านโยบายเหล่านี้ ช่องทำเครื่องหมาย
- ยกเลิกการเลือก อัปเดตใบรับรองโดยอัตโนมัติในโปรแกรม Microsoft Root Certificate (แนะนำ) ช่องทำเครื่องหมาย
- คลิก สมัคร> ตกลง
คุณสามารถออกจาก Local Group Policy Editor ได้แล้ว
แค่นั้นแหละ!