Export-PSSession
Mengekspor perintah dari sesi lain dan menyimpannya dalam modul PowerShell.
Sintaks
Export-PSSession
[-OutputModule] <String>
[-Force]
[-Encoding <Encoding>]
[[-CommandName] <String[]>]
[-AllowClobber]
[-ArgumentList <Object[]>]
[-CommandType <CommandTypes>]
[-Module <String[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[[-FormatTypeName] <String[]>]
[-Certificate <X509Certificate2>]
[-Session] <PSSession>
[<CommonParameters>]
Deskripsi
Export-PSSession
Cmdlet mendapatkan cmdlet, fungsi, alias, dan jenis perintah lainnya dari sesi PowerShell lain (PSSession) di komputer lokal atau jarak jauh dan menyimpannya dalam modul PowerShell. Untuk menambahkan perintah dari modul ke sesi saat ini, gunakan Import-Module
cmdlet.
Tidak seperti Import-PSSession
, yang mengimpor perintah dari PSSession lain ke sesi saat ini, Export-PSSession
menyimpan perintah dalam modul. Perintah tidak diimpor ke sesi saat ini.
Untuk mengekspor perintah, gunakan New-PSSession
cmdlet untuk membuat PSSession yang memiliki perintah yang ingin Anda ekspor. Kemudian gunakan Export-PSSession
cmdlet untuk mengekspor perintah.
Untuk mencegah konflik nama perintah, defaultnya Export-PSSession
adalah mengekspor semua perintah, kecuali untuk perintah yang ada di sesi saat ini. Anda dapat menggunakan parameter CommandName untuk menentukan perintah yang akan diekspor.
Export-PSSession
Cmdlet menggunakan fitur jarak jauh implisit PowerShell. Saat Anda mengimpor perintah ke sesi saat ini, perintah berjalan secara implisit dalam sesi asli atau dalam sesi serupa pada komputer asal.
Contoh
Contoh 1: Mengekspor perintah dari PSSession
Contoh ini membuat PSSession baru dari komputer lokal ke komputer Server01. Semua perintah, kecuali yang ada dalam sesi saat ini, diekspor ke modul bernama Server01 di komputer lokal. Ekspor menyertakan data pemformatan untuk perintah.
$S = New-PSSession -ComputerName Server01
Export-PSSession -Session $S -OutputModule Server01
Perintah New-PSSession
membuat PSSession di komputer Server01. PSSession disimpan dalam $S
variabel . Perintah Export-PSSession
mengekspor $S
perintah variabel dan memformat data ke dalam modul Server01.
Contoh 2: Mengekspor perintah Dapatkan dan Atur
Contoh ini mengekspor semua Get
perintah dan Set
dari server.
$S = New-PSSession -ConnectionUri https://exchange.microsoft.com/mailbox -Credential exchangeadmin01@hotmail.com -Authentication Negotiate
Export-PSSession -Session $S -Module exch* -CommandName Get-*, Set-* -FormatTypeName * -OutputModule $PSHOME\Modules\Exchange -Encoding ASCII
Perintah ini mengekspor Get
perintah dan Set
dari Microsoft Server Exchange snap-in di komputer jarak jauh ke modul Exchange di $PSHOME\Modules
direktori di komputer lokal.
Menempatkan modul di $PSHOME\Modules
direktori membuatnya dapat diakses oleh semua pengguna komputer.
Contoh 3: Mengekspor perintah dari komputer jarak jauh
Contoh ini mengekspor cmdlet dari PSSession di komputer jarak jauh dan menyimpannya dalam modul di komputer lokal. Cmdlet dari modul ditambahkan ke sesi saat ini sehingga dapat digunakan.
$S = New-PSSession -ComputerName Server01 -Credential Server01\User01
Export-PSSession -Session $S -OutputModule TestCmdlets -Type Cmdlet -CommandName *test* -FormatTypeName *
Remove-PSSession $S
Import-Module TestCmdlets
Get-Help Test*
Test-Files
Perintah New-PSSession
membuat PSSession di komputer Server01 dan menyimpannya dalam $S
variabel. Perintah Export-PSSession
mengekspor cmdlet yang namanya dimulai dengan Uji dari PSSession ke $S
modul TestCmdlets di komputer lokal.
Remove-PSSession
Cmdlet menghapus PSSession dari $S
sesi saat ini. Perintah ini menunjukkan bahwa PSSession tidak perlu aktif untuk menggunakan perintah yang diimpor dari sesi. Import-Module
Cmdlet menambahkan cmdlet dalam modul TestCmdlets ke sesi saat ini. Perintah dapat dijalankan dalam sesi apa pun kapan saja.
Get-Help
Cmdlet mendapatkan bantuan untuk cmdlet yang namanya dimulai dengan Test. Setelah perintah dalam modul ditambahkan ke sesi saat ini, Anda dapat menggunakan Get-Help
cmdlet dan Get-Command
untuk mempelajari tentang perintah yang diimpor. Test-Files
Cmdlet diekspor dari komputer Server01 dan ditambahkan ke sesi. Test-Files
Cmdlet berjalan dalam sesi jarak jauh pada komputer tempat perintah diimpor. PowerShell membuat sesi dari informasi yang disimpan dalam modul TestCmdlets.
Contoh 4: Perintah ekspor dan kloning dalam sesi saat ini
Contoh ini mengekspor perintah yang disimpan dalam variabel ke dalam sesi saat ini.
Export-PSSession -Session $S -AllowClobber -OutputModule AllCommands
Perintah ini Export-PSSession
mengekspor semua perintah dan semua data pemformatan dari PSSession dalam $S
variabel ke dalam sesi saat ini. Parameter AllowClobber menyertakan perintah dengan nama yang sama dengan perintah dalam sesi saat ini.
Contoh 5: Mengekspor perintah dari PSSession tertutup
Contoh ini menunjukkan cara menjalankan perintah yang diekspor dengan opsi khusus saat PSSession yang membuat perintah yang diekspor ditutup.
Jika sesi jarak jauh asli ditutup ketika modul diimpor, modul akan menggunakan sesi jarak jauh terbuka yang terhubung ke komputer asal. Jika tidak ada sesi saat ini ke komputer asal, modul akan membangun kembali sesi.
Untuk menjalankan perintah yang diekspor dengan opsi khusus dalam sesi jarak jauh, Anda harus membuat sesi jarak jauh dengan opsi tersebut sebelum mengimpor modul. New-PSSession
Gunakan cmdlet dengan parameter SessionOption
$Options = New-PSSessionOption -NoMachineProfile
$S = New-PSSession -ComputerName Server01 -SessionOption $Options
Export-PSSession -Session $S -OutputModule Server01
Remove-PSSession $S
New-PSSession -ComputerName Server01 -SessionOption $Options
Import-Module Server01
New-PSSessionOption
Cmdlet membuat objek PSSessionOption, dan menyimpan objek dalam $Options
variabel. Perintah New-PSSession
membuat PSSession di komputer Server01.
Parameter SessionOption menggunakan objek yang disimpan di $Options
. Sesi disimpan dalam $S
variabel.
Export-PSSession
Cmdlet mengekspor perintah dari PSSession $S
ke modul Server01.
Remove-PSSession
Cmdlet menghapus PSSession dalam $S
variabel.
New-PSSession
Cmdlet membuat PSSession baru yang tersambung ke komputer Server01. Parameter SessionOption menggunakan objek yang disimpan di $Options
. Import-Module
Cmdlet mengimpor perintah dari modul Server01. Perintah dalam modul dijalankan di PSSession di komputer Server01.
Parameter
-AllowClobber
Mengekspor perintah yang ditentukan, bahkan jika mereka memiliki nama yang sama dengan perintah dalam sesi saat ini.
Jika Anda mengekspor perintah dengan nama yang sama dengan perintah dalam sesi saat ini, perintah yang diekspor menyembunyikan atau mengganti perintah asli. Untuk informasi selengkapnya, lihat about_Command_Precedence.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ArgumentList
Mengekspor varian perintah yang dihasilkan dari menggunakan argumen yang ditentukan (nilai parameter).
Misalnya, untuk mengekspor varian Get-Item
perintah dalam drive sertifikat (Cert:) di PSSession di $S
, ketik Export-PSSession -Session $S -Command Get-Item -ArgumentList cert:
.
Type: | Object[] |
Aliases: | Args |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Certificate
Menentukan sertifikat klien yang digunakan untuk menandatangani file format (*. Format.ps1xml) atau file modul skrip (.psm1) dalam modul yang Export-PSSession
dibuat. Masukkan variabel yang berisi sertifikat atau perintah atau ekspresi yang mendapatkan sertifikat.
Untuk menemukan sertifikat, gunakan Get-PfxCertificate
cmdlet atau gunakan Get-ChildItem
cmdlet di drive Sertifikat (Cert:). Jika sertifikat tidak valid atau tidak memiliki otoritas yang memadai, perintah gagal.
Type: | X509Certificate2 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CommandName
Mengekspor hanya perintah dengan nama atau pola nama yang ditentukan. Kartubebas diizinkan. Gunakan CommandName atau aliasnya, Nama.
Secara default, Export-PSSession
mengekspor semua perintah dari PSSession kecuali untuk perintah yang memiliki nama yang sama dengan perintah dalam sesi saat ini. Ini mencegah perintah disembunyikan atau digantikan oleh perintah dalam sesi saat ini. Untuk mengekspor semua perintah, bahkan perintah yang menyembunyikan atau mengganti perintah lain, gunakan parameter AllowClobber .
Jika Anda menggunakan parameter CommandName , file pemformatan untuk perintah tidak diekspor kecuali Anda menggunakan parameter FormatTypeName . Demikian pula, jika Anda menggunakan parameter FormatTypeName , tidak ada perintah yang diekspor kecuali Anda menggunakan parameter CommandName .
Type: | String[] |
Aliases: | Name |
Position: | 2 |
Default value: | All commands in the session. |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-CommandType
Mengekspor hanya jenis objek perintah yang ditentukan. Gunakan CommandType atau aliasnya, Ketik.
Nilai yang dapat diterima untuk parameter ini adalah sebagai berikut:
Alias
: Semua alias PowerShell dalam sesi saat ini.All
: Semua jenis perintah. Ini setara denganGet-Command -Name *
.Application
: Semua file selain file PowerShell di jalur yang tercantum dalam variabel lingkungan Jalur ($env:path
), termasuk file .txt, .exe, dan .dll.Cmdlet
: Cmdlet dalam sesi saat ini. Cmdlet adalah default.Configuration
: Konfigurasi PowerShell. Untuk informasi selengkapnya, lihat about_Session_Configurations.ExternalScript
: Semua file .ps1 di jalur yang tercantum dalam variabel lingkungan Jalur ($env:path
).Filter
danFunction
: Semua fungsi PowerShell.Script
Blok skrip dalam sesi saat ini.Workflow
Alur kerja PowerShell. Untuk informasi selengkapnya, lihat about_Workflows.
Nilai-nilai ini didefinisikan sebagai enumerasi berbasis bendera. Anda dapat menggabungkan beberapa nilai bersama-sama untuk mengatur beberapa bendera menggunakan parameter ini. Nilai dapat diteruskan ke parameter CommandType sebagai array nilai atau sebagai string yang dipisahkan koma dari nilai tersebut. Cmdlet akan menggabungkan nilai menggunakan operasi biner-OR. Meneruskan nilai sebagai array adalah opsi paling sederhana dan juga memungkinkan Anda menggunakan penyelesaian tab pada nilai.
Type: | CommandTypes |
Aliases: | Type |
Accepted values: | Alias, All, Application, Cmdlet, Configuration, ExternalScript, Filter, Function, Script, Workflow |
Position: | Named |
Default value: | All commands in the session. |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Menentukan jenis pengodean untuk file target. Nilai defaultnya adalah utf8NoBOM
.
Nilai yang dapat diterima untuk parameter ini adalah sebagai berikut:
ascii
: Menggunakan pengodean untuk set karakter ASCII (7-bit).ansi
: Menggunakan pengodean untuk halaman kode ANSI budaya saat ini. Opsi ini ditambahkan di PowerShell 7.4.bigendianunicode
: Mengodekan dalam format UTF-16 menggunakan urutan byte big-endian.bigendianutf32
: Mengodekan dalam format UTF-32 menggunakan urutan byte big-endian.oem
: Menggunakan pengodean default untuk MS-DOS dan program konsol.unicode
: Mengodekan dalam format UTF-16 menggunakan urutan byte little-endian.utf7
: Mengodekan dalam format UTF-7.utf8
: Mengodekan dalam format UTF-8.utf8BOM
: Mengodekan dalam format UTF-8 dengan Byte Order Mark (BOM)utf8NoBOM
: Mengodekan dalam format UTF-8 tanpa Byte Order Mark (BOM)utf32
: Mengodekan dalam format UTF-32.
Dimulai dengan PowerShell 6.2, parameter Pengodean juga memungkinkan ID numerik halaman kode terdaftar (seperti -Encoding 1251
) atau nama string halaman kode terdaftar (seperti -Encoding "windows-1251"
). Untuk informasi selengkapnya, lihat dokumentasi .NET untuk Encoding.CodePage.
Dimulai dengan PowerShell 7.4, Anda dapat menggunakan Ansi
nilai untuk parameter Pengodean untuk meneruskan ID numerik untuk halaman kode ANSI budaya saat ini tanpa harus menentukannya secara manual.
Catatan
UTF-7* tidak lagi disarankan untuk digunakan. Pada PowerShell 7.1, peringatan ditulis jika Anda menentukan utf7
untuk parameter Pengodean .
Type: | Encoding |
Accepted values: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Menimpa satu atau beberapa file output yang ada, bahkan jika file memiliki atribut baca-saja.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FormatTypeName
Mengekspor instruksi pemformatan hanya untuk jenis Microsoft .NET Framework yang ditentukan. Masukkan nama jenis. Secara default, Export-PSSession
mengekspor instruksi pemformatan untuk semua jenis .NET Framework yang tidak ada di namespace System.Management.Automation .
Nilai parameter ini harus berupa nama jenis yang dikembalikan oleh Get-FormatData
perintah dalam sesi tempat perintah diimpor. Untuk mendapatkan semua data pemformatan dalam sesi jarak jauh, ketik *
.
Jika Anda menggunakan parameter FormatTypeName , tidak ada perintah yang diekspor kecuali Anda menggunakan parameter CommandName .
Jika Anda menggunakan parameter CommandName , file pemformatan untuk perintah tidak diekspor kecuali Anda menggunakan parameter FormatTypeName .
Type: | String[] |
Position: | 3 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FullyQualifiedModule
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.
Anda tidak dapat menentukan parameter FullyQualifiedModule dalam perintah yang sama dengan parameter Modul . dua parameter saling eksklusif.
Type: | ModuleSpecification[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Module
Mengekspor hanya perintah dalam snap-in dan modul PowerShell yang ditentukan. Masukkan nama snap-in dan modul. Kartubebas tidak diizinkan.
Untuk informasi selengkapnya, lihat Import-Module
dan about_PSSnapins.
Type: | String[] |
Aliases: | PSSnapin |
Position: | Named |
Default value: | All commands in the session. |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutputModule
Menentukan jalur dan nama opsional untuk modul yang dibuat oleh Export-PSSession
. Jalur default adalah $HOME\Documents\WindowsPowerShell\Modules
. Parameter ini diperlukan.
Jika subdirektori modul atau file apa pun yang Export-PSSession
membuat sudah ada, perintah gagal. Untuk menimpa file yang ada, gunakan parameter Paksa .
Type: | String |
Aliases: | PSPath, ModuleName |
Position: | 1 |
Default value: | $HOME\Documents\WindowsPowerShell\Modules |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Session
Menentukan PSSession tempat perintah diekspor. Masukkan variabel yang berisi objek sesi atau perintah yang mendapatkan objek sesi, seperti Get-PSSession
perintah. Parameter ini diperlukan.
Type: | PSSession |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
None
Anda tidak dapat menyalurkan objek ke cmdlet ini.
Output
Cmdlet ini mengembalikan daftar file yang terdiri dari modul yang dibuatnya.
Catatan
Export-PSSession
bergantung pada infrastruktur jarak jauh PowerShell. Untuk menggunakan cmdlet ini, komputer harus dikonfigurasi untuk jarak jauh. Untuk informasi selengkapnya, lihat about_Remote_Requirements.
Anda tidak dapat menggunakan Export-PSSession
untuk mengekspor penyedia PowerShell.
Perintah yang diekspor berjalan secara implisit dalam PSSession tempat perintah tersebut diekspor. Detail menjalankan perintah dari jarak jauh ditangani sepenuhnya oleh PowerShell. Anda dapat menjalankan perintah yang diekspor sama seperti anda akan menjalankan perintah lokal.
Export-ModuleMember
menangkap dan menyimpan informasi tentang PSSession dalam modul yang diekspornya. Jika PSSession tempat perintah diekspor ditutup saat Anda mengimpor modul, dan tidak ada PSSessions aktif ke komputer yang sama, perintah dalam modul mencoba membuat ulang PSSession. Jika upaya untuk membuat ulang PSSession gagal, perintah yang diekspor tidak akan berjalan.
Informasi sesi yang Export-ModuleMember
menangkap dan menyimpan dalam modul tidak menyertakan opsi sesi, seperti yang Anda tentukan dalam $PSSessionOption
variabel preferensi atau dengan menggunakan parameter SessionOption dari New-PSSession
cmdlet , , Enter-PSSession
atau Invoke-Command
. Jika PSSession asli ditutup saat Anda mengimpor modul, modul akan menggunakan PSSession lain ke komputer yang sama, jika tersedia. Untuk mengaktifkan perintah yang diimpor agar berjalan dalam sesi yang dikonfigurasi dengan benar, buat PSSession dengan opsi yang Anda inginkan sebelum mengimpor modul.
Untuk menemukan perintah yang akan diekspor, Export-PSSession
gunakan Invoke-Command
cmdlet untuk menjalankan Get-Command
perintah di PSSession. Untuk mendapatkan dan menyimpan data pemformatan untuk perintah, ia menggunakan Get-FormatData
cmdlet dan Export-FormatData
. Anda mungkin melihat pesan kesalahan dari Invoke-Command
, Get-Command
, Get-FormatData
, dan Export-FormatData
saat Anda menjalankan Export-PSSession
perintah. Selain itu, Export-PSSession
tidak dapat mengekspor perintah dari sesi yang tidak menyertakan Get-Command
cmdlet , , Get-FormatData
Select-Object
, dan Get-Help
.
Export-PSSession
Write-Progress
menggunakan cmdlet untuk menampilkan kemajuan perintah. Anda mungkin melihat bilah kemajuan saat perintah sedang berjalan.
Perintah yang diekspor memiliki batasan yang sama dengan perintah jarak jauh lainnya, termasuk ketidakmampuan untuk memulai program dengan antarmuka pengguna, seperti Notepad.
Karena profil PowerShell tidak dijalankan di PSSessions, perintah yang ditambahkan profil ke sesi tidak tersedia untuk Export-PSSession
. Untuk mengekspor perintah dari profil, gunakan Invoke-Command
perintah untuk menjalankan profil di PSSession secara manual sebelum mengekspor perintah.
Modul yang Export-PSSession
dibuat mungkin menyertakan file pemformatan, meskipun perintah tidak mengimpor data pemformatan. Jika perintah tidak mengimpor data pemformatan, file pemformatan apa pun yang dibuat tidak akan berisi data pemformatan.