PowerShell / PowerShell/PowerShell

Allow `$PSCmdlet` methods in constrained language

Ouverte
#17,906 3 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Issue-Enhancement Needs-Triage WG-Cmdlets WG-Reviewed WG-Security
Langage dominant
C#
Étoiles
55.5k
Forks
8.5k
Merge moyen
1 j 2 h
PR mergées (30 j)
88

Description

Summary of the new feature / enhancement

The following fails when using constrained language mode:

function Test-ShouldProcess {
     [CmdletBinding(SupportsShouldProcess, ConfirmImpact = 'High')]
     param()

     if($PSCmdlet.ShouldProcess('something')) {
         return $true
     }
}

Error:

Cannot invoke method. Method invocation is supported only on core types in this language mode.

Other usages are also blocked, such as getting preference variables from caller scope within modules:

  param (
    $VerbosePreference = $PSCmdlet.GetVariableValue('VerbosePreference')
  )
Proposed technical implementation details (optional)

No response

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par reproduire les exemples de ShouldProcess et GetVariableValue en mode de langage contraint, puis suivez le traitement des appels de méthodes dans le langage contraint. Définissez les méthodes autorisées de $PSCmdlet et vérifiez que ces appels fonctionnent sans assouplir les restrictions sur les autres appels de méthodes.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
csharp, powershell
Domaine
cli, security
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.