หาก Microsoft Windows PowerShell กระพริบขึ้นมาอยู่ตลอดโดยไม่มีเหตุผลที่ชัดเจน มันสามารถทำให้คอมพิวเตอร์ของคุณยากต่อการใช้งานและทำให้คุณกังวลว่ามีบางอย่างผิดปกติ
มีหลายเหตุผลที่ PowerShell เปิดอยู่ตลอด บางอย่างเป็น良性 ในขณะที่บางอย่างรุนแรงกว่า ปฏิบัติตามขั้นตอนการแก้ไขปัญหาเหล่านี้และเราจะค้นพบว่ากรณีของคุณเป็นอะไร
1. รันการสแกน Antivirus หรือ Malware
โปรแกรมหรือสคริปต์ที่เป็นอันตรายอาจเป็นสาเหตุของการรัน PowerShell โดยอัตโนมัติ นี่อาจเป็นไวรัส มัลแวร์ หรืออีกประเภทหนึ่งของภัยคุกคามด้านความปลอดภัยที่ใช้ PowerShell เพื่อดำเนินการอันตรายบนคอมพิวเตอร์ของคุณ
หากโปรแกรมหรือสคริปต์ที่เป็นอันตรายเป็นสาเหตุของการรัน PowerShell โดยอัตโนมัติ คุณควรดำเนินขั้นตอนต่อไปนี้เพื่อแก้ไขปัญหา:
- ตัดการเชื่อมต่อคอมพิวเตอร์จากอินเทอร์เน็ตเพื่อป้องกันไม่ให้โปรแกรมหรือสคริปต์ที่เป็นอันตรายสื่อสารกับเซิร์ฟเวอร์หรือดาวน์โหลดมัลแวร์เพิ่มเติม
- ใช้ซอฟต์แวร์ความปลอดภัยของคุณเพื่อสแกนคอมพิวเตอร์หามัลแวร์และลบภัยคุกคามที่ตรวจพบ อาจเกี่ยวข้องกับการรัน full system scan ด้วยซอฟต์แวร์ antivirus หรือใช้เครื่องมือกำจัดมัลแวร์เฉพาะ
- หลังจากลบโปรแกรมหรือสคริปต์ที่เป็นอันตรายแล้ว คุณควรรีสตาร์ทคอมพิวเตอร์และรันการสแกนอีกครั้งเพื่อให้แน่ใจว่ภัยคุกคามถูกลบออกอย่างสมบูรณ์
เมื่อคอมพิวเตอร์ของคุณสะอาดและปราศจากมัลแวร์แล้ว คุณควรเปลี่ยนรหัสผ่านหรือข้อมูลประจำตัวด้านความปลอดภัยที่อาจถูกบุกครืน และอัปเดตซอฟต์แวร์ความปลอดภัยเป็นเวอร์ชันล่าสุด
2. ตรวจสอบว่า PowerShell ถูกตั้งให้ Autorun ที่ Startup หรือไม่
PowerShell อาจไม่ทำอะไรพิเศษ แต่เพียงแค่ตั้งให้รันที่ startup เพื่อตรวจสอบว่า PowerShell ถูกตั้งให้รันที่ startup บนคอมพิวเตอร์ของคุณหรือไม่ คุณสามารถทำตามขั้นตอนเหล่านี้:
- เปิด Task Manager บนคอมพิวเตอร์โดยการกด Ctrl + Shift + Esc บนคีย์บอร์ด
- ในหน้าต่าง Task Manager คลิกที่แท็บ Startup
- ในแท็บ Startup ให้ค้นหารายการสำหรับ "Windows PowerShell" ในรายการ startup items
หากคุณเห็นรายการสำหรับ Windows PowerShell ในรายการ startup หมายความว่า PowerShell ถูกตั้งให้รันอัตโนมัติเมื่อคุณเริ่มคอมพิวเตอร์ คอลัมน์สถานะสำหรับรายการ Windows PowerShell จะระบุว่าโปรแกรมถูกเปิดใช้งานหรือปิดใช้งานที่จะรันที่ startup
หากคุณไม่เห็นรายการสำหรับ Windows PowerShell ในรายการ startup หมายความว่า PowerShell ไม่ได้ถูกตั้งให้รันที่ startup ในปัจจุบัน อย่างไรก็ตาม นี่ไม่ได้หมายความว่า PowerShell ไม่ได้รันอัตโนมัติ — มันอาจรันเป็นผลของโปรแกรม สคริปต์ หรือการตั้งค่าอื่นบนคอมพิวเตอร์ของคุณ
เพื่อสืบสวนและแก้ไขปัญหาเพิ่มเติม คุณอาจต้องตรวจสอบการตั้งค่าและการกำหนดค่าอื่นๆ บนคอมพิวเตอร์ เช่น scheduled tasks, startup scripts และ system services คุณอาจต้องการตรวจสอบโฟลเดอร์ startup ใน Windows 10 หรือ Windows 11 และเรียนรู้วิธีปิดใช้งานโปรแกรมเริ่มต้น
3. มี Task หรือ Script กำลังรันในพื้นหลัง
เพื่อตรวจสอบว่า task หรือ script ที่รันในพื้นหลังเป็นสาเหตุของการกระพริบขึ้นของ PowerShell บนคอมพิวเตอร์ของคุณ คุณสามารถทำตามขั้นตอนเหล่านี้:
- เปิด Task Scheduler โดยคลิกที่ปุ่ม Start บนแถบงานและค้นหา "Task Scheduler" หรือพิมพ์ taskschd.msc ในกล่องโต้ตอบ Run (Windows key + R) และกด Enter
- ในหน้าต่าง Task Scheduler ภายใต้ Task Scheduler Library ให้ค้นหา tasks หรือ scripts ใดๆ ที่จัดตารางไว้ให้รันเป็นระยะหรือที่ startup นี่จะถูกระบุในคอลัมน์ Triggers หากคุณพบ tasks หรือ scripts ใดๆ ที่คุณสงสัยว่าอาจเป็นสาเหตุของปัญหา คุณสามารถคลิกขวาที่ task หรือ script และเลือก Disable จากเมนู
4. PowerShell Shortcut หรือ Hotkey กำลังเปิด PowerShell
PowerShell อาจกระพริบขึ้นเพราะมันเชื่อมโยงกับ hotkey หรือ shortcut ที่คุณทริกเกอร์โดยไม่ได้ตั้งใจ หากคุณมีโปรแกรมอย่าง WinHotKey ติดตั้ง มันอาจมีการกำหนดคีย์คอมโบแบบนั้น
คุณยังสามารถคลิกขวาที่ shortcut ใดๆ และตรวจสอบคุณสมบัติเพื่อดูว่ามันกล่าวถึง PowerShell เป็นส่วนหนึ่งของพารามิเตอร์เริ่มต้นหรือไม่ นี่เป็นสัญญาณว่า shortcut อาจเปิด PowerShell อาจจะเพื่อรันสคริปต์ และแค่ไม่ปิดมันอีกครั้ง
5. หนึ่งในแอปของคุณกำลังใช้ PowerShell
แอปของบุคคลที่สามอาจใช้ PowerShell สำหรับบางฟังก์ชัน นี่คือขั้นตอนเฉพาะที่คุณสามารถปฏิบัติตามเพื่อตรวจสอบว่านี่เป็นกรณีหรือไม่:
- ตรวจสอบเอกสารของแอป: แอปหลายตัวรวมเอกสารหรือไฟล์ช่วยเหลือที่อธิบายคุณสมบัติและความสามารถของแอป ตรวจสอบดูว่ามันกล่าวถึง PowerShell หรือไม่
- ค้นหาการอ้างอิง PowerShell ในการตั้งค่าหรือตัวเลือกการกำหนดค่าของแอป: แอปหลายตัวรวมตัวเลือกที่ช่วยให้คุณปรับแต่งพฤติกรรมของแอป คุณสามารถตรวจสอบการตั้งค่าเหล่านี้เพื่อดูว่ามีการอ้างอิง PowerShell หรือไม่
- ใช้แอปและมองหาคำสั่ง PowerShell ที่กำลังถูกดำเนินการ: หากคุณไม่สามารถหาการอ้างอิง PowerShell ในเอกสารหรือการตั้งค่าของแอปได้ ลองรันแอปและใช้มันเพื่อทำงานที่คุณสนใจ สังเกตข้อความหรือพรอมต์ที่ปรากฏบนหน้าจอ เพื่อดูว่ามันอ้างอิง PowerShell หรือไม่
ไม่ใช่ทุกแอปที่ใช้ PowerShell จะทำให้ข้อเท็จจริงนี้ชัดเจน บางแอปอาจใช้ PowerShell ภายในโดยไม่เปิดเผยต่อผู้ใช้ ในกรณีเหล่านี้ คุณอาจไม่สามารถกำหนดได้ว่าแอปใช้ PowerShell โดยไม่มีข้อมูลรายละเอียดมากขึ้น หรือโดยใช้เครื่องมือและเทคนิคขั้นสูง หากคุณมีเวลา คุณสามารถลอง uninstall และ reinstall แอปเพื่อติดตามว่าตัวไหนอาจเป็นผู้รับผิดชอบ
ในบางกรณี คุณสามารถดูได้ว่ามีอะไรกำลังรันใน PowerShell เมื่อมันกระพริบขึ้น และรายละเอียดของเอาต์พุตนั้นก็สามารถเป็น सुराग ได้ว่ามีแอปพลิเคชันใดเกี่ยวข้องกับปัญหา
6. ข้อขัดแย้งของฮาร์ดแวร์และซอฟต์แวร์
ข้อขัดแย้งของฮาร์ดแวร์และซอฟต์แวร์สามารถทำให้ PowerShell กระพริบขึ้นได้หลายวิธี วิธีแก้ไขที่เป็นไปได้สำหรับการแก้ไขข้อขัดแย้งเหล่านี้รวมถึง:
- อัปเดตไดรเวอร์ของคุณ: ไดรเวอร์ที่ล้าสมัยหรือไม่ถูกต้องสามารถทำให้เกิดข้อขัดแย้งกับ PowerShell และซอฟต์แวร์อื่น คุณสามารถลองอัปเดตไดรเวอร์เป็นเวอร์ชันล่าสุดเพื่อดูว่านี่แก้ไขปัญหาหรือไม่
- ตรวจสอบอัปเดตซอฟต์แวร์หรือ Windows: การอัปเดตซอฟต์แวร์มักสามารถแก้ไขข้อขัดแย้งได้โดยการแก้ไขบั๊กหรือปัญหาความเข้ากันได้ คุณสามารถตรวจสอบอัปเดตสำหรับระบบปฏิบัติการและซอฟต์แวร์อื่นๆ ที่คุณใช้เพื่อดูว่ามีอัปเดตที่พร้อมใช้งานซึ่งอาจช่วยแก้ไขปัญหา
- รีสตาร์ทคอมพิวเตอร์: บางครั้ง การรีสตาร์ทคอมพิวเตอร์สามารถช่วยแก้ไขข้อขัดแย้งได้โดยการรีเซ็ตระบบและล้างไฟล์ชั่วคราวหรือข้อมูลที่อาจก่อให้เกิดปัญหา
- ใช้เครื่องมือ System File Checker: เครื่องมือ System File Checker (SFC) เป็นยูทิลิตี้ในตัวที่สามารถสแกนระบบของคุณเพื่อหาไฟล์ที่เสียหายหรือหายไปและซ่อมแซมมัน คุณสามารถใช้คำสั่ง sfc /scannow ใน Command Prompt (CMD) เพื่อพยายามแก้ไขปัญหาที่อาจก่อให้เกิดข้อขัดแย้งกับ PowerShell คุณจะต้องรันมันในฐานะ system administrator
- ใช้เครื่องมือ DISM: เครื่องมือ Deployment Image Servicing and Management (DISM) เป็นยูทิลิตี้ในตัวอีกตัวที่สามารถช่วยแก้ไขปัญหากับระบบของคุณ คุณสามารถใช้ DISM tool เพื่อสแกนระบบของคุณเพื่อหาปัญหาและพยายามซ่อมแซมมัน
7. คุณมี Loop ใน PowerShell Script!
หากคุณมี loop ในสคริปต์ PowerShell ที่ทำให้ PowerShell กระพริบขึ้นตลอดเวลา คุณสามารถลองขั้นตอนต่อไปนี้เพื่อแก้ไขปัญหา:
- เปิดสคริปต์ใน text editor: ขั้นตอนแรกคือเปิดสคริปต์ใน text editor เพื่อให้คุณเห็นโค้ดและทำการเปลี่ยนแปลงได้ คุณสามารถใช้ text editor ใดๆ ที่คุณสะดวก เช่น Notepad, TextEdit หรือ editor ขั้นสูงอย่าง Notepad++
- ค้นหา loop ในสคริปต์: เมื่อคุณเปิดสคริปต์ใน text editor แล้ว คุณต้องค้นหา loop ที่ก่อให้เกิดปัญหา Loop คือบล็อกโค้ดที่ถูกดำเนินการซ้ำๆ จนกว่าเงื่อนไขบางอย่างจะเป็นจริง ในสคริปต์ของคุณ loop อาจถูกทำเครื่องหมายด้วยคำสำคัญอย่าง "for", "while", หรือ "do"
- แก้ไข loop เพื่อแก้ปัญหา: เมื่อคุณค้นหา loop ในสคริปต์แล้ว คุณต้องแก้ไขมันเพื่อแก้ปัญหา อาจเกี่ยวข้องกับการเปลี่ยนเงื่อนไขที่กำหนดว่า loop ควรหยุดดำเนินการเมื่อไหร่ หรือเพิ่มโค้ดเพิ่มเติมเพื่อ break ออกจาก loop ภายใต้เงื่อนไขบางอย่าง
- บันทึกสคริปต์และทดสอบ: หลังจากที่คุณทำการเปลี่ยนแปลงที่จำเป็นต่อสคริปต์แล้ว ให้บันทึกไฟล์และรันสคริปต์อีกครั้งเพื่อดูว่าปัญหาได้รับการแก้ไขหรือไม่ หากปัญหายังคงอยู่ คุณอาจต้องดำเนินการแก้ไข loop ต่อจนกว่าจะทำงานตามที่ตั้งใจไว้
หากคุณไม่ใช่ผู้เขียนสคริปต์และไม่รู้อะไรเกี่ยวกับ PowerShell scripting จะดีที่สุดหากคุณมองหาวิธีแก้ไขเฉพาะสำหรับสคริปต์นั้นๆ หรือติดต่อผู้เขียนสคริปต์
8. ปิดใช้งาน Windows PowerShell
หากทุกอย่างล้มเหลว ทำไมไม่直接就ปิดใช้งาน PowerShell.exe? นี่คือวิธี:
- เปิดเมนู Start และพิมพ์ Windows Features ลงในกล่องค้นหา
- เลือก Turn Windows features on or off
- ในหน้าต่าง Windows Features ให้เลื่อนลงไปที่ส่วน Windows PowerShell
- ยกเลิกการติ๊กกล่องถัดจาก Windows PowerShell เพื่อปิดใช้งาน
- เลือก OK
- รีสตาร์ทคอมพิวเตอร์
การปิดใช้งาน PowerShell อาจป้องกันไม่ให้แอปหรือฟีเจอร์บางอย่างทำงานได้อย่างถูกต้อง คุณควรปิดใช้งาน PowerShell ก็ต่อเมื่อคุณแน่ใจว่าไม่ต้องการมัน อย่างไรก็ตาม นี่มีแนวโน้มสูงที่สุดที่จะป้องกันปัญหา PowerShell popup อย่างถาวร