วิธีลบโมดูล PowerShell เก่า (ไม่ได้ใช้)

/th/images/get-installedmodule-list-the-installed-third-pa.png

บทความนี้อธิบายวิธีการลบโมดูล PowerShell ที่ติดตั้งบนคอมพิวเตอร์ Windows อย่างปลอดภัย ซึ่งอาจจำเป็นเพื่อถอนการติดตั้งโมดูลเก่าหรือไม่ได้ใช้ แก้ไขปัญหาการเริ่มต้นระบบช้าของ PowerShell หรือแก้ไขข้อขัดแย้งของโมดูล

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

รับโมดูลการติดตั้ง

/th/images/get-installedmodule-list-the-installed-third-pa.png.webp

คำสั่งนี้แสดงรายการโมดูล PowerShell ของบริษัทอื่นที่ติดตั้งและลงทะเบียนผ่าน Install-Module cmdlet ในกรณีของฉัน โมดูล PS ทั้งหมดได้รับการติดตั้งผ่านพื้นที่เก็บข้อมูล PSGallery

หากต้องการลบโมดูลที่ติดตั้ง ให้ระบุชื่อโมดูลในคำสั่ง Uninstall-Module ตัวอย่างเช่น:

ถอนการติดตั้งโมดูลชื่อ PSWindowsUpdate

คอมพิวเตอร์อาจมีการติดตั้งโมดูลมากกว่าหนึ่งเวอร์ชัน ดังนั้น cmdlet นี้จะลบโมดูลเวอร์ชันล่าสุดออกหรือจะล้มเหลวหากพบหลายเวอร์ชัน เวอร์ชันที่มีอยู่ของโมดูลสามารถแสดงได้ดังต่อไปนี้:

รับโมดูล pswindowsupdate-ListAvailable

/th/images/get-module-listavailable-list-the-module-verio.png.webp

หากต้องการถอนการติดตั้งเวอร์ชันโมดูลเฉพาะ

ถอนการติดตั้ง-โมดูล-ชื่อ PSWindowsUpdate-RequiredVersion 2.2.1.4-Verbose

ลบโมดูลเฉพาะทุกเวอร์ชัน ยกเว้นโมดูลล่าสุด

` $moduleName=“PSWindowsUpdate”$versions=รับ-InstalledModule-ชื่อ $moduleName-AllVersions | เรียงลำดับ-วัตถุเวอร์ชัน-จากมากไปน้อย

$ รุ่น | เลือก-วัตถุ-ข้าม 1 | ForEach-Object { ถอนการติดตั้งโมดูลชื่อ $ moduleName-RequiredVersion $ _.Version-Force } `

ลบเวอร์ชันโมดูลทั้งหมด:

ถอนการติดตั้ง-โมดูล-ชื่อ PSWindowsUpdate-AllVersions

Invoke-Command cmdlet สามารถใช้เพื่อลบโมดูล PowerShell บนคอมพิวเตอร์ระยะไกล:

เรียกใช้-Command-ComputerName mun-dc01-ScriptBlock {ถอนการติดตั้งโมดูล PSWindowsUpdate-RequiredVersion 2.2.1.2-Force-Verbose}

เมื่อถอนการติดตั้งโมดูล อาจเกิดข้อผิดพลาดโดยระบุว่ามีการใช้งานโมดูลอยู่


WARNING: The version '2.2.1.4' of module 'PSWindowsUpdate' is currently in use. Retry the operation after closing the applications.PackageManagement\Uninstall-Package : Module 'PSWindowsUpdate' is in currently in use or you don't have the required permissions.

/th/images/uninstall-module-error-module-is-currently-in-us.png.webp

หากต้องการลบโมดูลดังกล่าว ขั้นแรกให้ปิดเซสชัน PowerShell ที่มีการโหลด (นำเข้า) แสดงรายการโมดูล PS ที่โหลดในเซสชันปัจจุบัน:

รับโมดูล

หากต้องการยกเลิกการโหลดโมดูลจากหน่วยความจำโดยไม่ต้องปิดคอนโซล PS ปัจจุบัน ให้รันคำสั่งต่อไปนี้:

ลบโมดูลชื่อ PSWindowsUpdate

/th/images/remove-module-unload-specific-powershell-module.png.webp

ลองลบโมดูลอีกครั้งหลังจากนี้ (ในบางกรณี คุณต้องเพิ่มตัวเลือก-Force เพื่อบังคับให้ลบโมดูล แต่ควรระวัง เนื่องจากอาจทำให้การขึ้นต่อกันของโมดูลอื่นๆ เสียหายได้):

ถอนการติดตั้ง-โมดูล-ชื่อ PSWindowsUpdate-บังคับ

หากโมดูลที่คุณต้องการถอนการติดตั้งโหลดโดยอัตโนมัติเมื่อคุณเปิดเซสชัน PowerShell คุณสามารถข้ามสิ่งนี้ได้โดยเปิดคอนโซล PowerShell โดยไม่ต้องโหลดไฟล์โปรไฟล์ PS1 ของคุณ:

Powershell.exe-NoProfile-คำสั่ง "ถอนการติดตั้งโมดูล ImportExcel"

รายการโมดูล PowerShell ทั้งหมดที่มีบนคอมพิวเตอร์ (รวมถึงโมดูลที่ติดตั้งผ่านพื้นที่เก็บข้อมูลและโมดูลที่ติดตั้งด้วยตนเอง) สามารถแสดงได้ดังต่อไปนี้:

Get-Module-ListAvailable|เลือกชื่อ รุ่น เส้นทาง

/th/images/get-module-listavailable-list-all-modules-inclu.png.webp

คอลัมน์ Path จะแสดงตำแหน่งของไฟล์โมดูล ใน Windows PowerShell คุณสามารถใช้ (นำเข้า) โมดูลที่ได้รับการติดตั้ง (คัดลอก) ไปยังไดเร็กทอรีต่อไปนี้:


C:\Users\%username%\Documents\WindowsPowerShell\ModulesC:\Program Files\WindowsPowerShell\ModulesC:\Windows\system32\WindowsPowerShell\v1.0\Modules

คุณสามารถดูรายการเส้นทางนี้ได้ในตัวแปรสภาพแวดล้อม $env:PSModulePath:

/th/images/dollarenvpsmodulepath-in-windows-powershell-5-1.png.webp

ใน PowerShell Core 7.x ตัวแปร $env:PSModulePath มีพาธเพิ่มเติมต่อไปนี้:


C:\program files\windowsapps\microsoft.powershell_7.5.2.0_x64__8wekyb3d8bbwe\ModulesC:\Program Files\PowerShell\ModulesC:\program files\powershell\7\Modules

/th/images/dollarenvpsmodulepath-paths-in-powershell-core-7-x.png.webp

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

` $Module=รับโมดูล ImportExcel-ListAvailable

ถอนการติดตั้งโมดูล $Module.Name-verbose

ลบรายการ $Module.ModuleBase-Recurse-Force `

*️⃣ ลิงค์ที่มา:

ปัญหาการเริ่มต้น PowerShell ช้า, PSWindowsUpdate, , เรียกใช้คำสั่ง, ติดตั้งด้วยตนเอง,