salut,

le verbe "GET" est l'un des verbes autorisés dans le nommage des fonctions et cmdlets.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
PS II> Get-Verb -verb get
on peux omettre ce verbe pour toutes les cmdlets et fonctions:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
PS II> childitem c:\inuse | acl
PS II> hotfix; psdrive
sauf les cmdlets get-command et get-process ne supportent pas cette omission parceque le mot "process" est un mot reservé (help keywords) et "command" est vu par powershell comme etant le vieux shell "command.com"

Code : Sélectionner tout - Visualiser dans une fenêtre à part
PS II> man key | Select-String "\s{5,}about_*"
il est à noter aussi que les fonction ayant comme nom un mot reservé seront traiter comme étant des mots reservés et non pas comme étant des fonctions

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
PS II> function get-Function {1}
PS II> function
>>
et s'il s'agissait d'un nom d'un executable alors l'interpréteur powershell traitera cette fonction comme étant une commande externe et non pas une fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
PS II> function get-cmd {1}
PS II> cmd
Microsoft Windows XP [version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

D:\>

l'omission du verbe "GET" à un grand désavantage est qu'on ne pourra plus bénéficier de la puissance de la complétion de powershell

Code : Sélectionner tout - Visualiser dans une fenêtre à part
PS II> Serv{TAB]ice -n[TAB] alg

un autre désavantage, est que parfois avec la l'utilisation de cmdlet get-help on se retrouve devant des resultats inatendus

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
PS II> help verb
 
NOM
    Write-Verbose
...
.....


pour finir, voici une petite fonction qui s'appuie sur les mots reservé et teste si une commande est valide ou pas

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
PS II> cat c:\inuse\scripts\psh\tcv.ps1

#############################################################
#
#  PS D:\> Test-CommandValidation -command get-process | fl
#            VerbNounConvention : True
#            ReservedKeyWords   : True
#            VerbConvention     : True
#
#############################################################
function Test-CommandValidation {
   param($Command)
   $keys = man key |
             Select-String "(\S+)(?=\s{5,}about_*)" |
                  select -expand Matches |
                        select -expand value
   $verbNounConvention = $verbconvention = $reservedkeywords = $false
   $verb,$noun = $Command.Split('-')
   if($noun) {
      $verbNounConvention = $true
      if( (get-verb $verb) ) { $verbconvention = $true }
      if($keys -contains $noun) { $reservedkeywords = $true }
   }
   else {
       $reservedkeywords = $verbconvention = $null
   }
    new-object PSObject -prop @{
       VerbNounConvention = $verbNounConvention
       VerbConvention = $verbconvention
       ReservedKeyWords = $reservedkeywords
    }
}