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

Get-Module (Microsoft.PowerShell.Core)


Get-Module

โมดูล :
Microsoft.PowerShell.Core

แสดงรายการโมดูลที่นำเข้าในเซสชันปัจจุบันหรือที่สามารถนำเข้าได้จาก PSModulePath

ไวยากรณ์

Get-Module
   [[-Name] <String[]>]
   [-FullyQualifiedName <ModuleSpecification[]>]
   [-All]
   [<CommonParameters>]
Get-Module
   [[-Name] <String[]>]
   [-FullyQualifiedName <ModuleSpecification[]>]
   [-All]
   [-ListAvailable]
   [-PSEdition <String>]
   [-SkipEditionCheck]
   [-Refresh]
   [<CommonParameters>]
Get-Module
   [[-Name] <String[]>]
   [-FullyQualifiedName <ModuleSpecification[]>]
   [-ListAvailable]
   [-PSEdition <String>]
   [-SkipEditionCheck]
   [-Refresh]
   -PSSession <PSSession>
   [<CommonParameters>]
Get-Module
   [[-Name] <String[]>]
   [-FullyQualifiedName <ModuleSpecification[]>]
   [-ListAvailable]
   [-SkipEditionCheck]
   [-Refresh]
   -CimSession <CimSession>
   [-CimResourceUri <Uri>]
   [-CimNamespace <String>]
   [<CommonParameters>]

คำอธิบาย

Get-Module cmdlet แสดงรายการโมดูล PowerShell ที่ได้รับการนำเข้าหรือที่สามารถนำเข้าในเซสชัน PowerShell หากไม่มีพารามิเตอร์ Get-Module จะได้รับโมดูลที่นำเข้าไปยังเซสชันปัจจุบัน พารามิเตอร์ ListAvailable ใช้เพื่อแสดงรายการโมดูลที่พร้อมสำหรับการนำเข้าจากเส้นทางที่ระบุในตัวแปรสภาพแวดล้อม PSModulePath ($env:PSModulePath ).

วัตถุโมดูลที่ Get-Module ส่งกลับประกอบด้วยข้อมูลที่มีค่าเกี่ยวกับโมดูล คุณยังสามารถไพพ์ออบเจ็กต์โมดูลไปยัง cmdlets อื่นๆ ได้ เช่น Import-Module และ Remove-Module cmdlets

Get-Module แสดงรายการโมดูล แต่ไม่ได้นำเข้าโมดูลเหล่านั้น เริ่มต้นใน Windows PowerShell 3.0 โมดูลจะถูกนำเข้าโดยอัตโนมัติเมื่อคุณใช้คำสั่งในโมดูล แต่คำสั่ง Get-Module จะไม่ทริกเกอร์การนำเข้าอัตโนมัติ คุณยังสามารถนำเข้าโมดูลเข้าสู่เซสชันของคุณโดยใช้ Import-Module cmdlet

เริ่มต้นใน Windows PowerShell 3.0 คุณสามารถรับ จากนั้นนำเข้าโมดูลจากเซสชันระยะไกลไปยังเซสชันภายในเครื่องได้ กลยุทธ์นี้ใช้คุณลักษณะ Implicit Remoting ของ PowerShell และเทียบเท่ากับการใช้ cmdlet Import-PSSession เมื่อคุณใช้คำสั่งในโมดูลที่นำเข้าจากเซสชันอื่น คำสั่งจะทำงานโดยปริยายในเซสชันระยะไกล คุณลักษณะนี้ช่วยให้คุณจัดการคอมพิวเตอร์ระยะไกลจากเซสชันภายในเครื่องได้

นอกจากนี้ เริ่มต้นใน Windows PowerShell 3.0 คุณสามารถใช้ Get-Module และ Import-Module เพื่อรับและนำเข้าโมดูล Common Information Model (CIM) โมดูล CIM กำหนด cmdlets ในไฟล์ Cmdlet Definition XML (CDXML) คุณลักษณะนี้ช่วยให้คุณใช้ cmdlet ที่ถูกนำไปใช้ในแอสเซมบลีของโค้ดที่ไม่มีการจัดการ เช่น ที่เขียนด้วย C++

