Export-PSSession
Exporte des commandes à partir d’une autre session et les enregistre dans un module PowerShell.
Syntaxe
Default (Par défaut)
Export-PSSession
[-Session] <PSSession>
[-OutputModule] <string>
[[-CommandName] <string[]>]
[[-FormatTypeName] <string[]>]
[-Force]
[-Encoding <string>]
[-AllowClobber]
[-ArgumentList <Object[]>]
[-CommandType <CommandTypes>]
[-Module <string[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[-Certificate <X509Certificate2>]
[<CommonParameters>]
Description
L’applet de commande Export-PSSession obtient des applets de commande, des fonctions, des alias et d’autres types de commandes d’une autre session PowerShell (PSSession) sur un ordinateur local ou distant et les enregistre dans un module PowerShell. Pour ajouter les commandes du module à la session active, utilisez l’applet de commande Import-Module.
Contrairement à Import-PSSession, qui importe les commandes d’une autre session PSSession dans la session active, Export-PSSession enregistre les commandes dans un module. Les commandes ne sont pas importées dans la session active.
Pour exporter des commandes, utilisez l’applet de commande New-PSSession pour créer une session PSSession avec les commandes que vous souhaitez exporter. Utilisez ensuite l’applet de commande Export-PSSession pour exporter les commandes.
Pour éviter les conflits de noms de commandes, la valeur par défaut de Export-PSSession consiste à exporter toutes les commandes, à l’exception des commandes qui existent dans la session active. Vous pouvez utiliser le paramètre CommandName pour spécifier les commandes à exporter.
L’applet de commande Export-PSSession utilise la fonctionnalité de communication à distance implicite de PowerShell. Lorsque vous importez des commandes dans la session active, elles s’exécutent implicitement dans la session d’origine ou dans une session similaire sur l’ordinateur d’origine.
Exemples
Exemple 1 : Exporter des commandes à partir d’une session PSSession
Cet exemple crée une session PSSession à partir de l’ordinateur local vers l’ordinateur Server01. Toutes les commandes, sauf celles qui existent dans la session active, sont exportées vers le module nommé Server01 sur l’ordinateur local. L’exportation inclut les données de mise en forme des commandes.
$S = New-PSSession -ComputerName Server01
Export-PSSession -Session $S -OutputModule Server01
La commande New-PSSession crée une session PSSession sur l’ordinateur Server01. La session PSSession est stockée dans la variable $S. La commande Export-PSSession exporte les commandes de la variable $S et met en forme les données dans le module Server01.
Exemple 2 : Exporter les commandes Get et Set
Cet exemple exporte toutes les commandes Get et Set à partir d’un serveur.
$S = New-PSSession -ConnectionUri https://exchange.microsoft.com/mailbox -Credential [email protected] -Authentication Negotiate
Export-PSSession -Session $S -Module exch* -CommandName Get-*, Set-* -FormatTypeName * -OutputModule $PSHOME\Modules\Exchange -Encoding ASCII
Ces commandes exportent les commandes Get et Set d’un composant logiciel enfichable Microsoft Exchange Server sur un ordinateur distant vers un module Exchange dans le répertoire $PSHOME\Modules de l’ordinateur local.
Le fait de placer le module dans le répertoire $PSHOME\Modules le rend accessible à tous les utilisateurs de l’ordinateur.
Exemple 3 : Exporter des commandes à partir d’un ordinateur distant
Cet exemple exporte des applets de commande à partir d’une session PSSession sur un ordinateur distant et les enregistre dans un module sur l’ordinateur local. Les applets de commande du module sont ajoutées à la session active afin qu’elles puissent être utilisées.
$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
La commande New-PSSession crée une session PSSession sur l’ordinateur Server01 et l’enregistre dans la variable $S. La commande Export-PSSession exporte les applets de commande dont les noms commencent par Test à partir de psSession dans $S vers le module TestCmdlets sur l’ordinateur local.
L’applet de commande Remove-PSSession supprime la session PSSession dans $S de la session active. Cette commande indique que la session PSSession n’a pas besoin d’être active pour utiliser les commandes importées à partir de la session. L’applet de commande Import-Module ajoute les applets de commande dans le module TestCmdlets à la session active. La commande peut être exécutée dans n’importe quelle session à tout moment.
L’applet de commande Get-Help obtient de l’aide pour les applets de commande dont les noms commencent par Test. Une fois les commandes d’un module ajoutées à la session active, vous pouvez utiliser les applets de commande Get-Help et Get-Command pour en savoir plus sur les commandes importées. L’applet de commande Test-Files a été exportée à partir de l’ordinateur Server01 et ajoutée à la session. L’applet de commande Test-Files s’exécute dans une session distante sur l’ordinateur à partir duquel la commande a été importée. PowerShell crée une session à partir d’informations stockées dans le module TestCmdlets.
Exemple 4 : Exporter et clobber des commandes dans la session active
Cet exemple exporte des commandes stockées dans une variable dans la session active.
Export-PSSession -Session $S -AllowClobber -OutputModule AllCommands
Cette commande Export-PSSession exporte toutes les commandes et toutes les données de mise en forme à partir de la session PSSession dans la variable $S dans la session active. Le paramètre AllowClobber inclut des commandes portant les mêmes noms que les commandes de la session active.
Exemple 5 : Exporter des commandes à partir d’une session PSSession fermée
Cet exemple montre comment exécuter les commandes exportées avec des options spéciales lorsque la session PSSession qui a créé les commandes exportées est fermée.
Si la session distante d’origine est fermée lorsqu’un module est importé, le module utilise toute session distante ouverte qui se connecte à l’ordinateur d’origine. S’il n’existe aucune session active sur l’ordinateur d’origine, le module rétablit une session.
Pour exécuter des commandes exportées avec des options spéciales dans une session à distance, vous devez créer une session distante avec ces options avant d’importer le module. Utiliser l’applet de commande New-PSSession avec le paramètre SessionOption
$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
L’applet de commande New-PSSessionOption crée un objet PSSessionOption et enregistre l’objet dans la variable $Options. La commande New-PSSession crée une session PSSession sur l’ordinateur Server01.
Le paramètre SessionOption utilise l’objet stocké dans $Options. La session est stockée dans la variable $S.
L’applet de commande Export-PSSession exporte les commandes de psSession dans $S vers le module Server01.
L’applet de commande Remove-PSSession supprime la session PSSession dans la variable $S.
L’applet de commande New-PSSession crée une session PSSession qui se connecte à l’ordinateur Server01. Le paramètre SessionOption utilise l’objet stocké dans $Options. L’applet de commande Import-Module importe les commandes à partir du module Server01. Les commandes du module sont exécutées dans la session PSSession sur l’ordinateur Server01.
Paramètres
-AllowClobber
Exporte les commandes spécifiées, même si elles ont les mêmes noms que les commandes de la session active.
Si vous exportez une commande portant le même nom qu’une commande dans la session active, la commande exportée masque ou remplace les commandes d’origine. Pour plus d’informations, consultez about_Command_Precedence.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-ArgumentList
Exporte la variante de la commande qui résulte de l’utilisation des arguments spécifiés (valeurs de paramètre).
Par exemple, pour exporter la variante de la commande Get-Item dans le lecteur de certificat (Cert :) dans la session PSSession dans $S, tapez Export-PSSession -Session $S -Command Get-Item -ArgumentList Cert:.
Propriétés du paramètre
| Type: | Object[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Args |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Certificate
Spécifie le certificat client utilisé pour signer les fichiers de format (*). Fichiers de module format.ps1xml) ou de script (.psm1) dans le module qui Export-PSSession crée. Entrez une variable qui contient un certificat ou une commande ou une expression qui obtient le certificat.
Pour rechercher un certificat, utilisez l’applet de commande Get-PfxCertificate ou utilisez l’applet de commande Get-ChildItem dans le lecteur Certificat (Cert :). Si le certificat n’est pas valide ou ne dispose pas d’une autorité suffisante, la commande échoue.
Propriétés du paramètre
| Type: | X509Certificate2 |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-CommandName
Exporte uniquement les commandes avec les noms ou modèles de noms spécifiés. Les caractères génériques sont autorisés. Utilisez CommandName ou son alias, Nom.
Par défaut, Export-PSSession exporte toutes les commandes à partir de la session PSSession, à l’exception des commandes qui ont les mêmes noms que les commandes de la session active. Cela empêche les commandes d’être masquées ou remplacées par des commandes dans la session active. Pour exporter toutes les commandes, même celles qui masquent ou remplacent d’autres commandes, utilisez le paramètre AllowClobber.
Si vous utilisez le paramètre CommandName, les fichiers de mise en forme des commandes ne sont pas exportés, sauf si vous utilisez le paramètre FormatTypeName. De même, si vous utilisez le paramètre FormatTypeName, aucune commande n’est exportée, sauf si vous utilisez le paramètre CommandName.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | All commands in the session. |
| Prend en charge les caractères génériques: | True |
| DontShow: | False |
| Alias: | Nom |
Jeux de paramètres
(All)
| Position: | 2 |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-CommandType
Exporte uniquement les types spécifiés d’objets de commande. Utilisez CommandType ou son alias, Type.
Les valeurs acceptables pour ce paramètre sont les suivantes :
-
Alias: tous les alias PowerShell dans la session active. -
All: tous les types de commandes. C’est l’équivalent deGet-Command -Name *. -
Application: tous les fichiers autres que les fichiers PowerShell répertoriés dans la variable d’environnement PATH ($Env:PATH), y compris .txt, .exeet les fichiers .dll. -
Cmdlet: applets de commande de la session active. L’applet de commande est la valeur par défaut. -
Configuration: configuration PowerShell. Pour plus d’informations, consultez about_Session_Configurations. -
ExternalScript: tous les fichiers.ps1dans les chemins répertoriés dans la variable d’environnement PATH ($Env:PATH). -
FilteretFunction: toutes les fonctions PowerShell. -
Scriptblocs de script dans la session active. -
Workflowun flux de travail PowerShell. Pour plus d’informations, consultez about_Workflows.
Ces valeurs sont définies comme une énumération basée sur des indicateurs. Vous pouvez combiner plusieurs valeurs pour définir plusieurs indicateurs à l’aide de ce paramètre. Les valeurs peuvent être transmises au paramètre CommandType en tant que tableau de valeurs ou sous forme de chaîne séparée par des virgules de ces valeurs. L’applet de commande combine les valeurs à l’aide d’une opération binary-OR. La transmission de valeurs en tant que tableau est l’option la plus simple et vous permet également d’utiliser la complétion par tabulation pour les valeurs.
Propriétés du paramètre
| Type: | CommandTypes |
| Valeur par défaut: | All commands in the session. |
| Valeurs acceptées: | Alias, All, Application, Cmdlet, Configuration, ExternalScript, Filter, Function, Script, Workflow |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Catégorie |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Encoding
Spécifie le type d’encodage du fichier cible. La valeur par défaut est UTF8.
Les valeurs acceptables pour ce paramètre sont les suivantes :
-
ASCII: utilise le jeu de caractères ASCII (7 bits). -
BigEndianUnicode: utilise UTF-16 avec l’ordre d’octet big-endian. -
Default; Utilise l’encodage qui correspond à la page de codes active du système. -
OEM: utilise l’encodage qui correspond à la page de codes OEM actuelle du système. -
Unicode: utilise UTF-16 avec l’ordre d’octets little-endian. -
UTF7: utilise UTF-7. -
UTF8: utilise UTF-8. -
UTF32: utilise UTF-32 avec l’ordre d’octet little-endian.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | UTF8 |
| Valeurs acceptées: | ASCII, BigEndianUnicode, Default, OEM, Unicode, UTF7, UTF8, UTF32 |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Force
Remplace un ou plusieurs fichiers de sortie existants, même si le fichier a l’attribut en lecture seule.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-FormatTypeName
Exporte uniquement les instructions de mise en forme pour les types Microsoft .NET Framework spécifiés. Entrez les noms de type. Par défaut, Export-PSSession exporte des instructions de mise en forme pour tous les types .NET Framework qui ne figurent pas dans l’espace de noms System.Management.Automation.
La valeur de ce paramètre doit être le nom d’un type retourné par une commande Get-FormatData dans la session à partir de laquelle les commandes sont importées. Pour obtenir toutes les données de mise en forme dans la session à distance, tapez *.
Si vous utilisez le paramètre FormatTypeName, aucune commande n’est exportée, sauf si vous utilisez le paramètre CommandName.
Si vous utilisez le paramètre CommandName, les fichiers de mise en forme des commandes ne sont pas exportés, sauf si vous utilisez le paramètre FormatTypeName.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | 3 |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-FullyQualifiedModule
La valeur peut être un nom de module, une spécification complète du module ou un chemin d’accès à un fichier de module.
Lorsque la valeur est un chemin d’accès, le chemin d’accès peut être qualifié ou relatif complet. Un chemin relatif est résolu par rapport au script qui contient l’instruction using.
Lorsque la valeur est un nom ou une spécification de module, PowerShell recherche le PSModulePath pour le module spécifié.
Une spécification de module est une table de hachage qui a les clés suivantes.
-
ModuleName- Obligatoire Spécifie le nom du module. -
GUID- facultatif spécifie le GUID du module. - Il est également obligatoire pour spécifier au moins l’une des trois clés ci-dessous.
-
ModuleVersion: spécifie une version minimale acceptable du module. -
MaximumVersion: spécifie la version maximale acceptable du module. -
RequiredVersion: spécifie une version exacte et requise du module. Cela ne peut pas être utilisé avec les autres clés de version.
-
Vous ne pouvez pas spécifier le paramètre FullyQualifiedModule dans la même commande qu’un paramètre Module. les deux paramètres s’excluent mutuellement.
Propriétés du paramètre
| Type: | |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Module
Exporte uniquement les commandes des composants logiciels enfichables et modules PowerShell spécifiés. Entrez les noms du composant logiciel enfichable et du module. Les caractères génériques ne sont pas autorisés.
Pour plus d’informations, consultez Import-Module et about_PSSnapins.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | All commands in the session. |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | PSSnapin |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-OutputModule
Spécifie un chemin et un nom facultatifs pour le module créé par Export-PSSession. Le chemin d’accès par défaut est : $HOME\Documents\WindowsPowerShell\Modules. Ce paramètre est obligatoire.
Si le sous-répertoire du module ou l’un des fichiers créés Export-PSSession existe déjà, la commande échoue. Pour remplacer les fichiers existants, utilisez le paramètre Forcer.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | $HOME\Documents\WindowsPowerShell\Modules |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | PSPath, ModuleName |
Jeux de paramètres
(All)
| Position: | 1 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Session
Spécifie la session PSSession à partir de laquelle les commandes sont exportées. Entrez une variable qui contient un objet de session ou une commande qui obtient un objet de session, par exemple une commande Get-PSSession. Ce paramètre est obligatoire.
Propriétés du paramètre
| Type: | PSSession |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
None
Vous ne pouvez pas diriger les objets vers cette applet de commande.
Sorties
FileInfo
Cette applet de commande retourne une liste de fichiers qui composent le module qu’il a créé.
Notes
Windows PowerShell inclut les alias suivants pour Export-PSSession:
epsn
Export-PSSession s’appuie sur l’infrastructure de communication à distance PowerShell. Pour utiliser cette applet de commande, l’ordinateur doit être configuré pour la communication à distance. Pour plus d'informations, voir about_Remote_Requirements.
Vous ne pouvez pas utiliser Export-PSSession pour exporter un fournisseur PowerShell.
Les commandes exportées s’exécutent implicitement dans la session PSSession à partir de laquelle elles ont été exportées. Les détails de l’exécution des commandes à distance sont entièrement gérés par PowerShell. Vous pouvez exécuter les commandes exportées comme vous le feriez pour exécuter des commandes locales.
Export-ModuleMember capture et enregistre des informations sur la session PSSession dans le module qu’il exporte. Si la session PSSession à partir de laquelle les commandes ont été exportées est fermée lorsque vous importez le module et qu’il n’y a pas de session PSSession active sur le même ordinateur, les commandes du module tentent de recréer la session PSSession. Si les tentatives de recréation de psSession échouent, les commandes exportées ne s’exécutent pas.
Les informations de session qui Export-ModuleMember capturent et enregistrent dans le module n’incluent pas les options de session, telles que celles que vous spécifiez dans la variable de préférence $PSSessionOption ou à l’aide du paramètre SessionOption des applets de commande New-PSSession, Enter-PSSessionou Invoke-Command. Si la session PSSession d’origine est fermée lorsque vous importez le module, le module utilise une autre session PSSession sur le même ordinateur, si celui-ci est disponible. Pour permettre aux commandes importées de s’exécuter dans une session correctement configurée, créez une session PSSession avec les options souhaitées avant d’importer le module.
Pour rechercher les commandes à exporter, Export-PSSession utilise l’applet de commande Invoke-Command pour exécuter une commande Get-Command dans la session PSSession. Pour obtenir et enregistrer des données de mise en forme pour les commandes, elle utilise les applets de commande Get-FormatData et Export-FormatData. Vous pouvez voir des messages d’erreur à partir de Invoke-Command, Get-Command, Get-FormatDataet Export-FormatData lorsque vous exécutez une commande Export-PSSession. En outre, Export-PSSession ne peut pas exporter de commandes à partir d’une session qui n’inclut pas les applets de commande Get-Command, Get-FormatData, Select-Objectet Get-Help.
Export-PSSession utilise l’applet de commande Write-Progress pour afficher la progression de la commande. La barre de progression peut s’afficher pendant l’exécution de la commande.
Les commandes exportées présentent les mêmes limitations que d’autres commandes distantes, notamment l’incapacité de démarrer un programme avec une interface utilisateur, comme le Bloc-notes.
Étant donné que les profils PowerShell ne sont pas exécutés dans les sessions PSSession, les commandes qu’un profil ajoute à une session ne sont pas disponibles pour Export-PSSession. Pour exporter manuellement des commandes à partir d’un profil, utilisez une commande Invoke-Command pour exécuter le profil dans PSSession manuellement avant d’exporter des commandes.
Le module que Export-PSSession crée peut inclure un fichier de mise en forme, même si la commande n’importe pas de données de mise en forme. Si la commande n’importe pas de données de mise en forme, les fichiers de mise en forme créés ne contiennent pas de données de mise en forme.