Import-Module

Menambahkan modul ke sesi saat ini.

Sintaks

Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -PSSession <PSSession>
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Name] <String[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-MinimumVersion <Version>]
      [-MaximumVersion <String>]
      [-RequiredVersion <Version>]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -CimSession <CimSession>
      [-CimResourceUri <Uri>]
      [-CimNamespace <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-FullyQualifiedName] <ModuleSpecification[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      -PSSession <PSSession>
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Assembly] <Assembly[]>
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]
Import-Module
      [-Global]
      [-Prefix <String>]
      [-Function <String[]>]
      [-Cmdlet <String[]>]
      [-Variable <String[]>]
      [-Alias <String[]>]
      [-Force]
      [-PassThru]
      [-AsCustomObject]
      [-ModuleInfo] <PSModuleInfo[]>
      [-ArgumentList <Object[]>]
      [-DisableNameChecking]
      [-NoClobber]
      [-Scope <String>]
      [<CommonParameters>]

Deskripsi

Import-Module Cmdlet menambahkan satu atau beberapa modul ke sesi saat ini. Mulai dari PowerShell 3.0, modul yang diinstal secara otomatis diimpor ke sesi saat Anda menggunakan perintah atau penyedia apa pun dalam modul. Namun, Anda masih dapat menggunakan Import-Module perintah untuk mengimpor modul. Anda dapat menonaktifkan impor modul otomatis menggunakan $PSModuleAutoloadingPreference variabel preferensi. Untuk informasi selengkapnya tentang variabel, $PSModuleAutoloadingPreference lihat about_Preference_Variables.

Modul adalah paket yang berisi anggota yang dapat digunakan di PowerShell. Anggota mencakup cmdlet, penyedia, skrip, fungsi, variabel, dan alat dan file lainnya. Setelah modul diimpor, Anda dapat menggunakan anggota modul dalam sesi Anda. Untuk informasi selengkapnya tentang modul, lihat about_Modules.

Secara default, Import-Module mengimpor semua anggota yang diekspor modul, tetapi Anda dapat menggunakan parameter Alias, Function, Cmdlet, dan Variable untuk membatasi anggota mana yang diimpor. Parameter NoClobber mencegah Import-Module mengimpor anggota yang memiliki nama yang sama dengan anggota dalam sesi saat ini.

Import-Module mengimpor modul hanya ke sesi saat ini. Untuk mengimpor modul ke setiap sesi baru, tambahkan Import-Module perintah ke profil PowerShell Anda. Untuk informasi selengkapnya tentang profil, lihat about_Profiles.

Anda dapat mengelola komputer Windows jarak jauh yang mengaktifkan remoting PowerShell dengan membuat PSSession di komputer jarak jauh. Kemudian gunakan parameter PSSession untuk Import-Module mengimpor modul yang diinstal pada komputer jarak jauh. Ketika Anda menggunakan perintah yang diimpor dalam sesi saat ini, perintah secara implisit berjalan pada komputer jarak jauh.

Mulai dari Windows PowerShell 3.0, Anda dapat menggunakan Import-Module untuk mengimpor modul Common Information Model (CIM). Modul CIM menentukan cmdlet dalam file Cmdlet Definition XML (CDXML). Fitur ini memungkinkan Anda menggunakan cmdlet yang diimplementasikan dalam rakitan kode yang tidak dikelola, seperti yang ditulis dalam C++.

Untuk komputer jarak jauh yang tidak mengaktifkan remoting PowerShell, termasuk komputer yang tidak menjalankan sistem operasi Windows, Anda dapat menggunakan parameter Import-Module CIMSession untuk mengimpor modul CIM dari komputer jarak jauh. Perintah yang diimpor berjalan secara implisit pada komputer jarak jauh. CIMSession adalah koneksi ke Windows Management Instrumentation (WMI) di komputer jarak jauh.

Contoh

Contoh 1: Mengimpor anggota modul ke sesi saat ini

Contoh ini mengimpor anggota modul PSDiagnostics ke dalam sesi saat ini.

Import-Module -Name PSDiagnostics

Contoh 2: Mengimpor semua modul yang ditentukan oleh jalur modul

Contoh ini mengimpor semua modul yang tersedia di jalur yang ditentukan oleh $env:PSModulePath variabel lingkungan ke dalam sesi saat ini.

Get-Module -ListAvailable | Import-Module

Contoh 3: Mengimpor anggota beberapa modul ke dalam sesi saat ini

Contoh ini mengimpor anggota modul PSDiagnostics dan Dism ke dalam sesi saat ini.

$m = Get-Module -ListAvailable PSDiagnostics, Dism
Import-Module -ModuleInfo $m

Get-Module Cmdlet mendapatkan modul PSDiagnostics dan Dism dan menyimpan objek dalam $m variabel. Parameter ListAvailable diperlukan saat Anda mendapatkan modul yang belum diimpor ke dalam sesi.

Parameter ModuleInfo digunakan Import-Module untuk mengimpor modul ke dalam sesi saat ini.

Contoh 4: Mengimpor semua modul yang ditentukan oleh jalur

Contoh ini menggunakan jalur eksplisit untuk mengidentifikasi modul yang akan diimpor.

Import-Module -Name c:\ps-test\modules\test -Verbose