สามารถใช้การควบคุมระยะไกลโดยนัยเพื่อจัดการคอมพิวเตอร์ระยะไกลที่เปิดใช้งานการควบคุมระยะไกลของ PowerShell สร้าง PSSession บนคอมพิวเตอร์ระยะไกล จากนั้นใช้พารามิเตอร์ PSSession ของ Get-Module เพื่อรับโมดูล PowerShell ในเซสชันระยะไกล เมื่อคุณนำเข้าโมดูลจากเซสชันระยะไกล คำสั่งที่นำเข้าจะทำงานในเซสชันบนคอมพิวเตอร์ระยะไกล

คุณสามารถใช้กลยุทธ์ที่คล้ายกันในการจัดการคอมพิวเตอร์ที่ไม่ได้เปิดใช้งาน PowerShell จากระยะไกล ซึ่งรวมถึงคอมพิวเตอร์ที่ไม่ได้ใช้ระบบปฏิบัติการ Windows และคอมพิวเตอร์ที่มี PowerShell แต่ไม่มีการเปิดใช้งานระยะไกลของ PowerShell

เริ่มต้นด้วยการสร้างเซสชัน CIM บนคอมพิวเตอร์ระยะไกล เซสชัน CIM คือการเชื่อมต่อกับ Windows Management Instrumentation (WMI) บนคอมพิวเตอร์ระยะไกล จากนั้นใช้พารามิเตอร์ CIMSession ของ Get-Module เพื่อรับโมดูล CIM จากเซสชัน CIM เมื่อคุณนำเข้าโมดูล CIM โดยใช้ cmdlet Import-Module จากนั้นเรียกใช้คำสั่งที่นำเข้า คำสั่งจะทำงานโดยปริยายบนคอมพิวเตอร์ระยะไกล คุณสามารถใช้กลยุทธ์ WMI และ CIM นี้เพื่อจัดการคอมพิวเตอร์ระยะไกลได้

ตัวอย่าง

ตัวอย่างที่ 1: รับโมดูลที่นำเข้าไปยังเซสชันปัจจุบัน

Get-Module

คำสั่งนี้รับโมดูลที่นำเข้าไปยังเซสชันปัจจุบัน

ตัวอย่างที่ 2: รับโมดูลที่ติดตั้งและโมดูลที่พร้อมใช้งาน

Get-Module -ListAvailable

คำสั่งนี้รับโมดูลที่ติดตั้งบนคอมพิวเตอร์และสามารถนำเข้าสู่เซสชันปัจจุบันได้

Get-Module ค้นหาโมดูลที่มีอยู่ในเส้นทางที่ระบุโดยตัวแปรสภาพแวดล้อม $env:PSModulePath สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ PSModulePath โปรดดู about_Modules และ about_Environment_Variables

ตัวอย่างที่ 3: รับไฟล์ที่ส่งออกทั้งหมด

Get-Module -ListAvailable -All

คำสั่งนี้รับไฟล์ที่เอ็กซ์พอร์ตทั้งหมดสำหรับโมดูลที่มีอยู่ทั้งหมด

ตัวอย่างที่ 4: รับโมดูลตามชื่อแบบเต็ม

$FullyQualifiedName = @{ModuleName="Microsoft.PowerShell.Management";ModuleVersion="3.1.0.0"}
Get-Module -FullyQualifiedName $FullyQualifiedName | Format-Table -Property Name,Version

Name                             Version
----                             -------
Microsoft.PowerShell.Management  3.1.0.0

ตัวอย่างนี้รับโมดูล Microsoft.PowerShell.Management โดยการระบุชื่อแบบเต็มของโมดูลโดยใช้พารามิเตอร์ FullyQualifiedName จากนั้นคำสั่งจะส่งผลลัพธ์ไปยัง Format-Table cmdlet เพื่อจัดรูปแบบผลลัพธ์เป็นตารางโดยมี ชื่อ และ เวอร์ชัน เป็นส่วนหัวของคอลัมน์

