Export-PSSession

Exportálja a parancsokat egy másik munkamenetből, és egy PowerShell-modulba menti őket.

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

A Export-PSSession parancsmag egy helyi vagy távoli számítógépen egy másik PowerShell-munkamenetből (PSSession) lekéri a parancsmagokat, függvényeket, aliasokat és más parancstípusokat, és egy PowerShell-modulba menti őket. A modul parancsainak az aktuális munkamenethez való hozzáadásához használja a Import-Module parancsmagot.

Ellentétben Import-PSSessiona parancsokat egy másik PSSession-ből az aktuális munkamenetbe importáló parancsokkal, Export-PSSession a parancsokat egy modulba menti. A parancsok nem lesznek importálva az aktuális munkamenetbe.

Parancsok exportálásához a New-PSSession parancsmaggal hozzon létre egy PSSessiont, amely az exportálni kívánt parancsokkal rendelkezik. Ezután a Export-PSSession parancsmaggal exportálhatja a parancsokat.

A parancsnevek ütközésének megakadályozása érdekében Export-PSSession az alapértelmezett beállítás az összes parancs exportálása, kivéve az aktuális munkamenetben található parancsokat. Az exportálni kívánt parancsokat a CommandName paraméter használatával adhatja meg.

A Export-PSSession parancsmag a PowerShell implicit remoting funkcióját használja. Amikor parancsokat importál az aktuális munkamenetbe, azok implicit módon futnak az eredeti munkamenetben vagy egy hasonló munkamenetben az eredeti számítógépen.

Példák

1. példa: Parancsok exportálása PSSession-ből

Ez a példa létrehoz egy új PSSession-t a helyi számítógépről a Server01 számítógépre. Az aktuális munkamenetben található parancsok kivételével az összes parancs a helyi számítógépen lévő Server01 nevű modulba lesz exportálva. Az exportálás tartalmazza a parancsok formázási adatait.

$S = New-PSSession -ComputerName Server01
Export-PSSession -Session $S -OutputModule Server01

A New-PSSession parancs psSession-t hoz létre a Server01 számítógépen. A PSSession a változóban $S van tárolva. A Export-PSSession parancs exportálja a $S változó parancsait és az adatok formázását a Server01 modulba.

2. példa: A Beolvasás és beállítás parancs exportálása

Ez a példa exportálja az Get összes parancsot egy Set kiszolgálóról.

$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

Ezek a parancsok exportálják a GetSet parancsokat egy távoli számítógépen található Microsoft Exchange Server beépülő modulból a $PSHOME\Modules helyi számítógép könyvtárában található Exchange-modulba. Ha a modult a $PSHOME\Modules könyvtárba helyezi, az a számítógép összes felhasználója számára elérhetővé válik.

3. példa: Parancsok exportálása távoli számítógépről

Ez a példa egy távoli számítógépen lévő PSSession parancsmagokat exportál, és a helyi számítógépen lévő modulba menti őket. A modul parancsmagjait a rendszer hozzáadja az aktuális munkamenethez, hogy azok használhatók legyenek.

$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

A New-PSSession parancs létrehoz egy PSSession-t a Server01 számítógépen, és menti a $S változóba. A Export-PSSession parancs exportálja azokat a parancsmagokat, amelyeknek a neve a test from the PSSession in $S to the TestCmdlets modulba a helyi számítógépen kezdődik.

A Remove-PSSession parancsmag törli a PSSession-t $S az aktuális munkamenetből. Ez a parancs azt mutatja, hogy a PSSession-nek nem kell aktívnak lennie a munkamenetből importált parancsok használatához. A Import-Module parancsmag hozzáadja a TestCmdlets modul parancsmagjait az aktuális munkamenethez. A parancs bármikor futtatható bármely munkamenetben.

