Partager via


New-PSRoleCapabilityFile

Crée un fichier qui définit un ensemble de fonctionnalités à exposer via une configuration de session.

Syntaxe

New-PSRoleCapabilityFile
   [-Path] <String>
   [-Guid <Guid>]
   [-Author <String>]
   [-Description <String>]
   [-CompanyName <String>]
   [-Copyright <String>]
   [-ModulesToImport <Object[]>]
   [-VisibleAliases <String[]>]
   [-VisibleCmdlets <Object[]>]
   [-VisibleFunctions <Object[]>]
   [-VisibleExternalCommands <String[]>]
   [-VisibleProviders <String[]>]
   [-ScriptsToProcess <String[]>]
   [-AliasDefinitions <IDictionary[]>]
   [-FunctionDefinitions <IDictionary[]>]
   [-VariableDefinitions <Object>]
   [-EnvironmentVariables <IDictionary>]
   [-TypesToProcess <String[]>]
   [-FormatsToProcess <String[]>]
   [-AssembliesToLoad <String[]>]
   [<CommonParameters>]

Description

L’applet New-PSRoleCapabilityFile de commande crée un fichier qui définit un ensemble de fonctionnalités utilisateur qui peuvent être exposées via des fichiers de configuration de session. Cela inclut la détermination des applets de commande, des fonctions et des scripts disponibles pour les utilisateurs. Le fichier de capacité est un fichier texte lisible par l’homme qui contient une table de hachage des propriétés et des valeurs de configuration de session. Le fichier a une extension de nom de fichier .psrc et peut être utilisé par plusieurs configurations de session.

Tous les paramètres sont New-PSRoleCapabilityFile facultatifs, à l’exception du paramètre Path , qui spécifie le chemin d’accès du fichier. Si vous n’incluez pas de paramètre lorsque vous exécutez l’applet de commande, la clé correspondante dans le fichier de configuration de session est commentée, sauf si elle est notée dans la description du paramètre. Par exemple, si vous n’incluez pas le paramètre AssemblyesToLoad , cette section du fichier de configuration de session est commentée.

Pour utiliser le fichier de capacité de rôle dans une configuration de session, placez d’abord le fichier dans un sous-dossier RoleCapabilities d’un dossier de module PowerShell valide. Référencez ensuite le fichier par nom dans le champ RoleDefinitions dans un fichier de configuration de session PowerShell (.pssc).

Cette applet de commande a été introduite dans Windows PowerShell 5.0.

Exemples

Exemple 1 : Créer un fichier de capacité de rôle vide

Cet exemple crée un fichier de capacité de rôle qui utilise les valeurs par défaut (vides). Le fichier peut être modifié ultérieurement dans un éditeur de texte pour modifier ces paramètres de configuration.

New-PSRoleCapabilityFile -Path ".\ExampleFile.psrc"

Exemple 2 : Créer un fichier de capacité de rôle permettant aux utilisateurs de redémarrer les services et n’importe quel ordinateur VDI

Cet exemple crée un exemple de fichier de capacité de rôle qui permet aux utilisateurs de redémarrer des services et des ordinateurs qui correspondent à un modèle de nom spécifique. Le filtrage de noms est défini en définissant le paramètre ValidatePattern sur l’expression VDI\d+régulière.

$roleParameters = @{
    Path = ".\Maintenance.psrc"
    Author = "User01"
    CompanyName = "Fabrikam Corporation"
    Description = "This role enables users to restart any service and restart any VDI computer."
    ModulesToImport = "Microsoft.PowerShell.Core"
    VisibleCmdlets = "Restart-Service", @{
                      Name = "Restart-Computer"
                      Parameters = @{ Name = "ComputerName"; ValidatePattern = "VDI\d+" }
    }
}
New-PSRoleCapabilityFile @roleParameters

Paramètres

-AliasDefinitions