ในชื่อแบบเต็มของโมดูล ค่า ModuleVersion จะทำหน้าที่เป็นเวอร์ชันขั้นต่ำ ดังนั้น สำหรับตัวอย่างนี้จะตรงกับโมดูล Microsoft.PowerShell.Management ใดๆ ที่เป็นเวอร์ชัน 3.1.0.0 หรือสูงกว่า

ตัวอย่างที่ 5: รับคุณสมบัติของโมดูล

Get-Module | Get-Member -MemberType Property | Format-Table Name

Name
----
AccessMode
Author
ClrVersion
CompanyName
Copyright
Definition
Description
DotNetFrameworkVersion
ExportedAliases
ExportedCmdlets
ExportedCommands
ExportedFormatFiles
ExportedFunctions
ExportedTypeFiles
ExportedVariables
ExportedWorkflows
FileList
Guid
HelpInfoUri
LogPipelineExecutionDetails
ModuleBase
ModuleList
ModuleType
Name
NestedModules
OnRemove
Path
PowerShellHostName
PowerShellHostVersion
PowerShellVersion
PrivateData
ProcessorArchitecture
RequiredAssemblies
RequiredModules
RootModule
Scripts
SessionState
Version

คำสั่งนี้รับคุณสมบัติของอ็อบเจ็กต์ PSModuleInfo ที่ Get-Module ส่งกลับ มีหนึ่งวัตถุสำหรับแต่ละไฟล์โมดูล

คุณสามารถใช้คุณสมบัติเพื่อจัดรูปแบบและกรองออบเจ็กต์โมดูลได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติ ดูคุณสมบัติ PSModuleInfo

ผลลัพธ์จะมีคุณสมบัติใหม่ เช่น ผู้เขียน และ ชื่อบริษัท ที่นำมาใช้ใน Windows PowerShell 3.0

ตัวอย่างที่ 6: จัดกลุ่มโมดูลทั้งหมดตามชื่อ

Get-Module -ListAvailable -All | Format-Table -Property Name, Moduletype, Path -Groupby Name

Name: AppLocker

Name      ModuleType Path
----      ---------- ----
AppLocker   Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\AppLocker\AppLocker.psd1


   Name: Appx

Name ModuleType Path
---- ---------- ----
Appx   Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Appx\en-US\Appx.psd1
Appx   Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Appx\Appx.psd1
Appx     Script C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Appx\Appx.psm1


   Name: BestPractices

Name          ModuleType Path
----          ---------- ----
BestPractices   Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\BestPractices\BestPractices.psd1


   Name: BitsTransfer

Name         ModuleType Path
----         ---------- ----
BitsTransfer   Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\BitsTransfer\BitsTransfer.psd1

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

ตัวอย่างที่ 7: แสดงเนื้อหาของรายการโมดูล

คำสั่งเหล่านี้แสดงเนื้อหาของรายการโมดูลสำหรับโมดูล Windows PowerShell BitsTransfer

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

# First command
$m = Get-Module -list -Name BitsTransfer

# Second command
Get-Content $m.Path

@ {
    GUID               = "{8FA5064B-8479-4c5c-86EA-0D311FE48875}"
    Author             = "Microsoft Corporation"
    CompanyName        = "Microsoft Corporation"
    Copyright          = "Microsoft Corporation. All rights reserved."
    ModuleVersion      = "1.0.0.0"
    Description        = "Windows PowerShell File Transfer Module"
    PowerShellVersion  = "2.0"
    CLRVersion         = "2.0"
    NestedModules      = "Microsoft.BackgroundIntelligentTransfer.Management"
    FormatsToProcess   = "FileTransfer.Format.ps1xml"
    RequiredAssemblies = Join-Path $psScriptRoot "Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll"
}

คำสั่งแรกได้รับวัตถุ PSModuleInfo ที่แสดงถึงโมดูล BitsTransfer โดยจะบันทึกวัตถุไว้ในตัวแปร $m

คำสั่งที่สองใช้ Get-Content cmdlet เพื่อรับเนื้อหาของไฟล์รายการในเส้นทางที่ระบุ ใช้เครื่องหมายจุดเพื่อรับเส้นทางไปยังไฟล์ Manifest ซึ่งจัดเก็บไว้ในคุณสมบัติ เส้นทาง ของออบเจ็กต์ ผลลัพธ์จะแสดงเนื้อหาของรายการโมดูล

