Export-PSSession
Komutları başka bir oturumdan dışarı aktarır ve bir PowerShell modülüne kaydeder.
Syntax
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>]
Description
Export-PSSession
Cmdlet, yerel veya uzak bir bilgisayardaki başka bir PowerShell oturumundan (PSSession) cmdlet'leri, işlevleri, diğer adları ve diğer komut türlerini alır ve bunları bir PowerShell modülüne kaydeder. Modüldeki komutları geçerli oturuma eklemek için cmdlet'ini Import-Module
kullanın.
'den farklı olarak Import-PSSession
, komutları başka bir PSSession'dan geçerli oturuma aktarır ve Export-PSSession
komutları bir modüle kaydeder. Komutlar geçerli oturuma aktarılmaz.
Komutları dışarı aktarmak için, dışarı aktarmak istediğiniz komutları içeren bir PSSession oluşturmak için cmdlet'ini kullanın New-PSSession
. Ardından komutlarını Export-PSSession
dışarı aktarmak için cmdlet'ini kullanın.
Komut adı çakışmalarını önlemek için Export-PSSession
varsayılan değer, geçerli oturumda bulunan komutlar dışında tüm komutları dışarı aktarmaktır. Dışarı aktarılacak komutları belirtmek için CommandName parametresini kullanabilirsiniz.
cmdlet'i Export-PSSession
PowerShell'in örtük uzaktan iletişim özelliğini kullanır. Komutları geçerli oturuma aktardığınızda, bunlar özgün oturumda veya kaynak bilgisayarda benzer bir oturumda örtük olarak çalışır.
Örnekler
Örnek 1: PSSession'dan komutları dışarı aktarma
Bu örnek, yerel bilgisayardan Server01 bilgisayarına yeni bir PSSession oluşturur. Geçerli oturumda bulunanlar dışında tüm komutlar yerel bilgisayardaki Server01 adlı modüle aktarılır. Dışarı aktarma, komutların biçimlendirme verilerini içerir.
$S = New-PSSession -ComputerName Server01
Export-PSSession -Session $S -OutputModule Server01
Komutu, New-PSSession
Server01 bilgisayarında bir PSSession oluşturur. PSSession değişkeninde $S
depolanır. Export-PSSession
komutu, değişkenin $S
komutlarını ve biçimlendirme verilerini Server01 modülüne aktarır.
Örnek 2: Get ve Set komutlarını dışarı aktarma
Bu örnek, ve komutlarının Get
Set
tümünü bir sunucudan dışarı aktarır.
$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
Bu komutlar, ve Set
komutlarını uzak bilgisayardaki bir Microsoft Exchange Server ek bileşeninden yerel bilgisayardaki dizindeki $PSHOME\Modules
bir Exchange modülüne aktarırGet
.
Modülü dizine $PSHOME\Modules
yerleştirmek, bilgisayarın tüm kullanıcıları tarafından erişilebilir olmasını sağlar.
Örnek 3: Uzak bilgisayardan komutları dışarı aktarma
Bu örnek, cmdlet'leri uzak bir bilgisayardaki PSSession'dan dışarı aktarır ve yerel bilgisayardaki bir modüle kaydeder. Modüldeki cmdlet'ler, kullanılabilir olmaları için geçerli oturuma eklenir.
$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
Komut, New-PSSession
Server01 bilgisayarında bir PSSession oluşturur ve bunu değişkene $S
kaydeder. komutu, Export-PSSession
adları PSSession'dan test ile başlayan cmdlet'leri $S
yerel bilgisayardaki TestCmdlets modülüne aktarır.
cmdlet'i Remove-PSSession
içindeki PSSession'i $S
geçerli oturumdan siler. Bu komut, oturumdan içeri aktarılan komutları kullanmak için PSSession'un etkin olmaması gerektiğini gösterir. cmdlet'i Import-Module
, TestCmdlets modülündeki cmdlet'leri geçerli oturuma ekler. Komut herhangi bir zamanda herhangi bir oturumda çalıştırılabilir.
cmdlet'i Get-Help
, adları Test ile başlayan cmdlet'ler için yardım alır. Modüldeki komutlar geçerli oturuma eklendikten sonra, içeri aktarılan komutlar hakkında bilgi edinmek için ve Get-Command
cmdlet'lerini kullanabilirsinizGet-Help
. Cmdlet Server01 Test-Files
bilgisayarından dışarı aktarıldı ve oturuma eklendi. Cmdlet, Test-Files
komutun içeri aktarıldığı bilgisayarda bir uzak oturumda çalışır. PowerShell, TestCmdlets modülünde depolanan bilgilerden bir oturum oluşturur.
Örnek 4: Geçerli oturumdaki dışarı aktarma ve kopyalama komutları
Bu örnek, bir değişkende depolanan komutları geçerli oturuma aktarır.
Export-PSSession -Session $S -AllowClobber -OutputModule AllCommands
Bu Export-PSSession
komut, değişkendeki PSSession'daki $S
tüm komutları ve tüm biçimlendirme verilerini geçerli oturuma aktarır. AllowClobber parametresi, geçerli oturumdaki komutlarla aynı adlara sahip komutlar içerir.
Örnek 5: Komutları kapalı pssession'dan dışarı aktarma
Bu örnek, dışarı aktarılan komutları oluşturan PSSession kapatıldığında özel seçeneklerle dışarı aktarılan komutların nasıl çalıştırıldığını gösterir.
Bir modül içeri aktarıldığında özgün uzak oturum kapatılırsa modül, kaynak bilgisayara bağlanan tüm açık uzak oturumları kullanır. Kaynak bilgisayarda geçerli bir oturum yoksa modül bir oturumu yeniden başlatır.
Dışarı aktarılan komutları uzak oturumda özel seçeneklerle çalıştırmak için modülü içeri aktarmadan önce bu seçeneklerle bir uzak oturum oluşturmanız gerekir. Cmdlet'ini New-PSSession
SessionOption parametresiyle kullanma
$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 bir PSSessionOption nesnesi oluşturur ve nesnesini değişkene $Options
kaydeder. Komutu, New-PSSession
Server01 bilgisayarında bir PSSession oluşturur.
SessionOption parametresi içinde $Options
depolanan nesnesini kullanır. Oturum değişkeninde $S
depolanır.
cmdlet'i Export-PSSession
içindeki PSSession $S
komutlarını Server01 modülüne aktarır.
cmdlet'i Remove-PSSession
değişkenindeki PSSession öğesini $S
siler.
Cmdlet, New-PSSession
Server01 bilgisayarına bağlanan yeni bir PSSession oluşturur. SessionOption parametresi içinde $Options
depolanan nesnesini kullanır. cmdlet'i Import-Module
, Server01 modülündeki komutları içeri aktarır. Modüldeki komutlar Server01 bilgisayarındaki PSSession'da çalıştırılır.
Parametreler
-AllowClobber
Geçerli oturumdaki komutlarla aynı adlara sahip olsalar bile belirtilen komutları dışarı aktarır.
Geçerli oturumda komutla aynı ada sahip bir komutu dışarı aktarırsanız, dışarı aktarılan komut özgün komutları gizler veya değiştirir. Daha fazla bilgi için bkz . about_Command_Precedence.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ArgumentList
Belirtilen bağımsız değişkenlerin (parametre değerleri) kullanılmasından kaynaklanan komutun değişkenini dışarı aktarır.
Örneğin, içindeki PSSession'daki $S
sertifika (Cert:) sürücüsündeki komutun değişkenini Get-Item
dışarı aktarmak için yazınExport-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
Biçim dosyalarını (*) imzalamak için kullanılan istemci sertifikasını belirtir. Oluşturan modülde Format.ps1xml) veya betik modülü Export-PSSession
dosyaları (.psm1). Sertifikayı içeren bir değişken veya sertifikayı alan bir komut veya ifade girin.
Sertifika bulmak için cmdlet'ini Get-PfxCertificate
veya Sertifika (Sertifika:) sürücüsündeki cmdlet'ini kullanın Get-ChildItem
. Sertifika geçerli değilse veya yeterli yetkiye sahip değilse, komut başarısız olur.
Type: | X509Certificate2 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CommandName
Yalnızca belirtilen adlara veya ad desenlerine sahip komutları dışarı aktarır. Joker karakterlere izin verilir. CommandName veya diğer adı Olan Ad'ı kullanın.
Varsayılan olarak, Export-PSSession
geçerli oturumdaki komutlarla aynı adlara sahip komutlar dışındaki tüm komutları PSSession'dan dışarı aktarır. Bu, komutların gizlenmesini veya geçerli oturumdaki komutlar tarafından değiştirilmesini engeller. Diğer komutları gizleyen veya değiştirenler bile olmak üzere tüm komutları dışarı aktarmak için AllowClobber parametresini kullanın.
CommandName parametresini kullanırsanız, FormatTypeName parametresini kullanmadığınız sürece komutların biçimlendirme dosyaları dışarı aktarılmaz. Benzer şekilde, FormatTypeName parametresini kullanırsanız, CommandName parametresini kullanmadığınız sürece hiçbir komut dışarı aktarılmaz.
Type: | String[] |
Aliases: | Name |
Position: | 2 |
Default value: | All commands in the session. |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-CommandType
Yalnızca belirtilen komut nesnesi türlerini dışarı aktarır. CommandType veya diğer adını kullanın, Tür.
Bu parametre için kabul edilebilir değerler aşağıdaki gibidir:
Alias
: Geçerli oturumdaki tüm PowerShell diğer adları.All
: Tüm komut türleri. eşdeğeridirGet-Command -Name *
.Application
: .txt, .exe ve .dll dosyaları dahil olmak üzere Yol ortam değişkeninde listelenen yollardaki PowerShell dosyaları dışındaki tüm dosyalar ($env:path
).Cmdlet
: Geçerli oturumdaki cmdlet'ler. Cmdlet varsayılandır.Configuration
: PowerShell yapılandırması. Daha fazla bilgi için bkz . about_Session_Configurations.ExternalScript
: Yol ortam değişkeninde ($env:path
) listelenen yollardaki tüm .ps1 dosyaları.Filter
veFunction
: Tüm PowerShell işlevleri.Script
Geçerli oturumdaki betik blokları.Workflow
PowerShell iş akışı. Daha fazla bilgi için bkz . about_Workflows.
Bu değerler, bayrak tabanlı bir numaralandırma olarak tanımlanır. Bu parametreyi kullanarak birden çok bayrak ayarlamak için birden çok değeri birlikte birleştirebilirsiniz. Değerler CommandType parametresine bir değer dizisi veya bu değerlerin virgülle ayrılmış dizesi olarak geçirilebilir. cmdlet'i bir ikili OR işlemi kullanarak değerleri birleştirir. Değerleri dizi olarak geçirmek en basit seçenektir ve değerler üzerinde sekme tamamlama özelliğini kullanmanıza da olanak tanır.
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
Hedef dosya için kodlama türünü belirtir. Varsayılan değer şudur: utf8NoBOM
.
Bu parametre için kabul edilebilir değerler aşağıdaki gibidir:
ascii
: ASCII (7 bit) karakter kümesi için kodlamayı kullanır.ansi
: Geçerli kültürün ANSI kod sayfasının kodlamasını kullanır. Bu seçenek PowerShell 7.4'e eklendi.bigendianunicode
: Büyük endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.bigendianutf32
: Büyük endian bayt sırasını kullanarak UTF-32 biçiminde kodlar.oem
: MS-DOS ve konsol programları için varsayılan kodlamayı kullanır.unicode
: Little-endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.utf7
: UTF-7 biçiminde kodlar.utf8
: UTF-8 biçiminde kodlar.utf8BOM
: Bayt Sırası İşareti (BOM) ile UTF-8 biçiminde kodlarutf8NoBOM
: Bayt Sipariş İşareti (BOM) olmadan UTF-8 biçiminde kodlarutf32
: UTF-32 biçiminde kodlar.
PowerShell 6.2'den başlayarak Kodlama parametresi, kayıtlı kod sayfalarının (gibi-Encoding 1251
) sayısal kimliklerine veya kayıtlı kod sayfalarının dize adlarına da (gibi-Encoding "windows-1251"
) izin verir. Daha fazla bilgi için Encoding.CodePage için .NET belgelerine bakın.
PowerShell 7.4'den başlayarak Kodlama parametresinin değerini kullanarak Ansi
geçerli kültürün ANSI kod sayfasının sayısal kimliğini el ile belirtmek zorunda kalmadan geçirebilirsiniz.
Not
UTF-7* artık kullanılması önerilmez. PowerShell 7.1'den itibaren Kodlama parametresini belirtirseniz utf7
bir uyarı yazılır.
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
Dosya salt okunur özniteliğine sahip olsa bile mevcut bir veya daha fazla çıktı dosyasının üzerine yazar.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FormatTypeName
Biçimlendirme yönergelerini yalnızca belirtilen Microsoft .NET Framework türleri için dışarı aktarır. Tür adlarını girin. Varsayılan olarak, Export-PSSession
System.Management.Automation ad alanında olmayan tüm .NET Framework türleri için biçimlendirme yönergelerini dışarı aktarır.
Bu parametrenin değeri, komutların içeri aktarıldığı oturumdaki bir Get-FormatData
komut tarafından döndürülen türün adı olmalıdır. Uzak oturumdaki tüm biçimlendirme verilerini almak için yazın *
.
FormatTypeName parametresini kullanırsanız, CommandName parametresini kullanmadığınız sürece hiçbir komut dışarı aktarılmaz.
CommandName parametresini kullanırsanız, FormatTypeName parametresini kullanmadığınız sürece komutların biçimlendirme dosyaları dışarı aktarılmaz.
Type: | String[] |
Position: | 3 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FullyQualifiedModule
Değer bir modül adı, tam modül belirtimi veya modül dosyasının yolu olabilir.
Değer bir yol olduğunda, yol tam veya göreli olabilir. Göreli yol, using deyimini içeren betike göre çözümlenir.
Değer bir ad veya modül belirtimi olduğunda PowerShell , PSModulePath'de belirtilen modülü arar.
Modül belirtimi, aşağıdaki anahtarlara sahip bir karma tablodur.
ModuleName
- Gerekli Modül adını belirtir.GUID
- İsteğe Bağlı Modülün GUID değerini belirtir.- Ayrıca aşağıdaki üç anahtardan en az birini belirtmek gerekir .
ModuleVersion
- Modülün kabul edilebilir en düşük sürümünü belirtir.MaximumVersion
- Modülün kabul edilebilir en yüksek sürümünü belirtir.RequiredVersion
- Modülün tam, gerekli bir sürümünü belirtir. Bu, diğer Sürüm anahtarlarıyla kullanılamaz.
Bir Module parametresiyle aynı komutta FullyQualifiedModule parametresini belirtemezsiniz. iki parametre birbirini dışlar.
Type: | ModuleSpecification[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Module
Yalnızca belirtilen PowerShell ek bileşenlerindeki ve modüllerindeki komutları dışarı aktarır. Ek bileşen ve modül adlarını girin. Joker karakterlere izin verilmez.
Daha fazla bilgi için bkz Import-Module
. ve 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
tarafından Export-PSSession
oluşturulan modül için isteğe bağlı bir yol ve ad belirtir. Varsayılan yol şeklindedir $HOME\Documents\WindowsPowerShell\Modules
. Bu parametre zorunludur.
Modül alt dizini veya oluşturulan dosyalardan Export-PSSession
herhangi biri zaten varsa, komut başarısız olur. Varolan dosyaların üzerine yazmak için Force parametresini kullanın.
Type: | String |
Aliases: | PSPath, ModuleName |
Position: | 1 |
Default value: | $HOME\Documents\WindowsPowerShell\Modules |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Session
Komutların dışarı aktarıldığı PSSession'ı belirtir. Oturum nesnesi veya komut gibi oturum nesnesi alan bir komut içeren bir Get-PSSession
değişken girin. Bu parametre zorunludur.
Type: | PSSession |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Girişler
None
Nesneleri bu cmdlet'e yöneltemezsiniz.
Çıkışlar
Bu cmdlet, oluşturduğu modülü oluşturan dosyaların listesini döndürür.
Notlar
Export-PSSession
PowerShell uzaktan iletişim altyapısını kullanır. Bu cmdlet'i kullanmak için bilgisayarın uzaktan iletişim için yapılandırılması gerekir. Daha fazla bilgi için bkz . about_Remote_Requirements.
PowerShell sağlayıcısını dışarı aktarmak için kullanamazsınız Export-PSSession
.
Dışarı aktarılan komutlar, dışarı aktarıldıkları PSSession'da örtük olarak çalışır. Komutları uzaktan çalıştırmanın ayrıntıları tamamen PowerShell tarafından işlenir. Dışarı aktarılan komutları yerel komutları çalıştırdığınız gibi çalıştırabilirsiniz.
Export-ModuleMember
pssession hakkındaki bilgileri dışarı aktarmış olduğu modülde yakalar ve kaydeder. Modülü içeri aktardığınızda komutların dışarı aktarıldığı PSSession kapatılırsa ve aynı bilgisayarda etkin PSSessions yoksa modüldeki komutlar PSSession'ı yeniden oluşturma girişiminde bulunur. PSSession yeniden oluşturma girişimleri başarısız olursa, dışarı aktarılan komutlar çalışmaz.
Modülde yakalanan ve kaydeden Export-ModuleMember
oturum bilgileri, tercih değişkeninde veya , Enter-PSSession
veya Invoke-Command
cmdlet'lerinin $PSSessionOption
New-PSSession
SessionOption parametresini kullanarak belirttiğiniz oturum seçenekleri gibi oturum seçeneklerini içermez. Modülü içeri aktardığınızda özgün PSSession kapatılırsa, modül varsa aynı bilgisayara başka bir PSSession kullanır. İçeri aktarılan komutların doğru yapılandırılmış bir oturumda çalışmasını sağlamak için, modülü içeri aktarmadan önce istediğiniz seçenekleri içeren bir PSSession oluşturun.
Dışarı aktarılacak Export-PSSession
komutları bulmak için cmdlet'ini Invoke-Command
kullanarak PSSession'da bir Get-Command
komut çalıştırır. Komutların biçimlendirme verilerini almak ve kaydetmek için ve Export-FormatData
cmdlet'lerini Get-FormatData
kullanır. Bir Export-PSSession
komut çalıştırdığınızda , Get-Command
, Get-FormatData
ve Export-FormatData
hata Invoke-Command
iletileri görebilirsiniz. Ayrıca, Export-PSSession
, , Get-FormatData
Select-Object
ve Get-Help
cmdlet'lerini içermeyen Get-Command
bir oturumdaki komutları dışarı aktaramazsınız.
Export-PSSession
komutun Write-Progress
ilerleme durumunu görüntülemek için cmdlet'ini kullanır. Komut çalışırken ilerleme çubuğunu görebilirsiniz.
Dışarı aktarılan komutlar, Not Defteri gibi bir kullanıcı arabirimiyle program başlatamama gibi diğer uzak komutlarla aynı sınırlamalara sahiptir.
PowerShell profilleri PSSessions içinde çalıştırılmadığından, bir profilin oturuma eklediği komutlar tarafından Export-PSSession
kullanılamaz. Komutları bir profilden dışarı aktarmak için, komutları dışarı aktarmadan önce PSSession'da profili el ile çalıştırmak için komutunu Invoke-Command
kullanın.
Oluşturan modül Export-PSSession
, komut biçimlendirme verilerini içeri aktarmasa bile bir biçimlendirme dosyası içerebilir. Komut biçimlendirme verilerini içeri aktarmazsa, oluşturulan biçimlendirme dosyaları biçimlendirme verileri içermez.
İlişkili Bağlantılar
PowerShell