A Get-Help parancsmag segítséget kap azokhoz a parancsmagokhoz, amelyeknek a neve a Test parancsmaggal kezdődik. Miután hozzáadta a modul parancsait az aktuális munkamenethez, a Get-HelpGet-Command parancsmagokkal megismerheti az importált parancsokat. A Test-Files parancsmag exportálva lett a Server01 számítógépről, és hozzáadva a munkamenethez. A Test-Files parancsmag egy távoli munkamenetben fut azon a számítógépen, ahonnan a parancsot importálták. A PowerShell létrehoz egy munkamenetet a TestCmdlets modulban tárolt információkból.

4. példa: Exportálási és clobber-parancsok az aktuális munkamenetben

Ez a példa exportálja a változóban tárolt parancsokat az aktuális munkamenetbe.

Export-PSSession -Session $S -AllowClobber -OutputModule AllCommands

Ez a Export-PSSession parancs exportálja az összes parancsot és az összes formázási adatot a változó PSSession rendszeréből az $S aktuális munkamenetbe. Az AllowClobber paraméter olyan parancsokat tartalmaz, amelyek neve megegyezik az aktuális munkamenet parancsaival.

5. példa: Parancsok exportálása zárt PSSession-ből

Ez a példa bemutatja, hogyan futtathatja az exportált parancsokat speciális beállításokkal az exportált parancsokat létrehozó PSSession bezárásakor.

Ha egy modul importálásakor az eredeti távoli munkamenet bezárul, a modul minden olyan nyitott távoli munkamenetet használ, amely az eredeti számítógéphez csatlakozik. Ha az eredeti számítógépnek nincs aktuális munkamenete, a modul újra létrehozza a munkamenetet.

Ha egy távoli munkamenetben speciális beállításokkal rendelkező exportált parancsokat szeretne futtatni, a modul importálása előtt létre kell hoznia egy távoli munkamenetet ezekkel a beállításokkal. New-PSSession A parancsmag használata a SessionOption paraméterrel

$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

A New-PSSessionOption parancsmag létrehoz egy PSSessionOption objektumot, és menti az objektumot a $Options változóba. A New-PSSession parancs psSession-t hoz létre a Server01 számítógépen. A SessionOption paraméter a következőben $Optionstárolt objektumot használja: . A munkamenetet a $S változó tárolja.

A Export-PSSession parancsmag exportálja a parancsokat a PSSession-ből a Server01 modulba $S . A Remove-PSSession parancsmag törli a PSSession függvényt a $S változóban.

A New-PSSession parancsmag létrehoz egy új PSSession-t, amely a Server01 számítógéphez csatlakozik. A SessionOption paraméter a következőben $Optionstárolt objektumot használja: . A Import-Module parancsmag importálja a parancsokat a Server01 modulból. A modul parancsai a Kiszolgáló01 számítógépen futó PSSession-ben futnak.

Paraméterek

-AllowClobber

Exportálja a megadott parancsokat, még akkor is, ha a parancsok neve megegyezik az aktuális munkamenet parancsaival.

Ha az aktuális munkamenetben egy paranccsal megegyező nevű parancsot exportál, az exportált parancs elrejti vagy lecseréli az eredeti parancsokat. További információ: about_Command_Precedence.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ArgumentList

Exportálja a parancs azon variánsát, amely a megadott argumentumok (paraméterértékek) használatával származik.

Ha például exportálni szeretné a Get-Item parancs variánsát a tanúsítvány (Cert:) meghajtón a PSSession fájlban $S, írja be a következőt Export-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

Megadja a formátumfájlok (*) aláírásához használt ügyféltanúsítványt. Format.ps1xml) vagy szkriptmodul-fájlok (.psm1) a létrehozott modulban Export-PSSession . Adjon meg egy változót, amely a tanúsítványt lekérő tanúsítványt vagy parancsot vagy kifejezést tartalmazza.