ตัวอย่างที่ 8: แสดงรายการไฟล์ในไดเร็กทอรีโมดูล

dir (Get-Module -ListAvailable FileTransfer).ModuleBase

Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules\FileTransfer
Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d----        12/16/2008  12:36 PM            en-US
-a---        11/19/2008  11:30 PM      16184 FileTransfer.Format.ps1xml
-a---        11/20/2008  11:30 PM       1044 FileTransfer.psd1
-a---        12/16/2008  12:20 AM     108544 Microsoft.BackgroundIntelligentTransfer.Management.Interop.dll

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

ตัวอย่างที่ 9: รับโมดูลที่ติดตั้งบนคอมพิวเตอร์

$s = New-PSSession -ComputerName Server01

Get-Module -PSSession $s -ListAvailable

คำสั่งเหล่านี้รับโมดูลที่ติดตั้งบนคอมพิวเตอร์ Server01

คำสั่งแรกใช้ New-PSSession cmdlet เพื่อสร้าง PSSession บนคอมพิวเตอร์ Server01 คำสั่งจะบันทึก PSSession ไว้ในตัวแปร $s

คำสั่งที่สองใช้พารามิเตอร์ PSSession และ ListAvailable ของ Get-Module เพื่อรับโมดูลใน PSSession ใน ตัวแปร $s

หากคุณไปป์โมดูลจากเซสชันอื่นไปยัง Import-Module cmdlet Import-Module จะนำเข้าโมดูลลงในเซสชันปัจจุบันโดยใช้คุณลักษณะการควบคุมระยะไกลโดยนัย ซึ่งเทียบเท่ากับการใช้ cmdlet Import-PSSession คุณสามารถใช้ cmdlets จากโมดูลในเซสชันปัจจุบันได้ แต่คำสั่งที่ใช้ cmdlets เหล่านี้เรียกใช้เซสชันระยะไกลจริงๆ สำหรับข้อมูลเพิ่มเติม โปรดดูที่ Import-Module และ Import-PSSession

ตัวอย่างที่ 10: จัดการคอมพิวเตอร์ที่ไม่ได้ใช้ระบบปฏิบัติการ Windows

คำสั่งในตัวอย่างนี้ช่วยให้คุณสามารถจัดการระบบจัดเก็บข้อมูลของคอมพิวเตอร์ระยะไกลที่ไม่ได้ใช้ระบบปฏิบัติการ Windows ในตัวอย่างนี้ เนื่องจากผู้ดูแลระบบคอมพิวเตอร์ได้ติดตั้งผู้ให้บริการ Module Discovery WMI คำสั่ง CIM จึงสามารถใช้ค่าเริ่มต้น ซึ่งออกแบบมาสำหรับผู้ให้บริการได้

$cs = New-CimSession -ComputerName RSDGF03
Get-Module -CimSession $cs -Name Storage | Import-Module
Get-Command Get-Disk

CommandType     Name                  ModuleName
-----------     ----                  ----------
Function        Get-Disk              Storage

Get-Disk

Number Friendly Name              OperationalStatus          Total Size Partition Style
------ -------------              -----------------          ---------- ---------------
0      Virtual HD ATA Device      Online                          40 GB MBR

คำสั่งแรกใช้ New-CimSession cmdlet เพื่อสร้างเซสชันบนคอมพิวเตอร์ระยะไกล RSDGF03 เซสชันเชื่อมต่อกับ WMI บนคอมพิวเตอร์ระยะไกล คำสั่งจะบันทึกเซสชัน CIM ในตัวแปร $cs

คำสั่งที่สองใช้เซสชัน CIM ในตัวแปร $cs เพื่อรันคำสั่ง Get-Module บนคอมพิวเตอร์ RSDGF03 คำสั่งใช้พารามิเตอร์ ชื่อ เพื่อระบุโมดูลการจัดเก็บข้อมูล คำสั่งใช้ตัวดำเนินการไปป์ไลน์ (|) เพื่อส่งโมดูล Storage ไปยัง Import-Module cmdlet ซึ่งจะนำเข้าไปยังเซสชันภายในเครื่อง