VERBOSE: Loading module from path 'C:\ps-test\modules\Test\Test.psm1'.
VERBOSE: Exporting function 'my-parm'.
VERBOSE: Exporting function 'Get-Parameter'.
VERBOSE: Exporting function 'Get-Specification'.
VERBOSE: Exporting function 'Get-SpecDetails'.

Menggunakan parameter Verbose menyebabkan Import-Module kemajuan laporan saat memuat modul. Tanpa parameter Verbose, PassThru, atau AsCustomObject, Import-Module tidak menghasilkan output apa pun saat mengimpor modul.

Contoh 5: Membatasi anggota modul yang diimpor ke dalam sesi

Contoh ini menunjukkan cara membatasi anggota modul mana yang diimpor ke dalam sesi dan efek perintah ini pada sesi. Parameter Fungsi membatasi anggota yang diimpor dari modul. Anda juga dapat menggunakan parameter Alias, Variabel, dan Cmdlet untuk membatasi anggota lain yang diimpor modul.

Get-Module Cmdlet mendapatkan objek yang mewakili modul PSDiagnostics. Properti ExportedCmdlets mencantumkan semua cmdlet yang diekspor modul, meskipun tidak semuanya diimpor.

Import-Module PSDiagnostics -Function Disable-PSTrace, Enable-PSTrace
(Get-Module PSDiagnostics).ExportedCommands

Key                          Value
---                          -----
Disable-PSTrace              Disable-PSTrace
Disable-PSWSManCombinedTrace Disable-PSWSManCombinedTrace
Disable-WSManTrace           Disable-WSManTrace
Enable-PSTrace               Enable-PSTrace
Enable-PSWSManCombinedTrace  Enable-PSWSManCombinedTrace
Enable-WSManTrace            Enable-WSManTrace
Get-LogProperties            Get-LogProperties
Set-LogProperties            Set-LogProperties
Start-Trace                  Start-Trace
Stop-Trace                   Stop-Trace

Get-Command -Module PSDiagnostics

CommandType     Name                 Version    Source
-----------     ----                 -------    ------
Function        Disable-PSTrace      6.1.0.0    PSDiagnostics
Function        Enable-PSTrace       6.1.0.0    PSDiagnostics

Menggunakan parameter Modul cmdlet Get-Command menunjukkan perintah yang diimpor dari modul PSDiagnostics. Hasilnya mengonfirmasi bahwa hanya Disable-PSTrace cmdlet dan Enable-PSTrace yang diimpor.

Contoh 6: Mengimpor anggota modul dan menambahkan awalan

Contoh ini mengimpor modul PSDiagnostics ke sesi saat ini, menambahkan awalan ke nama anggota, lalu menampilkan nama anggota awalan. Parameter Awalan menambahkan x awalan Import-Module ke semua anggota yang diimpor dari modul. Awalan hanya berlaku untuk anggota dalam sesi saat ini. Ini tidak mengubah modul. Parameter PassThru mengembalikan objek modul yang mewakili modul yang diimpor.

Import-Module PSDiagnostics -Prefix x -PassThru

