Remove-Module (Microsoft.PowerShell.Core)
Remove-Module
- โมดูล :
- Microsoft.PowerShell.Core
ลบโมดูลออกจากเซสชันปัจจุบัน
ไวยากรณ์
Remove-Module
[-Name] <String[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Remove-Module
[-FullyQualifiedName] <ModuleSpecification[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]Remove-Module
[-ModuleInfo] <PSModuleInfo[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]คำอธิบาย
Remove-Module cmdlet จะลบสมาชิกของโมดูล เช่น cmdlets และฟังก์ชัน ออกจากเซสชันปัจจุบัน
ถ้าโมดูลมีแอสเซมบลี (.dll) สมาชิกทั้งหมดที่นำไปใช้โดยแอสเซมบลีจะถูกเอาออก แต่แอสเซมบลีไม่ได้ยกเลิกการโหลด
cmdlet นี้ไม่ได้ถอนการติดตั้งโมดูลหรือลบออกจากคอมพิวเตอร์ มีผลกับเซสชัน PowerShell ปัจจุบันเท่านั้น
ตัวอย่าง
ตัวอย่างที่ 1: ลบโมดูล
Remove-Module -Name "BitsTransfer"คำสั่งนี้จะลบโมดูล BitsTransfer ออกจากเซสชันปัจจุบัน
ตัวอย่างที่ 2: ลบโมดูลทั้งหมด
Get-Module | Remove-Module
คำสั่งนี้จะลบโมดูลทั้งหมดออกจากเซสชันปัจจุบัน
ตัวอย่างที่ 3: ลบโมดูลโดยใช้ไปป์ไลน์
"FileTransfer", "PSDiagnostics" | Remove-Module -Verbose
VERBOSE: Performing operation "Remove-Module" on Target "filetransfer (Path: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\filetransfer\filetransfer.psd1')".
VERBOSE: Performing operation "Remove-Module" on Target "Microsoft.BackgroundIntelligentTransfer.Management (Path: 'C:\Windows\assembly\GAC_MSIL\Microsoft.BackgroundIntelligentTransfer.Management\1.0.0.0__31bf3856ad364e35\Microsoft.BackgroundIntelligentTransfe
r.Management.dll')".
VERBOSE: Performing operation "Remove-Module" on Target "psdiagnostics (Path: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\psdiagnostics\psdiagnostics.psd1')".
VERBOSE: Removing imported function 'Start-Trace'.
VERBOSE: Removing imported function 'Stop-Trace'.
VERBOSE: Removing imported function 'Enable-WSManTrace'.
VERBOSE: Removing imported function 'Disable-WSManTrace'.
VERBOSE: Removing imported function 'Enable-PSWSManCombinedTrace'.
VERBOSE: Removing imported function 'Disable-PSWSManCombinedTrace'.
VERBOSE: Removing imported function 'Set-LogProperties'.
VERBOSE: Removing imported function 'Get-LogProperties'.
VERBOSE: Removing imported function 'Enable-PSTrace'.
VERBOSE: Removing imported function 'Disable-PSTrace'.
VERBOSE: Performing operation "Remove-Module" on Target "PSDiagnostics (Path: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\psdiagnostics\PSDiagnostics.psm1')".คำสั่งนี้จะลบโมดูล BitsTransfer และ PSDiagnostics ออกจากเซสชันปัจจุบัน
คำสั่งใช้ตัวดำเนินการไปป์ไลน์ (|) เพื่อส่งชื่อโมดูลไปที่ Remove-Module ใช้พารามิเตอร์ทั่วไป Verbose เพื่อรับข้อมูลโดยละเอียดเกี่ยวกับสมาชิกที่ถูกลบออก
ข้อความ ละเอียด แสดงรายการที่ถูกลบออก ข้อความแตกต่างกันเนื่องจากโมดูล BitsTransfer มีแอสเซมบลีที่ใช้ cmdlets และโมดูลที่ซ้อนกันพร้อมแอสเซมบลีของตัวเอง โมดูล PSDiagnostics มีไฟล์สคริปต์โมดูล (.psm1) ที่ส่งออกฟังก์ชัน
ตัวอย่างที่ 4: ลบโมดูลโดยใช้ ModuleInfo
$a = Get-Module BitsTransfer
Remove-Module -ModuleInfo $aคำสั่งนี้ใช้พารามิเตอร์ ModuleInfo เพื่อลบโมดูล BitsTransfer
ตัวอย่างที่ 5: การใช้เหตุการณ์ OnRemove
เมื่อถอดโมดูลออก จะมีเหตุการณ์ทริกเกอร์โดยโมดูลที่ช่วยให้โมดูลตอบสนองต่อการถอดออกและดำเนินการล้างข้อมูลบางอย่าง เช่น การเพิ่มทรัพยากร
$OnRemoveScript = {
# perform cleanup
$cachedSessions | Remove-PSSession
}
$ExecutionContext.SessionState.Module.OnRemove += $OnRemoveScript
$registerEngineEventSplat = @{
SourceIdentifier = ([System.Management.Automation.PsEngineEvent]::Exiting)
Action = $OnRemoveScript
}
Register-EngineEvent @registerEngineEventSplatตัวแปร $OnRemoveScript ประกอบด้วยบล็อกสคริปต์ที่ล้างข้อมูลทรัพยากร คุณลงทะเบียนบล็อกสคริปต์โดยกำหนดให้กับ $ExecutionContext.SessionState.Module.OnRemove คุณยังสามารถใช้ Register-Event เพื่อให้บล็อกสคริปต์ดำเนินการเมื่อเซสชัน PowerShell สิ้นสุดลง
สำหรับโมดูลที่ใช้สคริปต์ คุณจะต้องเพิ่มโค้ดนี้ลงในไฟล์ .PSM1 หรือใส่ไว้ในสคริปต์เริ่มต้นที่แสดงอยู่ในคุณสมบัติ ScriptsToProcess ของรายการโมดูล
พารามิเตอร์
-Confirm
แจ้งให้คุณยืนยันก่อนเรียกใช้ cmdlet
- พิมพ์ :
SwitchParameter
- นามแฝง :
-
cf
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
False
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-Force
บ่งชี้ว่า cmdlet นี้เอาโมดูลแบบอ่านอย่างเดียวออก ตามค่าเริ่มต้น Remove-Module จะลบเฉพาะโมดูลการอ่าน-เขียนเท่านั้น
ค่า ReadOnly และ ReadWrite จะถูกจัดเก็บไว้ในคุณสมบัติ AccessMode ของโมดูล
- พิมพ์ :
SwitchParameter
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
-
None
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
-FullyQualifiedName
ค่าอาจเป็นชื่อโมดูล ข้อมูลจำเพาะของโมดูลแบบเต็ม หรือเส้นทางไปยังไฟล์โมดูล
เมื่อค่าเป็นเส้นทาง เส้นทางสามารถมีคุณสมบัติครบถ้วนหรือสัมพันธ์กันได้ เส้นทางสัมพัทธ์ได้รับการแก้ไขโดยสัมพันธ์กับสคริปต์ที่มีคำสั่งการใช้งาน
เมื่อค่าเป็นชื่อหรือข้อกำหนดเฉพาะของโมดูล PowerShell จะค้นหา PSModulePath สำหรับโมดูลที่ระบุ
ข้อมูลจำเพาะของโมดูลคือแฮชเทเบิลที่มีคีย์ดังต่อไปนี้
ModuleName- จำเป็น ระบุชื่อโมดูลGUID- เป็นทางเลือก ระบุ GUID ของโมดูลนอกจากนี้ จำเป็น จะต้องระบุอย่างน้อยหนึ่งในสามคีย์ด้านล่าง
ModuleVersion- ระบุเวอร์ชันขั้นต่ำที่ยอมรับได้ของโมดูล
MaximumVersion- ระบุเวอร์ชันสูงสุดที่ยอมรับได้ของโมดูลRequiredVersion- ระบุเวอร์ชันที่จำเป็นและแน่นอนของโมดูล ไม่สามารถใช้กับคีย์เวอร์ชันอื่นได้
- พิมพ์ :
ข้อมูลจำเพาะของโมดูล[]
- ตำแหน่ง:
0
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-ModuleInfo
ระบุอ็อบเจ็กต์โมดูลที่ต้องการลบ ป้อนตัวแปรที่มีวัตถุ PSModuleInfo หรือคำสั่งที่ได้รับวัตถุโมดูล เช่น คำสั่ง Get-Module คุณยังสามารถไปป์วัตถุโมดูลเพื่อ Remove-Module
- พิมพ์ :
ข้อมูล PSModule[]
- ตำแหน่ง:
0
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
False
-Name
ระบุชื่อของโมดูลที่ต้องการลบ อนุญาตให้ใช้อักขระตัวแทนได้ คุณยังสามารถไปป์สตริงชื่อเพื่อ Remove-Module
- พิมพ์ :
String[]
- ตำแหน่ง:
0
- ค่าเริ่มต้น:
None
- ที่จำเป็น:
True
- ยอมรับอินพุตไปป์ไลน์:
True
- ยอมรับอักขระตัวแทน:
True
-WhatIf
แสดงสิ่งที่จะเกิดขึ้นหาก cmdlet ทำงาน cmdlet ไม่ทำงาน
- พิมพ์ :
SwitchParameter
- นามแฝง :
wi
- ตำแหน่ง:
ตั้งชื่อ
- ค่าเริ่มต้น:
False
- ที่จำเป็น:
False
- ยอมรับอินพุตไปป์ไลน์:
False
- ยอมรับอักขระตัวแทน:
False
อินพุต
สตริง
คุณสามารถไปป์ชื่อโมดูลไปที่ cmdlet นี้
PSModuleInfo
คุณสามารถไปป์วัตถุโมดูลไปที่ cmdlet นี้
เอาท์พุต
ไม่มี
cmdlet นี้ส่งคืนไม่มีผลลัพธ์
หมายเหตุ
PowerShell มีนามแฝงต่อไปนี้สำหรับ Remove-Module:
ทุกแพลตฟอร์ม:
rmo
เมื่อคุณลบโมดูล จะมีการทริกเกอร์เหตุการณ์ที่สามารถใช้เพื่อเรียกใช้โค้ดการล้างข้อมูลบางส่วนได้ สำหรับรายละเอียดเพิ่มเติม ดูตัวอย่างที่ 5