คำสั่งที่สามเรียกใช้ Get-Command cmdlet บนคำสั่ง Get-Disk ในโมดูล Storage เมื่อคุณนำเข้าโมดูล CIM ลงในเซสชันภายในเครื่อง PowerShell จะแปลงไฟล์ CDXML ที่แสดงโมดูล CIM ให้เป็นสคริปต์ PowerShell ซึ่งปรากฏเป็นฟังก์ชันในเซสชันภายในเครื่อง

คำสั่งที่สี่รันคำสั่ง Get-Disk แม้ว่าคำสั่งจะถูกพิมพ์ในเซสชันภายในเครื่อง แต่ก็ทำงานโดยปริยายบนคอมพิวเตอร์ระยะไกลที่นำเข้ามา คำสั่งรับวัตถุจากคอมพิวเตอร์ระยะไกลและส่งกลับไปยังเซสชันภายในเครื่อง

พารามิเตอร์

-All

บ่งชี้ว่า cmdlet นี้รับโมดูลทั้งหมดในแต่ละโฟลเดอร์โมดูล รวมถึงโมดูลที่ซ้อนกัน ไฟล์ Manifest (.psd1) ไฟล์โมดูลสคริปต์ (.psm1) และโมดูลไบนารี (< รหัส>.dll) หากไม่มีพารามิเตอร์นี้ Get-Module จะได้รับเฉพาะโมดูลเริ่มต้นในแต่ละโฟลเดอร์โมดูล

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-CimNamespace

ระบุเนมสเปซของผู้ให้บริการ CIM สำรองที่แสดงโมดูล CIM ค่าเริ่มต้นคือเนมสเปซของผู้ให้บริการ Module Discovery WMI

ใช้พารามิเตอร์นี้เพื่อรับโมดูล CIM จากคอมพิวเตอร์และอุปกรณ์ที่ไม่ได้รันระบบปฏิบัติการ Windows

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-CimResourceUri

ระบุตำแหน่งสำรองสำหรับโมดูล CIM ค่าเริ่มต้นคือ URI ทรัพยากรของผู้ให้บริการ Module Discovery WMI บนคอมพิวเตอร์ระยะไกล

ใช้พารามิเตอร์นี้เพื่อรับโมดูล CIM จากคอมพิวเตอร์และอุปกรณ์ที่ไม่ได้รันระบบปฏิบัติการ Windows

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

ยูริ

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-CimSession

ระบุเซสชัน CIM บนคอมพิวเตอร์ระยะไกล ป้อนตัวแปรที่มีเซสชัน CIM หรือคำสั่งที่ได้รับเซสชัน CIM เช่น คำสั่ง Get-CimSession

Get-Module ใช้การเชื่อมต่อเซสชัน CIM เพื่อรับโมดูลจากคอมพิวเตอร์ระยะไกล เมื่อคุณนำเข้าโมดูลโดยใช้ cmdlet Import-Module และใช้คำสั่งจากโมดูลที่นำเข้าในเซสชันปัจจุบัน คำสั่งต่างๆ จะทำงานบนคอมพิวเตอร์ระยะไกลจริงๆ

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

พารามิเตอร์ CimSession รับโมดูลทั้งหมดใน CIMSession อย่างไรก็ตาม คุณสามารถนำเข้าเฉพาะโมดูลที่ใช้ CIM และ Cmdlet Definition XML (CDXML) เท่านั้น

พิมพ์ :

CimSession

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

True

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-FullyQualifiedName

ค่าอาจเป็นชื่อโมดูล ข้อมูลจำเพาะของโมดูลแบบเต็ม หรือเส้นทางไปยังไฟล์โมดูล

เมื่อค่าเป็นเส้นทาง เส้นทางสามารถมีคุณสมบัติครบถ้วนหรือสัมพันธ์กันได้ เส้นทางสัมพัทธ์ได้รับการแก้ไขโดยสัมพันธ์กับสคริปต์ที่มีคำสั่งการใช้งาน

เมื่อค่าเป็นชื่อหรือข้อกำหนดเฉพาะของโมดูล PowerShell จะค้นหา PSModulePath สำหรับโมดูลที่ระบุ

