Export-PSSession
Komutları başka bir oturumdan dışarı aktarır ve bir PowerShell modülüne kaydeder.
Sözdizimi
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'i 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 Import-Module
cmdlet'ini kullanın.
Komutları başka bir PSSession'dan geçerli oturuma aktaran Import-PSSession
aksine, Export-PSSession
komutları bir modüle kaydeder. Komutlar geçerli oturuma aktarılmaz.
Komutları dışarı aktarmak için New-PSSession
cmdlet'ini kullanarak dışarı aktarmak istediğiniz komutları içeren bir PSSession oluşturun. Ardından komutları dışarı aktarmak için Export-PSSession
cmdlet'ini kullanın.
Komut adı çakışmalarını önlemek için, Export-PSSession
için 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.
Export-PSSession
cmdlet'i 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
New-PSSession
komutu, Server01 bilgisayarında bir PSSession oluşturur. PSSession, $S
değişkeninde depolanır.
Export-PSSession
komutu, $S
değişkeninin komutlarını ve biçimlendirme verilerini Server01 modülüne aktarır.
Örnek 2: Get ve Set komutlarını dışarı aktarma
Bu örnek, tüm Get
ve Set
komutlarını bir sunucudan dışarı aktarır.
$newSession = @{
ConnectionUri = 'https://exchange.microsoft.com/mailbox'
Credential = 'exchangeadmin01@hotmail.com'
Authentication = 'Negotiate'
}
$S = New-PSSession @newSession
$exportSession = @{
Session = $S
Module = 'exch*'
CommandName = 'Get-*', 'Set-*'
FormatTypeName = '*'
OutputModule = "$PSHOME\Modules\Exchange"
Encoding = 'ascii'
}
Export-PSSession @exportSession
Bu komutlar, Get
ve Set
komutlarını uzak bilgisayardaki bir Microsoft Exchange Server ek bileşeninden yerel bilgisayardaki $PSHOME\Modules
dizinindeki bir Exchange modülüne aktarır.
Modülün $PSHOME\Modules
dizinine 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ılabilir olmaları için geçerli oturuma eklenir.
$newSession = @{
ComputerName = 'Server01'
Credential = 'Server01\User01'
}
$S = New-PSSession @newSession
$exportSession = @{
Session = $S
OutputModule = 'TestCmdlets'
Type = 'Cmdlet'
CommandName = '*test*'
FormatTypeName = '*'
}
Export-PSSession @exportSession
Remove-PSSession $S
Import-Module TestCmdlets
Get-Help Test*
Test-Files
New-PSSession
komutu, Server01 bilgisayarında bir PSSession oluşturur ve $S
değişkenine kaydeder.
Export-PSSession
komutu, adları $S
'daki PSSession'dan Test ile başlayan cmdlet'leri yerel bilgisayardaki TestCmdlets modülüne aktarır.
Remove-PSSession
cmdlet'i geçerli oturumdan $S
pssession siler. Bu komut, oturumdan içeri aktarılan komutları kullanmak için PSSession'un etkin olmaması gerektiğini gösterir.
Import-Module
cmdlet'i, TestCmdlets modülündeki cmdlet'leri geçerli oturuma ekler. Komut herhangi bir zamanda herhangi bir oturumda çalıştırılabilir.
Get-Help
cmdlet'i, 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 Get-Help
ve Get-Command
cmdlet'lerini kullanabilirsiniz.
Test-Files
cmdlet'i Server01 bilgisayarından dışarı aktarıldı ve oturuma eklendi.
Test-Files
cmdlet'i, komutun içeri aktarıldığı bilgisayardaki 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
komutu, $S
değişkenindeki PSSession'daki 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.
New-PSSession
parametresiyle cmdlet'ini kullanın
$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 nesneyi $Options
değişkenine kaydeder.
New-PSSession
komutu, Server01 bilgisayarında bir PSSession oluşturur.
SessionOption parametresi $Options
içinde depolanan nesnesini kullanır. Oturum $S
değişkeninde depolanır.
Export-PSSession
cmdlet'i, $S
'daki PSSession komutlarını Server01 modülüne aktarır.
Remove-PSSession
cmdlet'i $S
değişkenindeki PSSession'i siler.
New-PSSession
cmdlet'i, Server01 bilgisayarına bağlanan yeni bir PSSession oluşturur.
SessionOption parametresi $Options
içinde depolanan nesnesini kullanır.
Import-Module
cmdlet'i Komutları Server01 modülünden 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.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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, Get-Item
komutunun değişkenini $S
PSSession'daki sertifika (Cert:) sürücüsünde dışarı aktarmak için Export-PSSession -Session $S -Command Get-Item -ArgumentList Cert:
yazın.
Tür: | Object[] |
Diğer adlar: | Args |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Certificate
Biçim dosyalarını (*) imzalamak için kullanılan istemci sertifikasını belirtir. .psm1
oluşturduğu modülde Format.ps1xml) veya betik modülü dosyaları (Export-PSSession
). Sertifikayı içeren bir değişken veya sertifikayı alan bir komut veya ifade girin.
Sertifika bulmak için Get-PfxCertificate
cmdlet'ini veya Sertifika (Sertifika:) sürücüsündeki Get-ChildItem
cmdlet'ini kullanın. Sertifika geçerli değilse veya yeterli yetkiye sahip değilse, komut başarısız olur.
Tür: | X509Certificate2 |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-CommandName
Yalnızca belirtilen adlara veya ad desenlerine sahip komutları dışarı aktarır. Joker karakterlere izin verilir. CommandName veya diğer adını Namekullanın.
Varsayılan olarak, Export-PSSession
geçerli oturumdaki komutlarla aynı adlara sahip komutlar dışında PSSession'dan tüm komutları 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.
Tür: | String[] |
Diğer adlar: | Name |
Position: | 2 |
Default value: | All commands in the session. |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.Get-Command -Name *
eşdeğerdir. -
Application
: .txt, .exeve .dll dosyaları dahil olmak üzere PATH ortam değişkeninde ($Env:PATH
) listelenen 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
: PATH ortam değişkeninde (.ps1
) listelenen yollardaki tüm$Env:PATH
dosyaları. -
Filter
veFunction
: Tüm PowerShell işlevleri. - Geçerli oturumdaki Betik bloklarını
Script
. - PowerShell iş akışı
Workflow
. 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.
Tür: | CommandTypes |
Diğer adlar: | Type |
Kabul edilen değerler: | Alias, All, Application, Cmdlet, Configuration, ExternalScript, Filter, Function, Script, Workflow |
Position: | Named |
Default value: | All commands in the session. |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Encoding
Hedef dosya için kodlama türünü belirtir. Varsayılan değer 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 Sırası İş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 sayısal kimliklerine (-Encoding 1251
gibi) veya kayıtlı kod sayfalarının dize adlarına (-Encoding "windows-1251"
gibi) de izin verir. Daha fazla bilgi için Encoding.CodePageiçin .NET belgelerine bakın.
PowerShell 7.4'den başlayarak, Ansi
parametresinin değerini kullanarak 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, utf7
parametresi için belirtirseniz bir uyarı yazılır.
Tür: | Encoding |
Kabul edilen değerler: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Force
Dosya salt okunur özniteliğine sahip olsa bile mevcut bir veya daha fazla çıktı dosyasının üzerine yazar.
Tür: | SwitchParameter |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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 bulunmayan 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ığı oturumda Get-FormatData
komutu tarafından döndürülen bir 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.
Tür: | String[] |
Position: | 3 |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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, belirtilen modülü psmodulepath 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 için Gerekli .
-
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 ve gerekli bir sürümünü belirtir. Bu, diğer Sürüm anahtarlarıyla kullanılamaz.
-
Modülü parametresiyle aynı komutta FullyQualifiedModule parametresini belirtemezsiniz. iki parametre birbirini dışlar.
Tür: | ModuleSpecification[] |
Position: | Named |
Default value: | None |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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.
Tür: | String[] |
Diğer adlar: | PSSnapin |
Position: | Named |
Default value: | All commands in the session. |
Gerekli: | False |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-OutputModule
Export-PSSession
tarafından oluşturulan modül için isteğe bağlı bir yol ve ad belirtir. Varsayılan yol $HOME\Documents\WindowsPowerShell\Modules
. Bu parametre gereklidir.
Modül alt dizini veya Export-PSSession
oluşturulan dosyalardan herhangi biri zaten varsa, komut başarısız olur. Var olan dosyaların üzerine yazmak için Zorla parametresini kullanın.
Tür: | String |
Diğer adlar: | PSPath, ModuleName |
Position: | 1 |
Default value: | $HOME\Documents\WindowsPowerShell\Modules |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | False |
-Session
Komutların dışarı aktarıldığı PSSession'ı belirtir.
Get-PSSession
komutu gibi bir oturum nesnesi veya oturum nesnesi alan bir komut içeren bir değişken girin. Bu parametre gereklidir.
Tür: | PSSession |
Position: | 0 |
Default value: | None |
Gerekli: | True |
İşlem hattı girişini kabul et: | False |
Joker karakterleri kabul et: | 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 Export-PSSession
kullanamazsınız.
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 Export-ModuleMember
yakalayan ve kaydeden oturum bilgileri, $PSSessionOption
tercih değişkeninde belirttiğiniz veya , New-PSSession
veya Enter-PSSession
cmdlet'lerinin Invoke-Command
parametresini kullanarak 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 komutları bulmak için Export-PSSession
, PSSession'da bir Invoke-Command
komutu çalıştırmak için Get-Command
cmdlet'ini kullanır. Komutların biçimlendirme verilerini almak ve kaydetmek için Get-FormatData
ve Export-FormatData
cmdlet'lerini kullanır. bir Invoke-Command
komutu çalıştırdığınızda Get-Command
, Get-FormatData
, Export-FormatData
ve Export-PSSession
hata iletileri görebilirsiniz. Ayrıca, Export-PSSession
Get-Command
, Get-FormatData
, Select-Object
ve Get-Help
cmdlet'lerini içermeyen bir oturumdan komutları dışarı aktaramaz.
Export-PSSession
, komutun ilerleme durumunu görüntülemek için Write-Progress
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 da 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 Export-PSSession
için kullanılamaz. Komutları bir profilden dışarı aktarmak için Invoke-Command
komutunu kullanarak komutları dışarı aktarmadan önce PSSession'da profili el ile çalıştırın.
Export-PSSession
oluşturulan modül, 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