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 GetSet 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-PSSessionSessionOption 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 $Optionsdepolanan 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 $Optionsdepolanan 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 $Ssertifika (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ğeridir Get-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 ve Function: 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 kodlar
  • utf8NoBOM: Bayt Sipariş İşareti (BOM) olmadan UTF-8 biçiminde kodlar
  • utf32: 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-PSSessionoluş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

FileInfo

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-PSSessionveya Invoke-Command cmdlet'lerinin $PSSessionOptionNew-PSSessionSessionOption 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-FormatDatave Export-FormatData hata Invoke-Commandiletileri görebilirsiniz. Ayrıca, Export-PSSession , , Get-FormatDataSelect-Objectve Get-Help cmdlet'lerini içermeyen Get-Commandbir 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-PSSessionkullanı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.