ข้อมูลจำเพาะของโมดูลคือแฮชเทเบิลที่มีคีย์ดังต่อไปนี้

  • ModuleName - จำเป็น ระบุชื่อโมดูล
  • GUID - เป็นทางเลือก ระบุ GUID ของโมดูล
  • นอกจากนี้ จำเป็น จะต้องระบุอย่างน้อยหนึ่งในสามคีย์ด้านล่าง

    • ModuleVersion - ระบุเวอร์ชันขั้นต่ำที่ยอมรับได้ของโมดูล
    • MaximumVersion - ระบุเวอร์ชันสูงสุดที่ยอมรับได้ของโมดูล
    • RequiredVersion - ระบุเวอร์ชันที่จำเป็นและแน่นอนของโมดูล ไม่สามารถใช้กับคีย์เวอร์ชันอื่นได้

คุณไม่สามารถระบุพารามิเตอร์ FullyQualifiedName ในคำสั่งเดียวกันกับพารามิเตอร์ Name

พิมพ์ :

ข้อมูลจำเพาะของโมดูล[]

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

True

ยอมรับอักขระตัวแทน:

False

-ListAvailable

บ่งชี้ว่า cmdlet นี้ได้รับโมดูลที่ติดตั้งทั้งหมด Get-Module รับโมดูลในเส้นทางที่แสดงรายการในตัวแปรสภาพแวดล้อม PSModulePath หากไม่มีพารามิเตอร์นี้ Get-Module จะได้รับเฉพาะโมดูลที่อยู่ในตัวแปรสภาพแวดล้อม PSModulePath และที่โหลดในเซสชันปัจจุบันเท่านั้น ListAvailable ไม่ส่งคืนข้อมูลเกี่ยวกับโมดูลที่ไม่พบในตัวแปรสภาพแวดล้อม PSModulePath แม้ว่าโมดูลเหล่านั้นจะถูกโหลดในเซสชันปัจจุบันก็ตาม

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Name

ระบุชื่อหรือรูปแบบของโมดูลที่ได้รับ cmdlet นี้ อนุญาตให้ใช้อักขระตัวแทนได้ คุณยังสามารถไปป์ชื่อไปที่ Get-Module คุณไม่สามารถระบุพารามิเตอร์ FullyQualifiedName ในคำสั่งเดียวกันกับพารามิเตอร์ Name

ชื่อ ไม่สามารถยอมรับโมดูล GUID เป็นค่าได้ หากต้องการส่งคืนโมดูลโดยระบุ GUID ให้ใช้ FullyQualifiedName แทน

พิมพ์ :

String[]

ตำแหน่ง:

0

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

True

ยอมรับอักขระตัวแทน:

True

-PSEdition

รับโมดูลที่รองรับ PowerShell รุ่นที่ระบุ

ค่าที่ยอมรับได้สำหรับพารามิเตอร์นี้คือ:

    Desktop
    Core

Get-Module cmdlet จะตรวจสอบคุณสมบัติ CompatiblePSEditions ของออบเจ็กต์ PSModuleInfo สำหรับค่าที่ระบุ และส่งกลับเฉพาะโมดูลที่ได้ตั้งค่าไว้เท่านั้น

บันทึก

  • รุ่นเดสก์ท็อป: สร้างขึ้นบน .NET Framework และให้ความเข้ากันได้กับสคริปต์และโมดูลที่กำหนดเป้าหมายเป็นเวอร์ชันของ PowerShell ที่ทำงานบน Windows รุ่นเต็ม เช่น Server Core และ Windows Desktop
  • รุ่น Core: สร้างขึ้นบน .NET Core และให้ความเข้ากันได้กับสคริปต์และโมดูลที่กำหนดเป้าหมายเป็นเวอร์ชันของ PowerShell ที่ทำงานบน Windows รุ่นลดขนาด เช่น Nano Server และ Windows IoT
พิมพ์ :

String

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-PSSession

