ค้นหาเว็บไซต์

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

บทความที่เกี่ยวข้อง