Aracılığıyla paylaş


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.

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, cmdlet'ini New-PSSession kullanarak dışarı aktarmak istediğiniz komutları içeren bir PSSession oluşturun. 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ğeri 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

Komut, 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: Al ve Ayarla komutlarını dışarı aktarma

Bu örnek, ve Set komutlarının Get 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ün dizine $PSHOME\Modules yerleştirilmesi, modülün 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ılabilmeleri 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

Komutu, New-PSSession Server01 bilgisayarında bir PSSession oluşturur ve değişkenine $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 $S öğesini 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, Get-Help adları Test ile başlayan cmdlet'ler için yardım alır. Bir 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. Test-Files Cmdlet Server01 bilgisayarından dışarı aktarıldı ve oturuma eklendi. Cmdlet, Test-Files komutun içeri aktarıldığı bilgisayarda uzak bir 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: Kapalı bir PSSession'dan komutları 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 herhangi bir açık uzak oturumu kullanır. Kaynak bilgisayarda geçerli bir oturum yoksa modül bir oturumu yeniden başlatır.

Dışarı aktarılan komutları uzak bir 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'i bir PSSessionOption nesnesi oluşturur ve nesnesini değişkenine $Options kaydeder. Komut, 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ünden 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.

Sertifikayı bulmak için cmdlet'ini Get-PfxCertificate kullanın veya Sertifika (Cert:) 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 Name'i 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 şunlardır:

  • 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$env:path yollardaki ( ) PowerShell dosyaları dışındaki tüm dosyalar.
  • 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ı sabit listesi olarak tanımlanır. Bu parametreyi kullanarak birden çok bayrağı ayarlamak için birden çok değeri 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 ayrıca değerlerde sekme tamamlama özelliğini kullanmanıza 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. utf8NoBOM varsayılan değerdir.

Bu parametre için kabul edilebilir değerler şunlardır:

  • ascii: ASCII (7 bit) karakter kümesi için kodlamayı kullanır.
  • bigendianunicode: Big-endian bayt sırasını kullanarak UTF-16 biçiminde kodlar.
  • bigendianutf32: Big-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 Sipariş İş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) sayısal kimliklerine veya kayıtlı kod sayfalarının (gibi-Encoding 1251-Encoding "windows-1251") dize adlarına da izin verir. Daha fazla bilgi için Encoding.CodePage için .NET belgelerine bakın.

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 var olan 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-PSSessionSystem.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

ModuleSpecification nesneleri biçiminde belirtilen adlara sahip modülleri belirtir. ModuleSpecification Constructor (Hashtable) öğesinin Açıklamalar bölümüne bakın.

Örneğin, FullyQualifiedModule parametresi şu biçimlerden birinde belirtilen bir modül adını kabul eder:

  • @{ModuleName = "modulename"; ModuleVersion = "version_number"}
  • @{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}

ModuleName ve ModuleVersion gereklidir, ancak Guid isteğe bağlıdır. Bir Modül 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üllerdeki 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 Zorla 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 bir 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 öğesine Export-PSSessionyöneltemezsiniz.

Çıkışlar

FileInfo

Export-PSSession , 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.

Bir 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ı aynı yerel komutları çalıştırdığınız gibi çalıştırabilirsiniz.

Export-ModuleMember dışarı aktardığını modülde PSSession hakkındaki bilgileri yakalar ve kaydeder. Modülü içeri aktardığınızda komutların dışarı aktarıldığı PSSession kapatılırsa ve aynı bilgisayarda etkin PSSession yoksa, modüldeki komutlar PSSession'u 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 belirttiğiniz veya , Enter-PSSessionveya Invoke-Command cmdlet'lerinin $PSSessionOptionNew-PSSessionSessionOption parametresini kullananlar gibi oturum seçeneklerini içermez. Modülü içeri aktardığınızda özgün PSSession kapatılırsa, modül varsa aynı bilgisayarda 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çeneklerle bir PSSession oluşturun.

Dışarı aktarılacak komutları bulmak için cmdlet'ini Export-PSSessionInvoke-Command kullanarak PSSession'da bir Get-Command komut çalıştırın. 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 kaynaklarından Invoke-Commandhata iletileri görebilirsiniz. Ayrıca, Export-PSSession , , Get-FormatDataSelect-Objectve Get-Help cmdlet'lerini içermeyen Get-Commandbir oturumdan 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 dahil olmak üzere 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.

Komut biçimlendirme verilerini içeri aktarmasa bile, oluşturan modül Export-PSSession bir biçimlendirme dosyası içerebilir. Komut biçimlendirme verilerini içeri aktarmazsa, oluşturulan biçimlendirme dosyaları biçimlendirme verileri içermez.