รับโมดูลในเซสชัน PowerShell ที่ผู้ใช้จัดการที่ระบุ (PSSession) ป้อนตัวแปรที่มีเซสชัน คำสั่งที่รับเซสชัน เช่น คำสั่ง Get-PSSession หรือคำสั่งที่สร้างเซสชัน เช่น รหัส New-PSSession > คำสั่ง

เมื่อเซสชันเชื่อมต่อกับคอมพิวเตอร์ระยะไกล คุณต้องระบุพารามิเตอร์ ListAvailable

คำสั่ง Get-Module ที่ใช้พารามิเตอร์ PSSession เทียบเท่ากับการใช้ Invive-Command cmdlet เพื่อเรียกใช้ Get-Module - คำสั่ง ListAvailable ใน PSSession

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

PSSession

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

True

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-Refresh

บ่งชี้ว่า cmdlet นี้รีเฟรชแคชของคำสั่งที่ติดตั้ง แคชคำสั่งจะถูกสร้างขึ้นเมื่อเซสชันเริ่มต้น ช่วยให้ Get-Command cmdlet เพื่อรับคำสั่งจากโมดูลที่ไม่ได้นำเข้าเข้าสู่เซสชัน

พารามิเตอร์นี้ได้รับการออกแบบสำหรับสถานการณ์การพัฒนาและการทดสอบที่เนื้อหาของโมดูลมีการเปลี่ยนแปลงตั้งแต่เซสชันเริ่มต้น

เมื่อคุณระบุพารามิเตอร์ รีเฟรช ในคำสั่ง คุณต้องระบุ ListAvailable

พารามิเตอร์นี้ถูกนำมาใช้ใน Windows PowerShell 3.0

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

False

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

-SkipEditionCheck

ข้ามการตรวจสอบช่อง CompatiblePSEditions

ตามค่าเริ่มต้น Get-Module จะละเว้นโมดูลในไดเร็กทอรี %windir%\System32\WindowsPowerShell\v1.0\Modules ที่ไม่ได้ระบุ Core ในช่อง CompatiblePSEditions เมื่อตั้งค่าสวิตช์นี้ โมดูลที่ไม่มี Core จะถูกรวมไว้ด้วย ดังนั้นโมดูลที่อยู่ภายใต้เส้นทางโมดูล Windows PowerShell ที่ไม่เข้ากันกับ PowerShell v6 และสูงกว่าจะถูกส่งกลับ

บน macOS และ Linux พารามิเตอร์นี้ไม่ทำอะไรเลย

ดู about_PowerShell_Editions สำหรับข้อมูลเพิ่มเติม

พิมพ์ :

SwitchParameter

ตำแหน่ง:

ตั้งชื่อ

ค่าเริ่มต้น:

None

ที่จำเป็น:

False

ยอมรับอินพุตไปป์ไลน์:

False

ยอมรับอักขระตัวแทน:

False

อินพุต

สตริง

คุณสามารถไพพ์ชื่อโมดูลไปที่ cmdlet นี้

เอาท์พุต

PSModuleInfo

cmdlet นี้ส่งคืนวัตถุที่แสดงถึงโมดูล เมื่อคุณระบุพารามิเตอร์ ListAvailable Get-Module จะส่งกลับออบเจ็กต์ ModuleInfoGrouping ซึ่งเป็นประเภทของออบเจ็กต์ PSModuleInfo ที่มีคุณสมบัติและวิธีการเหมือนกัน

หมายเหตุ