Ajoute les alias spécifiés aux sessions qui utilisent le fichier de capacité de rôle. Entrez une table de hachage avec les clés suivantes :

  • Nom. Nom de l'alias. Cette clé est obligatoire.
  • Valeur. Commande représentée par l'alias. Cette clé est obligatoire.
  • La description. Chaîne de texte qui décrit l'alias. Cette clé est facultative.
  • Options. Options de l'alias. Cette clé est facultative. La valeur par défaut est Aucune. Les valeurs acceptables pour ce paramètre sont : None, ReadOnly, Constant, Private ou AllScope.

Par exemple : @{Name="hlp";Value="Get-Help";Description="Gets help";Options="ReadOnly"}

Type:IDictionary[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-AssembliesToLoad

Spécifie les assemblys à charger dans les sessions qui utilisent le fichier de capacité de rôle.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Author

Spécifie l’utilisateur qui a créé le fichier de capacité de rôle.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-CompanyName

Identifie l’entreprise qui a créé le fichier de capacité de rôle. La valeur par défaut est Unknown.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Spécifie un droit d’auteur pour le fichier de capacité de rôle. Si vous omettez ce paramètre, New-PSRoleCapabilityFile génère une instruction de copyright à l’aide de la valeur du paramètre Author .

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Description

Spécifie une description du fichier de capacité de rôle.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-EnvironmentVariables

Spécifie les variables d’environnement pour les sessions qui exposent ce fichier de capacité de rôle. Entrez une table de hachage dans laquelle les clés sont les noms des variables d'environnement, et les valeurs sont les valeurs des variables d'environnement.

Par exemple : EnvironmentVariables=@{TestShare="\\\\Server01\TestShare"}

Type:IDictionary
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-FormatsToProcess

Spécifie les fichiers de mise en forme (.ps1xml) qui s’exécutent dans des sessions qui utilisent le fichier de capacité de rôle. La valeur de ce paramètre doit être un chemin d’accès complet ou absolu des fichiers de mise en forme.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-FunctionDefinitions

Ajoute les fonctions spécifiées aux sessions qui exposent la fonctionnalité de rôle. Entrez une table de hachage avec les clés suivantes :

  • Nom. Nom de la fonction. Cette clé est obligatoire.
  • ScriptBlock. Corps de la fonction. Entrez un bloc de script. Cette clé est obligatoire.
  • Options. Options de la fonction. Cette clé est facultative. La valeur par défaut est Aucune. Les valeurs acceptables pour ce paramètre sont : None, ReadOnly, Constant, Private ou AllScope.

Par exemple :

@{Name="Get-PowerShellProcess";ScriptBlock={Get-Process PowerShell};Options="AllScope"}

Type:IDictionary[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Guid

Spécifie un identificateur unique pour le fichier de capacité de rôle. Si vous omettez ce paramètre, New-PSRoleCapabilityFile génère un GUID pour le fichier. Pour créer un GUID dans PowerShell, tapez [guid]::NewGuid().

Type:Guid
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ModulesToImport

Spécifie les modules qui sont automatiquement importés dans des sessions qui utilisent le fichier de capacité de rôle. Par défaut, toutes les commandes des modules répertoriés sont visibles. Lorsqu’elles sont utilisées avec VisibleCmdlets ou VisibleFunctions, les commandes visibles à partir des modules spécifiés peuvent être restreintes.

Chaque module utilisé dans la valeur de ce paramètre peut être représenté par une chaîne ou par une table de hachage. Une chaîne de module se compose uniquement du nom du module. Une table de hachage de module peut inclure des clés ModuleName, ModuleVersion et GUID . Seule la clé ModuleName est requise.

Par exemple, la valeur suivante se compose d'une chaîne et d'une table de hachage. Toutes les combinaisons de chaînes et de tables de hachage, dans n'importe quel ordre, sont valides.

"TroubleshootingPack", @{ModuleName="PSDiagnostics"; ModuleVersion="1.0.0.0";GUID="c61d6278-02a3-4618-ae37-a524d40a7f44"}

Type:Object[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Path

Spécifie le chemin d’accès et le nom du fichier de capacité de rôle. Le fichier doit avoir une .psrc extension de nom de fichier.

Type:String
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-ScriptsToProcess

Spécifie des scripts à ajouter à des sessions qui utilisent le fichier de capacité de rôle. Entrez le chemin d'accès et les noms de fichiers des scripts. La valeur de ce paramètre doit être un chemin d’accès complet ou absolu des noms de fichiers de script.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-TypesToProcess

Spécifie les fichiers de type (.ps1xml) à ajouter aux sessions qui utilisent le fichier de capacité de rôle. Entrez les noms de fichiers de type. La valeur de ce paramètre doit être un chemin d’accès complet ou absolu des noms de fichiers de type.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-VariableDefinitions

Spécifie des variables à ajouter à des sessions qui utilisent le fichier de capacité de rôle. Entrez une table de hachage avec les clés suivantes :

  • Nom. Nom de la variable. Cette clé est obligatoire.
  • Valeur. Valeur de la variable. Cette clé est obligatoire.

Par exemple : @{Name="WarningPreference";Value="SilentlyContinue"}

Type:Object
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-VisibleAliases

Limite les alias de la session à ces alias spécifiés dans la valeur de ce paramètre, ainsi que les alias que vous définissez dans le paramètre AliasDefinition . Les caractères génériques sont pris en charge. Par défaut, tous les alias définis par le moteur PowerShell et tous les alias que les modules exportent sont visibles dans la session.

Par exemple, pour limiter les alias disponibles à gm et gcm, utilisez cette syntaxe : VisibleAliases="gcm", "gp"

Quand un paramètre Visible est inclus dans le fichier de capacité de rôle, PowerShell supprime l’applet Import-Module de commande et son ipmo alias de la session.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-VisibleCmdlets

Limite les applets de commande de la session à celles spécifiées dans la valeur de ce paramètre. Les caractères génériques et les noms qualifiés de module sont pris en charge.

Par défaut, toutes les applets de commande que les modules de l’exportation de session sont visibles dans la session. Utilisez les paramètres SessionType et ModulesToImport pour déterminer quels modules et composants logiciels enfichables sont importés dans la session. Si aucun module dans ModulesToImport n’expose l’applet de commande, New-PSRoleCapabilityFile tente de charger le module approprié.

Quand un paramètre Visible est inclus dans le fichier de configuration de session, PowerShell supprime l’applet Import-Module de commande et son ipmo alias de la session.

Type:Object[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-VisibleExternalCommands

Limite les fichiers binaires, scripts et commandes externes qui peuvent être exécutés dans la session à ceux spécifiés dans la valeur de ce paramètre.

Par défaut, aucune commande externe n’est visible dans cette session.

Quand un paramètre Visible est inclus dans le fichier de configuration de session, PowerShell supprime l’applet Import-Module de commande et son ipmo alias de la session.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-VisibleFunctions

Limite les fonctions de la session à celles spécifiées dans la valeur de ce paramètre, ainsi que les fonctions que vous définissez dans le paramètre FunctionDefinitions . Les caractères génériques sont pris en charge.

Par défaut, toutes les fonctions exportées par les modules de la session sont visibles dans cette session. Utilisez les paramètres SessionType et ModulesToImport pour déterminer quels modules sont importés dans la session.

Quand un paramètre Visible est inclus dans le fichier de configuration de session, PowerShell supprime l’applet Import-Module de commande et son ipmo alias de la session.

Type:Object[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True

-VisibleProviders

Limite les fournisseurs PowerShell de la session à ceux spécifiés dans la valeur de ce paramètre. Les caractères génériques sont pris en charge.

Par défaut, tous les fournisseurs exportés par un module dans la session sont visibles dans la session. Utilisez les paramètres SessionType et ModulesToImport pour déterminer quels modules sont importés dans la session.

Quand un paramètre Visible est inclus dans le fichier de configuration de session, PowerShell supprime l’applet Import-Module de commande et son ipmo alias de la session.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:True