Tanúsítvány kereséséhez használja a Get-PfxCertificate parancsmagot, vagy használja a Get-ChildItem tanúsítvány (Cert:) meghajtón található parancsmagot. Ha a tanúsítvány érvénytelen, vagy nem rendelkezik megfelelő jogosultságtal, a parancs meghiúsul.

Type:X509Certificate2
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CommandName

Csak a megadott neveket vagy névmintákat tartalmazó parancsokat exportálja. Helyettesítő karakterek használata engedélyezett. Használja a CommandName vagy annak aliasát, a Name parancsot.

Alapértelmezés szerint Export-PSSession az összes parancsot exportálja a PSSession szolgáltatásból, kivéve azokat a parancsokat, amelyek neve megegyezik az aktuális munkamenet parancsaival. Ez megakadályozza a parancsok elrejtését vagy lecserélését az aktuális munkamenetben. Az összes parancs exportálásához használja az AllowClobber paramétert, még azokat is, amelyek más parancsokat rejtenek el vagy cserélnek le.

Ha a CommandName paramétert használja, a parancsok formázási fájljai csak akkor lesznek exportálva, ha a FormatTypeName paramétert használja. Hasonlóképpen, ha a FormatTypeName paramétert használja, a parancsok csak akkor lesznek exportálva, ha a CommandName paramétert használja.

Type:String[]
Aliases:Name
Position:2
Default value:All commands in the session.
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-CommandType

Csak a megadott parancsobjektum-típusokat exportálja. Használja a CommandType vagy annak aliasát, a Type parancsot.

A paraméter elfogadható értékei a következők:

  • Alias: Az aktuális munkamenet összes PowerShell-aliasa.
  • All: Minden parancstípus. Ez a megfelelője a Get-Command -Name *.
  • Application: Az Elérési út környezeti változóban ($env:path) felsorolt elérési utakon lévő PowerShell-fájlokon kívül minden fájl, beleértve a .txt, .exe és .dll fájlokat.
  • Cmdlet: Az aktuális munkamenet parancsmagjai. A parancsmag az alapértelmezett.
  • Configuration: PowerShell-konfiguráció. További információ: about_Session_Configurations.
  • ExternalScript: Az Elérési út környezeti változóban ($env:path) felsorolt elérési utak összes .ps1 fájlja.
  • Filter és Function: Minden PowerShell-függvény.
  • Script Szkriptblokkok az aktuális munkamenetben.
  • Workflow Egy PowerShell-munkafolyamat. További információ: about_Workflows.

Ezek az értékek jelölőalapú számbavételként vannak definiálva. Több érték kombinálásával több jelölőt is beállíthat ezzel a paraméterrel. Az értékek átadhatók a CommandType paraméternek értéktömbként vagy az értékek vesszővel elválasztott sztringjeként. A parancsmag bináris VAGY művelettel egyesíti az értékeket. Az értékek tömbként való átadása a legegyszerűbb lehetőség, és lehetővé teszi a tabulátorkiegészítés használatát is az értékeken.

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

Megadja a célfájl kódolási típusát. Az alapértelmezett érték utf8NoBOM.

A paraméter elfogadható értékei a következők:

  • ascii: Az ASCII (7 bites) karakterkészlet kódolását használja.
  • ansi: Az aktuális kultúra ANSI-kódlapjának kódolását használja. Ez a beállítás a PowerShell 7.4-ben lett hozzáadva.
  • bigendianunicode: UTF-16 formátumban kódolja a big-endian bájtsorrendet.
  • bigendianutf32: UTF-32 formátumban kódolja a big-endian bájtsorrendet.
  • oem: Az MS-DOS és a konzolprogramok alapértelmezett kódolását használja.
  • unicode: UTF-16 formátumban kódolja a kis végű bájtsorrendet.
  • utf7: UTF-7 formátumban kódol.
  • utf8: UTF-8 formátumban kódol.
  • utf8BOM: UTF-8 formátumban kódol byte order mark (BOM)
  • utf8NoBOM: UTF-8 formátumban kódol byte order mark (BOM) nélkül
  • utf32: UTF-32 formátumban kódol.