PowerShell มีนามแฝงต่อไปนี้สำหรับ Get-Module:

  • ทุกแพลตฟอร์ม:

      gmo
  • เริ่มต้นใน Windows PowerShell 3.0 คำสั่งหลักที่รวมอยู่ใน PowerShell จะถูกบรรจุในโมดูล ข้อยกเว้นคือ Microsoft.PowerShell.Core ซึ่งเป็นสแน็ปอิน (PSSnapin) ตามค่าเริ่มต้น เฉพาะสแน็ปอิน Microsoft.PowerShell.Core เท่านั้นที่ถูกเพิ่มลงในเซสชัน โมดูลจะถูกนำเข้าโดยอัตโนมัติในการใช้งานครั้งแรก และคุณสามารถใช้ Import-Module cmdlet เพื่อนำเข้าโมดูลเหล่านั้น

  • ใน Windows PowerShell 2.0 และในโปรแกรมโฮสต์ที่สร้างเซสชันแบบเก่าใน PowerShell เวอร์ชันใหม่กว่า คำสั่งหลักจะรวมอยู่ในสแนปอิน (PSSnapins) ข้อยกเว้นคือ Microsoft.PowerShell.Core ซึ่งเป็นสแน็ปอินเสมอ นอกจากนี้ เซสชันระยะไกล เช่น เซสชันที่เริ่มต้นโดย New-PSSession cmdlet ถือเป็นเซสชันแบบเก่าที่มีสแนปอินหลักรวมอยู่ด้วย

    สำหรับข้อมูลเกี่ยวกับเมธอด CreateDefault2 ที่สร้างเซสชันรูปแบบใหม่ด้วยโมดูลหลัก โปรดดูเมธอด CreateDefault2

  • Get-Module รับเฉพาะโมดูลในตำแหน่งที่เก็บไว้ในค่าของตัวแปรสภาพแวดล้อม PSModulePath ($env:PSModulePath) Import-Module cmdlet สามารถนำเข้าโมดูลในตำแหน่งอื่นได้ แต่คุณไม่สามารถใช้ cmdlet Get-Module เพื่อรับโมดูลเหล่านั้นได้

  • นอกจากนี้ เริ่มต้นใน PowerShell 3.0 คุณสมบัติใหม่ได้ถูกเพิ่มให้กับออบเจ็กต์ที่ Get-Module ส่งคืน ซึ่งทำให้ง่ายต่อการเรียนรู้เกี่ยวกับโมดูลก่อนที่จะนำเข้า คุณสมบัติทั้งหมดจะถูกเติมข้อมูลก่อนที่จะนำเข้า ซึ่งรวมถึงคุณสมบัติ ExportedCommands, ExportedCmdlets และ ExportedFunctions ที่แสดงคำสั่งที่โมดูลส่งออก

  • พารามิเตอร์ ListAvailable รับเฉพาะโมดูลที่มีรูปแบบถูกต้อง นั่นคือ โฟลเดอร์ที่มีไฟล์อย่างน้อยหนึ่งไฟล์ซึ่งมีชื่อฐานเหมือนกับชื่อของโฟลเดอร์โมดูล ชื่อฐานคือชื่อที่ไม่มีนามสกุลของชื่อไฟล์ โฟลเดอร์ที่มีไฟล์ที่มีชื่อต่างกันจะถือเป็นคอนเทนเนอร์ แต่ไม่ใช่โมดูล

    หากต้องการรับโมดูลที่ใช้งานเป็นไฟล์ DLL แต่ไม่ได้อยู่ในโฟลเดอร์โมดูล ให้ระบุทั้งพารามิเตอร์ ListAvailable และ ทั้งหมด

  • หากต้องการใช้คุณลักษณะเซสชัน CIM คอมพิวเตอร์ระยะไกลต้องมี WS-Management remoting และ Windows Management Instrumentation (WMI) ซึ่งเป็นการนำ Microsoft ไปใช้มาตรฐาน Common Information Model (CIM) คอมพิวเตอร์ต้องมีผู้ให้บริการ Module Discovery WMI หรือผู้ให้บริการ WMI สำรองที่มีคุณสมบัติพื้นฐานเหมือนกัน

    คุณสามารถใช้คุณลักษณะเซสชัน CIM บนคอมพิวเตอร์ที่ไม่ได้ใช้ระบบปฏิบัติการ Windows และบนคอมพิวเตอร์ Windows ที่มี PowerShell แต่ไม่มีการเปิดใช้งานระยะไกลของ PowerShell

    คุณยังสามารถใช้พารามิเตอร์ CIM เพื่อรับโมดูล CIM จากคอมพิวเตอร์ที่เปิดใช้งานการทำงานระยะไกลของ PowerShell ซึ่งรวมถึงเครื่องคอมพิวเตอร์ด้วย เมื่อคุณสร้างเซสชัน CIM บนเครื่องคอมพิวเตอร์ PowerShell จะใช้ DCOM แทน WMI เพื่อสร้างเซสชัน

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