ModuleType Version    Name               ExportedCommands
---------- -------    ----               ----------------
Script     6.1.0.0    PSDiagnostics      {Disable-xPSTrace, Disable-xPSWSManCombinedTrace, Disable-xW...

Get-Command -Module PSDiagnostics

CommandType     Name                                   Version    Source
-----------     ----                                   -------    ------
Function        Disable-xPSTrace                       6.1.0.0    PSDiagnostics
Function        Disable-xPSWSManCombinedTrace          6.1.0.0    PSDiagnostics
Function        Disable-xWSManTrace                    6.1.0.0    PSDiagnostics
Function        Enable-xPSTrace                        6.1.0.0    PSDiagnostics
Function        Enable-xPSWSManCombinedTrace           6.1.0.0    PSDiagnostics
Function        Enable-xWSManTrace                     6.1.0.0    PSDiagnostics
Function        Get-xLogProperties                     6.1.0.0    PSDiagnostics
Function        Set-xLogProperties                     6.1.0.0    PSDiagnostics
Function        Start-xTrace                           6.1.0.0    PSDiagnostics
Function        Stop-xTrace                            6.1.0.0    PSDiagnostics

Get-Command mendapatkan anggota yang telah diimpor dari modul. Output menunjukkan bahwa anggota modul diawali dengan benar.

Contoh 7: Mendapatkan dan menggunakan objek kustom

Contoh ini menunjukkan cara mendapatkan dan menggunakan objek kustom yang dikembalikan oleh Import-Module.

Objek kustom mencakup anggota sintetis yang mewakili setiap anggota modul yang diimpor. Misalnya, cmdlet dan fungsi dalam modul dikonversi ke metode skrip objek kustom.

Objek kustom berguna dalam pembuatan skrip. Mereka juga berguna ketika beberapa objek yang diimpor memiliki nama yang sama. Menggunakan metode skrip objek setara dengan menentukan nama anggota yang diimpor sepenuhnya memenuhi syarat, termasuk nama modulnya.

Parameter AsCustomObject hanya dapat digunakan saat mengimpor modul skrip. Gunakan Get-Module untuk menentukan modul mana yang tersedia adalah modul skrip.

Get-Module -List | Format-Table -Property Name, ModuleType -AutoSize

Name          ModuleType
----          ----------
Show-Calendar     Script
BitsTransfer    Manifest
PSDiagnostics   Manifest
TestCmdlets       Script
...

$a = Import-Module -Name Show-Calendar -AsCustomObject -Passthru
$a | Get-Member

TypeName: System.Management.Automation.PSCustomObject
Name          MemberType   Definition
----          ----------   ----------
Equals        Method       bool Equals(System.Object obj)
GetHashCode   Method       int GetHashCode()
GetType       Method       type GetType()
ToString      Method       string ToString()
Show-Calendar ScriptMethod System.Object Show-Calendar();

$a."Show-Calendar"()

Modul Show-Calendar skrip diimpor menggunakan parameter AsCustomObject untuk meminta objek kustom dan parameter PassThru untuk mengembalikan objek. Objek kustom yang dihasilkan disimpan dalam $a variabel .

Variabel $a disalurkan ke Get-Member cmdlet untuk menunjukkan properti dan metode objek yang disimpan. Output menunjukkan Show-Calendar metode skrip.

Untuk memanggil Show-Calendar metode skrip, nama metode harus diapit dalam tanda kutip karena namanya menyertakan tanda hubung.

Contoh 8: Reimport modul ke dalam sesi yang sama

Contoh ini menunjukkan cara menggunakan parameter Import-Module Force saat Anda menimpor ulang modul ke dalam sesi yang sama. Parameter Paksa menghapus modul yang dimuat lalu mengimpornya lagi.

Import-Module PSDiagnostics
Import-Module PSDiagnostics -Force -Prefix PS

Perintah pertama mengimpor modul PSDiagnostics . Perintah kedua mengimpor modul lagi, kali ini menggunakan parameter Awalan.

Tanpa parameter Force, sesi akan menyertakan dua salinan setiap cmdlet PSDiagnostics, satu dengan nama standar dan satu dengan nama awalan.

Contoh 9: Jalankan perintah yang telah disembunyikan oleh perintah yang diimpor

Contoh ini menunjukkan cara menjalankan perintah yang telah disembunyikan oleh perintah yang diimpor. Modul TestModule mencakup fungsi bernama Get-Date yang mengembalikan tahun dan hari dalam setahun.

Get-Date

Thursday, August 15, 2019 2:26:12 PM

Import-Module TestModule
Get-Date

19227

Get-Command Get-Date -All | Format-Table -Property CommandType, Name, ModuleName -AutoSize

CommandType     Name         ModuleName
-----------     ----         ----------
Function        Get-Date     TestModule
Cmdlet          Get-Date     Microsoft.PowerShell.Utility

Microsoft.PowerShell.Utility\Get-Date

Thursday, August 15, 2019 2:28:31 PM

Cmdlet pertama Get-Date mengembalikan objek DateTime dengan tanggal saat ini. Setelah mengimpor modul TestModule , Get-Date mengembalikan tahun dan hari dalam setahun.

Menggunakan parameter Semua tampilkan Get-Command semua Get-Date perintah dalam sesi. Hasilnya menunjukkan bahwa ada dua Get-Date perintah dalam sesi, fungsi dari modul TestModule dan cmdlet dari modul Microsoft.PowerShell.Utility .

Karena fungsi lebih diutamakan daripada cmdlet, Get-Date fungsi dari modul TestModule berjalan, bukan Get-Date cmdlet. Untuk menjalankan versi Get-Dateasli , Anda harus memenuhi syarat nama perintah dengan nama modul.

Untuk informasi selengkapnya tentang prioritas perintah di PowerShell, lihat about_Command_Precedence.

Contoh 10: Mengimpor versi minimum modul

Contoh ini mengimpor modul PowerShellGet . Ini menggunakan parameter MinimumVersion untuk Import-Module mengimpor hanya versi 2.0.0 atau lebih besar dari modul.

Import-Module -Name PowerShellGet -MinimumVersion 2.0.0

Anda juga dapat menggunakan parameter RequiredVersion untuk mengimpor versi modul tertentu, atau menggunakan parameter Modul dan Versi kata #Requires kunci untuk memerlukan versi modul tertentu dalam skrip.

Contoh 11: Mengimpor menggunakan nama yang sepenuhnya memenuhi syarat

Contoh ini mengimpor versi modul tertentu menggunakan FullyQualifiedName.

PS> Get-Module -ListAvailable PowerShellGet | Select-Object Name, Version

Name          Version
----          -------
PowerShellGet 2.2.1
PowerShellGet 2.1.3
PowerShellGet 2.1.2
PowerShellGet 1.0.0.1

PS> Import-Module -FullyQualifiedName @{ModuleName = 'PowerShellGet'; ModuleVersion = '2.1.3' }

Contoh 12: Mengimpor menggunakan jalur yang sepenuhnya memenuhi syarat

Contoh ini mengimpor versi modul tertentu menggunakan jalur yang sepenuhnya memenuhi syarat.

PS> Get-Module -ListAvailable PowerShellGet | Select-Object Path

Path
----
C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1
C:\program files\powershell\6\Modules\PowerShellGet\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\2.1.2\PowerShellGet.psd1
C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PowerShellGet.psd1

PS> Import-Module -Name 'C:\Program Files\PowerShell\Modules\PowerShellGet\2.2.1\PowerShellGet.psd1'

Contoh 13: Mengimpor modul dari komputer jarak jauh

Contoh ini menunjukkan cara menggunakan Import-Module cmdlet untuk mengimpor modul dari komputer jarak jauh. Perintah ini menggunakan fitur Implisit Remoting PowerShell.

Saat mengimpor modul dari sesi lain, Anda dapat menggunakan cmdlet dalam sesi saat ini. Namun, perintah yang menggunakan cmdlet berjalan di sesi jarak jauh.

$s = New-PSSession -ComputerName Server01
Get-Module -PSSession $s -ListAvailable -Name NetSecurity

ModuleType Name             ExportedCommands
---------- ----             ----------------
Manifest   NetSecurity      {New-NetIPsecAuthProposal, New-NetIPsecMainModeCryptoProposal, New-Ne...

Import-Module -PSSession $s -Name NetSecurity
Get-Command -Module NetSecurity -Name Get-*Firewall*

CommandType     Name                                               ModuleName
-----------     ----                                               ----------
Function        Get-NetFirewallAddressFilter                       NetSecurity
Function        Get-NetFirewallApplicationFilter                   NetSecurity
Function        Get-NetFirewallInterfaceFilter                     NetSecurity
Function        Get-NetFirewallInterfaceTypeFilter                 NetSecurity
Function        Get-NetFirewallPortFilter                          NetSecurity
Function        Get-NetFirewallProfile                             NetSecurity
Function        Get-NetFirewallRule                                NetSecurity
Function        Get-NetFirewallSecurityFilter                      NetSecurity
Function        Get-NetFirewallServiceFilter                       NetSecurity
Function        Get-NetFirewallSetting                             NetSecurity

Get-NetFirewallRule -DisplayName "Windows Remote Management*" |
  Format-Table -Property DisplayName, Name -AutoSize

DisplayName                                              Name
-----------                                              ----
Windows Remote Management (HTTP-In)                      WINRM-HTTP-In-TCP
Windows Remote Management (HTTP-In)                      WINRM-HTTP-In-TCP-PUBLIC
Windows Remote Management - Compatibility Mode (HTTP-In) WINRM-HTTP-Compat-In-TCP

New-PSSession membuat sesi jarak jauh (PSSession) ke Server01 komputer. PSSession disimpan dalam $s variabel .

Berjalan Get-Module dengan parameter PSSession menunjukkan bahwa modul NetSecurity diinstal dan tersedia di komputer jarak jauh. Perintah ini setara dengan menggunakan Invoke-Command cmdlet untuk menjalankan Get-Module perintah dalam sesi jarak jauh. Contohnya:

Invoke-Command $s {Get-Module -ListAvailable -Name NetSecurity

Berjalan Import-Module dengan parameter PSSession mengimpor modul NetSecurity dari komputer jarak jauh ke sesi saat ini. Get-Command Cmdlet mengambil perintah yang dimulai dengan Get dan disertakan Firewalldari modul NetSecurity. Output mengonfirmasi bahwa modul dan cmdletnya diimpor ke sesi saat ini.

Selanjutnya, Get-NetFirewallRule cmdlet mendapatkan aturan firewall Windows Remote Management di Server01 komputer. Ini setara dengan menggunakan Invoke-Command cmdlet untuk berjalan Get-NetFirewallRule pada sesi jarak jauh.

Contoh 14: Mengelola penyimpanan di komputer jarak jauh tanpa sistem operasi Windows

Dalam contoh ini, administrator komputer telah menginstal penyedia Module Discovery WMI, yang memungkinkan Anda menggunakan perintah CIM yang dirancang untuk penyedia.

New-CimSession Cmdlet membuat sesi di komputer jarak jauh bernama RSDGF03. Sesi tersambung ke layanan WMI pada komputer jarak jauh. Sesi CIM disimpan dalam $cs variabel. Import-Modulemenggunakan CimSession di $cs untuk mengimpor modul CIM Penyimpanan dari RSDGF03 komputer.

Get-Command Cmdlet menunjukkan Get-Disk perintah dalam modul Penyimpanan. Saat Anda mengimpor modul CIM ke sesi lokal, PowerShell mengonversi file CDXML untuk setiap perintah menjadi skrip PowerShell, yang muncul sebagai fungsi dalam sesi lokal.

Meskipun Get-Disk ditik dalam sesi lokal, cmdlet secara implisit berjalan pada komputer jarak jauh tempat cmdlet diimpor. Perintah mengembalikan objek dari komputer jarak jauh ke sesi lokal.

$cs = New-CimSession -ComputerName RSDGF03
Import-Module -CimSession $cs -Name Storage
# Importing a CIM module, converts the CDXML files for each command into
# PowerShell scripts. These appear as functions in the local session.
Get-Command Get-Disk

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

# Use implicit remoting to query disks on the remote computer from which the
# module was imported.
Get-Disk

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

Parameter

-Alias

Menentukan alias yang diimpor cmdlet ini dari modul ke sesi saat ini. Masukkan daftar alias yang dipisahkan koma. Karakter kartubebas diizinkan.

Beberapa modul secara otomatis mengekspor alias yang dipilih ke sesi Anda saat Anda mengimpor modul. Parameter ini memungkinkan Anda memilih dari antara alias yang diekspor.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-ArgumentList

Menentukan array argumen, atau nilai parameter, yang diteruskan ke modul skrip selama Import-Module perintah. Parameter ini hanya valid saat Anda mengimpor modul skrip.

Anda juga dapat merujuk ke parameter ArgumentList berdasarkan aliasnya, args. Untuk informasi selengkapnya tentang perilaku ArgumentList, lihat about_Splatting.

Type:Object[]
Aliases:Args
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsCustomObject

Menunjukkan bahwa cmdlet ini mengembalikan objek kustom dengan anggota yang mewakili anggota modul yang diimpor. Parameter ini hanya valid untuk modul skrip.

Saat Anda menggunakan parameter AsCustomObject , Import-Module mengimpor anggota modul ke dalam sesi lalu mengembalikan objek PSCustomObject alih-alih objek PSModuleInfo . Anda dapat menyimpan objek kustom dalam variabel dan menggunakan enumerasi akses anggota untuk memanggil anggota.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Assembly

Menentukan array objek rakitan. Cmdlet ini mengimpor cmdlet dan penyedia yang diimplementasikan dalam objek rakitan yang ditentukan. Masukkan variabel yang berisi objek rakitan atau perintah yang membuat objek rakitan. Anda juga dapat menyalurkan objek rakitan ke Import-Module.

Saat Anda menggunakan parameter ini, hanya cmdlet dan penyedia yang diimplementasikan oleh rakitan yang ditentukan yang diimpor. Jika modul berisi file lain, file tersebut tidak diimpor, dan Anda mungkin kehilangan anggota penting modul. Gunakan parameter ini untuk menelusuri kesalahan dan menguji modul, atau saat Anda diinstruksikan untuk menggunakannya oleh penulis modul.

Type:Assembly[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-CimNamespace

Menentukan namespace penyedia CIM alternatif yang mengekspos modul CIM. Nilai default adalah namespace penyedia Module Discovery WMI.

Gunakan parameter ini untuk mengimpor modul CIM dari komputer dan perangkat yang tidak menjalankan sistem operasi Windows.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimResourceUri

Menentukan lokasi alternatif untuk modul CIM. Nilai default adalah URI sumber daya penyedia Module Discovery WMI di komputer jarak jauh.

Gunakan parameter ini untuk mengimpor modul CIM dari komputer dan perangkat yang tidak menjalankan sistem operasi Windows.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:Uri
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CimSession

Menentukan sesi CIM pada komputer jarak jauh. Masukkan variabel yang berisi sesi CIM atau perintah yang mendapatkan sesi CIM, seperti perintah Get-CimSession .

Import-Module menggunakan koneksi sesi CIM untuk mengimpor modul dari komputer jarak jauh ke sesi saat ini. Saat Anda menggunakan perintah dari modul yang diimpor dalam sesi saat ini, perintah berjalan di komputer jarak jauh.

Anda dapat menggunakan parameter ini untuk mengimpor modul dari komputer dan perangkat yang tidak menjalankan sistem operasi Windows, dan komputer Windows yang memiliki PowerShell, tetapi tidak mengaktifkan jarak jauh PowerShell.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:CimSession
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Cmdlet

Menentukan array cmdlet yang diimpor cmdlet ini dari modul ke dalam sesi saat ini. Karakter kartubebas diizinkan.

Beberapa modul secara otomatis mengekspor cmdlet yang dipilih ke sesi Anda saat Anda mengimpor modul. Parameter ini memungkinkan Anda memilih dari antara cmdlet yang diekspor.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-DisableNameChecking

Menunjukkan bahwa cmdlet ini menekan pesan yang memperingatkan Anda ketika Anda mengimpor cmdlet atau fungsi yang namanya menyertakan kata kerja yang tidak disetujui atau karakter yang dilarang.

Secara default, ketika modul yang Anda impor mengekspor cmdlet atau fungsi yang memiliki kata kerja yang tidak disetujui dalam namanya, PowerShell menampilkan pesan peringatan berikut:

PERINGATAN: Beberapa nama perintah yang diimpor mencakup kata kerja yang tidak disetujui yang mungkin membuatnya kurang dapat ditemukan. Gunakan parameter Verbose untuk detail selengkapnya atau ketik Get-Verb untuk melihat daftar kata kerja yang disetujui.

Pesan ini hanyalah peringatan. Modul lengkap masih diimpor, termasuk perintah yang tidak sesuai. Meskipun pesan ditampilkan kepada pengguna modul, masalah penamaan harus diperbaiki oleh penulis modul.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Parameter ini menyebabkan modul dimuat, atau dimuat ulang, di atas modul saat ini.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedName

Nilainya dapat berupa nama modul, spesifikasi modul lengkap, atau jalur ke file modul.

Ketika nilai adalah jalur, jalur dapat sepenuhnya memenuhi syarat atau relatif. Jalur relatif diselesaikan relatif terhadap skrip yang berisi pernyataan penggunaan.

Saat nilainya adalah spesifikasi nama atau modul, PowerShell mencari PSModulePath untuk modul yang ditentukan.

Spesifikasi modul adalah hashtable yang memiliki kunci berikut.

  • ModuleName - Diperlukan Menentukan nama modul.
  • GUID - Opsional Menentukan GUID modul.
  • Diperlukan juga untuk menentukan setidaknya salah satu dari tiga kunci di bawah ini.
    • ModuleVersion - Menentukan versi minimum modul yang dapat diterima.
    • MaximumVersion - Menentukan versi maksimum modul yang dapat diterima.
    • RequiredVersion - Menentukan versi modul yang tepat dan diperlukan. Ini tidak dapat digunakan dengan kunci Versi lainnya.
Type:ModuleSpecification[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Function

Menentukan array fungsi yang diimpor cmdlet ini dari modul ke sesi saat ini. Karakter kartubebas diizinkan. Beberapa modul secara otomatis mengekspor fungsi yang dipilih ke sesi Anda saat Anda mengimpor modul. Parameter ini memungkinkan Anda memilih dari antara fungsi yang diekspor.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Global

Menunjukkan bahwa cmdlet ini mengimpor modul ke status sesi global sehingga tersedia untuk semua perintah dalam sesi.

Secara default, ketika Import-Module cmdlet dipanggil dari prompt perintah, file skrip, atau blok skrip, semua perintah diimpor ke dalam status sesi global.

Saat dipanggil dari modul lain, Import-Module cmdlet mengimpor perintah dalam modul, termasuk perintah dari modul berlapis, ke dalam status sesi modul panggilan.

Tip

Anda harus menghindari panggilan Import-Module dari dalam modul. Sebagai gantinya, nyatakan modul target sebagai modul berlapis dalam manifes modul induk. Mendeklarasikan modul berlapis meningkatkan kemampuan penemuan dependensi.

Parameter Global setara dengan parameter Cakupan dengan nilai Global.

Untuk membatasi perintah yang diekspor modul, gunakan Export-ModuleMember perintah dalam modul skrip.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumVersion

Menentukan versi maksimum. Cmdlet ini hanya mengimpor versi modul yang kurang dari atau sama dengan nilai yang ditentukan. Jika tidak ada versi yang memenuhi syarat, Import-Module mengembalikan kesalahan.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MinimumVersion

Menentukan versi minimum. Cmdlet ini hanya mengimpor versi modul yang lebih besar dari atau sama dengan nilai yang ditentukan. Gunakan nama parameter MinimumVersion atau aliasnya, Versi. Jika tidak ada versi yang memenuhi syarat, Import-Module menghasilkan kesalahan.

Untuk menentukan versi yang tepat, gunakan parameter RequiredVersion . Anda juga dapat menggunakan parameter Modul dan Versi dari kata kunci #Requires untuk memerlukan versi modul tertentu dalam skrip.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:Version
Aliases:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ModuleInfo

Menentukan array objek modul yang akan diimpor. Masukkan variabel yang berisi objek modul, atau perintah yang mendapatkan objek modul, seperti perintah berikut: Get-Module -ListAvailable. Anda juga dapat menyalurkan objek modul ke Import-Module.

Type:PSModuleInfo[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Menentukan nama modul yang akan diimpor. Masukkan nama modul atau nama file dalam modul, seperti .psd1file , , .psm1.dll, atau .ps1 . Jalur file bersifat opsional. Karakter kartubebas tidak diizinkan. Anda juga dapat menyalurkan nama modul dan nama file ke Import-Module.

Jika Anda menghilangkan jalur, Import-Module cari modul di jalur yang disimpan dalam $env:PSModulePath variabel lingkungan.

Tentukan hanya nama modul jika memungkinkan. Saat Anda menentukan nama file, hanya anggota yang diimplementasikan dalam file tersebut yang diimpor. Jika modul berisi file lain, file tersebut tidak diimpor, dan Anda mungkin kehilangan anggota penting modul.

Catatan

Meskipun dimungkinkan untuk mengimpor file skrip (.ps1) sebagai modul, file skrip biasanya tidak terstruktur seperti file modul skrip (.psm1). Mengimpor file skrip tidak menjamin bahwa file tersebut dapat digunakan sebagai modul. Untuk informasi selengkapnya, lihat about_Modules.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-NoClobber

Mencegah impor perintah yang memiliki nama yang sama dengan perintah yang ada dalam sesi saat ini. Secara default, Import-Module mengimpor semua perintah modul yang diekspor.

Perintah yang memiliki nama yang sama dapat menyembunyikan atau mengganti perintah dalam sesi. Untuk menghindari konflik nama perintah dalam sesi, gunakan parameter Awalan atau NoClobber . Untuk informasi selengkapnya tentang konflik nama dan prioritas perintah, lihat "Modul dan Konflik Nama" di about_Modules dan about_Command_Precedence.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

Mengembalikan objek yang mewakili modul yang diimpor. Secara default, cmdlet ini tidak menghasilkan output apa pun.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Prefix

Menentukan awalan yang ditambahkan cmdlet ini ke kata benda dalam nama anggota modul yang diimpor.

Gunakan parameter ini untuk menghindari konflik nama yang mungkin terjadi ketika anggota yang berbeda dalam sesi memiliki nama yang sama. Parameter ini tidak mengubah modul, dan tidak memengaruhi file yang diimpor modul untuk penggunaannya sendiri. Ini dikenal sebagai modul berlapis. Cmdlet ini hanya memengaruhi nama anggota dalam sesi saat ini.

Misalnya, jika Anda menentukan awalan UTC dan kemudian mengimpor Get-Date cmdlet, cmdlet dikenal dalam sesi sebagai Get-UTCDate, dan tidak bingung dengan cmdlet asli Get-Date .

Nilai parameter ini lebih diutamakan daripada properti DefaultCommandPrefix modul, yang menentukan awalan default.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PSSession

Menentukan sesi yang dikelola pengguna PowerShell (PSSession) tempat cmdlet ini mengimpor modul ke sesi saat ini. Masukkan variabel yang berisi PSSession atau perintah yang mendapatkan PSSession, seperti Get-PSSession perintah.

Saat mengimpor modul dari sesi yang berbeda ke sesi saat ini, Anda dapat menggunakan cmdlet dari modul dalam sesi saat ini, sama seperti Anda akan menggunakan cmdlet dari modul lokal. Perintah yang menggunakan cmdlet jarak jauh berjalan di sesi jarak jauh, tetapi detail jarak jauh dikelola di latar belakang oleh PowerShell.

Parameter ini menggunakan fitur Implisit Remoting PowerShell. Setara dengan menggunakan Import-PSSession cmdlet untuk mengimpor modul tertentu dari sesi.

Import-Module tidak dapat mengimpor modul PowerShell inti dari sesi lain. Modul PowerShell inti memiliki nama yang dimulai dengan Microsoft.PowerShell.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:PSSession
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-RequiredVersion

Menentukan versi modul yang diimpor cmdlet ini. Jika versi tidak diinstal, Import-Module menghasilkan kesalahan.

Secara default, Import-Module mengimpor modul tanpa memeriksa nomor versi.

Untuk menentukan versi minimum, gunakan parameter MinimumVersion . Anda juga dapat menggunakan parameter Modul dan Versi dari kata kunci #Requires untuk memerlukan versi modul tertentu dalam skrip.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Skrip yang menggunakan RequiredVersion untuk mengimpor modul yang disertakan dengan rilis sistem operasi Windows yang ada tidak berjalan secara otomatis dalam rilis sistem operasi Windows di masa mendatang. Ini karena nomor versi modul PowerShell dalam rilis sistem operasi Windows di masa mendatang lebih tinggi dari nomor versi modul dalam rilis sistem operasi Windows yang ada.

Type:Version
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Scope

Menentukan cakupan untuk mengimpor modul.

Nilai yang dapat diterima untuk parameter ini adalah:

  • Global. Tersedia untuk semua perintah dalam sesi. Setara dengan parameter Global .
  • Lokal. Hanya tersedia dalam cakupan saat ini.

Secara default, ketika Import-Module cmdlet dipanggil dari prompt perintah, file skrip, atau blok skrip, semua perintah diimpor ke dalam status sesi global. Anda dapat menggunakan -Scope Local parameter untuk mengimpor konten modul ke dalam cakupan skrip atau blok skrip.

Saat dipanggil dari modul lain, Import-Module cmdlet mengimpor perintah dalam modul, termasuk perintah dari modul berlapis, ke dalam status sesi pemanggil. -Scope Global Menentukan atau -Global menunjukkan bahwa cmdlet ini mengimpor modul ke dalam status sesi global sehingga tersedia untuk semua perintah dalam sesi.

Parameter Global setara dengan parameter Cakupan dengan nilai Global.

Parameter ini diperkenalkan di Windows PowerShell 3.0.

Type:String
Accepted values:Local, Global
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Variable

Menentukan array variabel yang diimpor cmdlet ini dari modul ke dalam sesi saat ini. Masukkan daftar variabel. Karakter kartubebas diizinkan.

Beberapa modul secara otomatis mengekspor variabel yang dipilih ke sesi Anda saat Anda mengimpor modul. Parameter ini memungkinkan Anda memilih dari antara variabel yang diekspor.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Input

String

Anda dapat menyalurkan nama modul ke cmdlet ini.

PSModuleInfo

Anda dapat menyalurkan objek modul ke cmdlet ini.

Assembly

Anda dapat menyalurkan objek rakitan ke cmdlet ini.

Output

None

Secara default, cmdlet ini tidak mengembalikan output.

PSModuleInfo

Jika Anda menentukan parameter PassThru , cmdlet menghasilkan objek System.Management.Automation.PSModuleInfo yang mewakili modul yang diimpor.

PSCustomObject

Jika Anda menentukan parameter AsCustomObject dan PassThru bersama-sama, cmdlet menghasilkan objek PSCustomObject yang mewakili modul.

Catatan

Windows PowerShell menyertakan alias berikut untuk Import-Module:

  • ipmo

  • Sebelum Anda dapat mengimpor modul, modul harus dapat diakses oleh komputer lokal Anda dan disertakan dalam PSModulePath variabel lingkungan. Untuk informasi selengkapnya, lihat about_Modules.

    Anda juga dapat menggunakan parameter PSSession dan CIMSession untuk mengimpor modul yang diinstal pada komputer jarak jauh. Namun, perintah yang menggunakan cmdlet dalam modul ini berjalan dalam sesi jarak jauh di komputer jarak jauh.

  • Jika Anda mengimpor anggota dengan nama yang sama dan jenis yang sama ke dalam sesi Anda, PowerShell menggunakan anggota yang diimpor terakhir secara default. Variabel dan alias diganti, dan aslinya tidak dapat diakses. Fungsi, cmdlet, dan penyedia hanya di bayangi oleh anggota baru. Mereka dapat diakses dengan memenuhi syarat nama perintah dengan nama snap-in, modul, atau jalur fungsinya.

  • Untuk memperbarui data pemformatan untuk perintah yang diimpor dari modul, gunakan Update-FormatData cmdlet . Jika file pemformatan untuk modul berubah, gunakan Update-FormatData cmdlet untuk memperbarui data pemformatan untuk perintah yang diimpor. Anda tidak perlu mengimpor modul lagi.

  • Dimulai di Windows PowerShell 3.0, perintah inti yang diinstal dengan PowerShell dimas dalam modul. Di Windows PowerShell 2.0, dan dalam program host yang membuat sesi gaya lama di versi PowerShell yang lebih baru, perintah inti dimas dalam snap-in (PSSnapins). Pengecualiannya adalah Microsoft.PowerShell.Core, yang selalu merupakan snap-in. Selain itu, sesi jarak jauh, seperti yang dimulai oleh New-PSSession cmdlet, adalah sesi gaya lama yang menyertakan snap-in inti.

    Untuk informasi tentang metode CreateDefault2 yang membuat sesi gaya yang lebih baru dengan modul inti, lihat Metode CreateDefault2.

  • Di Windows PowerShell 2.0, beberapa nilai properti objek modul, seperti nilai properti ExportedCmdlets dan NestedModules , tidak diisi hingga modul diimpor.

  • Jika Anda mencoba mengimpor modul yang berisi rakitan mode campuran yang tidak kompatibel dengan Windows PowerShell 3.0+, Import-Module mengembalikan pesan kesalahan seperti yang berikut ini.

    Import-Module : Rakitan mode campuran dibuat berdasarkan versi 'v2.0.50727' runtime dan tidak dapat dimuat dalam runtime 4.0 tanpa informasi konfigurasi tambahan.

    Kesalahan ini terjadi ketika modul yang dirancang untuk Windows PowerShell 2.0 berisi setidaknya satu rakitan modul campuran. Rakitan modul campuran yang mencakup kode terkelola dan tidak terkelola, seperti C++ dan C#.

    Untuk mengimpor modul yang berisi rakitan mode campuran, mulai Windows PowerShell 2.0 dengan menggunakan perintah berikut, lalu coba perintah lagi Import-Module .

    PowerShell.exe -Version 2.0

  • Untuk menggunakan fitur sesi CIM, komputer jarak jauh harus memiliki jarak jauh WS-Management dan Windows Management Instrumentation (WMI), yang merupakan implementasi Microsoft dari standar Common Information Model (CIM). Komputer juga harus memiliki penyedia Module Discovery WMI atau penyedia CIM alternatif yang memiliki fitur dasar yang sama.

    Anda dapat menggunakan fitur sesi CIM di komputer yang tidak menjalankan sistem operasi Windows dan di komputer Windows yang memiliki PowerShell, tetapi tidak mengaktifkan jarak jauh PowerShell.

    Anda juga dapat menggunakan parameter CIM untuk mendapatkan modul CIM dari komputer yang mengaktifkan jarak jauh PowerShell, termasuk komputer lokal. Saat Anda membuat sesi CIM di komputer lokal, PowerShell menggunakan DCOM, bukan WMI, untuk membuat sesi.

  • Secara default, Import-Module mengimpor modul dalam cakupan global bahkan ketika dipanggil dari cakupan turunan. Cakupan tingkat atas dan semua cakupan turunan memiliki akses ke elemen modul yang diekspor.

    Dalam cakupan turunan, -Scope Local membatasi impor ke cakupan tersebut dan semua cakupan turunannya. Cakupan induk kemudian tidak melihat anggota yang diimpor.

    Catatan

    Get-Module menunjukkan semua modul yang dimuat dalam sesi saat ini. Ini termasuk modul yang dimuat secara lokal dalam cakupan turunan. Gunakan Get-Command -Module modulename untuk melihat anggota mana yang dimuat dalam cakupan saat ini.

  • Import-Module tidak memuat definisi kelas dan enumerasi dalam modul. using module Gunakan pernyataan di awal skrip Anda. Ini mengimpor modul, termasuk definisi kelas dan enumerasi. Untuk informasi selengkapnya, lihat about_Using.

  • Selama pengembangan modul skrip, umumnya untuk membuat perubahan pada kode lalu memuat versi baru modul menggunakan Import-Module dengan parameter Force . Ini hanya berfungsi untuk perubahan pada fungsi dalam modul akar. Import-Module tidak memuat ulang modul berlapis apa pun. Selain itu, tidak ada cara untuk memuat kelas atau enumerasi yang diperbarui.

    Untuk mendapatkan anggota modul yang diperbarui yang ditentukan dalam modul berlapis, hapus modul dengan Remove-Module, lalu impor modul lagi.

    Jika modul dimuat dengan using pernyataan, Anda harus memulai sesi baru untuk mengimpor definisi yang diperbarui untuk kelas dan enumerasi. Kelas dan enumerasi yang ditentukan di PowerShell dan diimpor dengan using pernyataan tidak dapat dibongkar.