A PowerShell 6.2-től kezdődően a Kódolás paraméter lehetővé teszi a regisztrált kódlapok (például -Encoding 1251) numerikus azonosítóit vagy a regisztrált kódlapok sztringneveit (például -Encoding "windows-1251"). További információt a Encoding.CodePage .NET-dokumentációjában talál.

A PowerShell 7.4-től kezdve a AnsiKódolás paraméter értékével anélkül adhat meg numerikus azonosítót az aktuális kultúra ANSI-kódlapjához, hogy manuálisan kellene megadnia.

Feljegyzés

Az UTF-7* már nem ajánlott. A PowerShell 7.1-ről figyelmeztetést ír, ha utf7 megadja a Kódolás paramétert.

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

Felülír egy vagy több meglévő kimeneti fájlt, még akkor is, ha a fájl írásvédett attribútummal rendelkezik.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FormatTypeName

Csak a megadott Microsoft .NET-keretrendszer-típusok formázási utasításait exportálja. Adja meg a típusneveket. Alapértelmezés szerint Export-PSSession az összes olyan .NET-keretrendszer típus formázási utasításait exportálja, amelyek nincsenek a System.Management.Automation névtérben.

Ennek a paraméternek az értékének egy olyan típusnak kell lennie, amelyet egy Get-FormatData parancs a parancsok importálását tartalmazó munkamenetben ad vissza. A távoli munkamenet összes formázási adatának lekéréséhez írja be a következőt *: .

Ha a FormatTypeName paramétert használja, a parancsok csak akkor lesznek exportálva, ha a CommandName paramétert használja.

Ha a CommandName paramétert használja, a parancsok formázási fájljai csak akkor lesznek exportálva, ha a FormatTypeName paramétert használja.

Type:String[]
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedModule

Az érték lehet egy modul neve, egy teljes modul specifikációja vagy egy modulfájl elérési útja.

Ha az érték egy elérési út, az elérési út teljes mértékben minősített vagy relatív lehet. A relatív elérési út feloldása a használandó utasítást tartalmazó szkripthez képest történik.

Ha az érték egy név vagy egy modul specifikációja, a PowerShell megkeresi a PSModulePath-t a megadott modulban.

A modulspecifikáció egy kivonatoló, amely a következő kulcsokkal rendelkezik.

  • ModuleName - A Kötelező a modul nevét adja meg.
  • GUID - Nem kötelező : A modul GUID azonosítója.
  • Emellett az alábbi három kulcs közül legalább egyet meg kell adnia.
    • ModuleVersion – A modul minimálisan elfogadható verzióját adja meg.
    • MaximumVersion – Meghatározza a modul maximálisan elfogadható verzióját.
    • RequiredVersion – A modul pontos, kötelező verzióját adja meg. Ez nem használható a többi Verzió billentyűvel.

A Modul paraméterrel azonos parancsban nem adhatja meg a Teljesképűmodule paramétert. a két paraméter kölcsönösen kizárja egymást.

