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-PSSession
a 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 Get
Set
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-Help
Get-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 $Options
tá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 $Options
tá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 aGet-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
ésFunction
: 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ülutf32
: 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 Ansi
Kó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-PSSession
lé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
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-PSSession
Invoke-Command
SessionOption paraméterének New-PSSession
haszná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.
Kapcsolódó hivatkozások
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: