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-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'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 $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ü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 $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.
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ğeridirGet-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
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ı 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 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) 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-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
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-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 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-PSSession
yöneltemezsiniz.
Çıkışlar
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-PSSession
veya Invoke-Command
cmdlet'lerinin $PSSessionOption
New-PSSession
SessionOption 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-PSSession
Invoke-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-FormatData
ve Export-FormatData
kaynaklarından Invoke-Command
hata iletileri görebilirsiniz. Ayrıca, Export-PSSession
, , Get-FormatData
Select-Object
ve Get-Help
cmdlet'lerini içermeyen Get-Command
bir 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-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.
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.