Type:ModuleSpecification[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Module

Csak a megadott PowerShell-beépülő modulokban és -modulokban lévő parancsokat exportálja. Adja meg a beépülő modul és a modul nevét. Helyettesítő karakterek használata nem engedélyezett.

További információkért lásd Import-Module és 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

A modul által Export-PSSessionlétrehozott opcionális elérési utat és nevet adja meg. Az alapértelmezett elérési út a következő $HOME\Documents\WindowsPowerShell\Modules. Ez a paraméter kötelező.

Ha a modul alkönyvtára vagy a már létrehozott fájlok Export-PSSession bármelyike létezik, a parancs meghiúsul. Meglévő fájlok felülírásához használja a Force paramétert.

Type:String
Aliases:PSPath, ModuleName
Position:1
Default value:$HOME\Documents\WindowsPowerShell\Modules
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Session

Azt a PSSessiont adja meg, amelyből a parancsokat exportálja. Adjon meg egy változót, amely egy munkamenet-objektumot vagy egy munkamenet-objektumot lekérő parancsot( például parancsot Get-PSSession ) tartalmaz. Ez a paraméter kötelező.

Type:PSSession
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Bevitelek

None

Ehhez a parancsmaghoz nem lehet objektumokat csövezni.

Kimenetek

FileInfo

Ez a parancsmag a létrehozott modult alkotó fájlok listáját adja vissza.

Jegyzetek

Export-PSSession a PowerShell-remoting infrastruktúrára támaszkodik. A parancsmag használatához a számítógépet újra kell konfigurálni. További információ: about_Remote_Requirements.

PowerShell-szolgáltató exportálása nem használható Export-PSSession .

Az exportált parancsok implicit módon futnak abban a PSSessionban, amelyből exportálták őket. A parancsok távoli futtatásának részleteit teljes mértékben a PowerShell kezeli. Az exportált parancsokat ugyanúgy futtathatja, mint a helyi parancsokat.

Export-ModuleMember rögzíti és menti az exportált modul PSSession-járól szóló információkat. Ha a modul importálásakor bezárul az a PSSession, amelyből a parancsokat exportálták, és nincs aktív PSSessions ugyanarra a számítógépre, a modul parancsai megpróbálják újra létrehozni a PSSessiont. Ha a PSSession ismételt létrehozása sikertelen, az exportált parancsok nem futnak.

A modulban rögzített és mentett munkamenetadatok Export-ModuleMember nem tartalmaznak munkamenet-beállításokat, például a beállítási változóban $PSSessionOption vagy a parancsmagok Enter-PSSessionInvoke-Command SessionOption paraméterének New-PSSessionhasználatával megadott beállításokat. Ha a modul importálásakor az eredeti PSSession bezárul, a modul egy másik PSSession-t fog használni ugyanahhoz a számítógéphez, ha elérhető. Ha engedélyezni szeretné, hogy az importált parancsok megfelelően konfigurált munkamenetben fussanak, hozzon létre egy PSSessiont a modul importálása előtt használni kívánt beállításokkal.

Az exportálandó Export-PSSession parancsok megkereséséhez használja a Invoke-Command parancsmagot a Get-Command PSSession parancs futtatásához. A parancsok formázási adatainak lekéréséhez és mentéséhez a parancsmagokat és Export-FormatData a Get-FormatData parancsmagokat használja. Előfordulhat, hogy hibaüzenetek jelennek meg a Invoke-Command, Get-Command, Get-FormatDataés Export-FormatData egy parancs futtatásakor Export-PSSession . Emellett nem exportálhat parancsokat olyan munkamenetből, Export-PSSession amely nem tartalmazza a Get-Command, Get-FormatData, Select-Object, és Get-Help parancsmagokat.

Export-PSSession parancsmag Write-Progress használatával jeleníti meg a parancs előrehaladását. Előfordulhat, hogy a parancs futtatása közben megjelenik a folyamatjelző sáv.

Az exportált parancsok ugyanazokra a korlátozásokra vonatkoznak, mint más távoli parancsok, beleértve azt is, hogy a program nem indítható el felhasználói felületen, például Jegyzettömb.

Mivel a PowerShell-profilok nem PSSessions-ban futnak, a profil által a munkamenethez hozzáadott parancsok nem érhetők el.Export-PSSession A parancsok profilból való exportálásához a Invoke-Command parancsok exportálása előtt futtassa manuálisan a profilt a PSSessionban.

A létrehozott modul Export-PSSession formázási fájlokat is tartalmazhat, még akkor is, ha a parancs nem importál formázási adatokat. Ha a parancs nem importál formázási adatokat, a létrehozott formázási fájlok nem tartalmaznak formázási adatokat.