salut,
le verbe "GET" est l'un des verbes autorisés dans le nommage des fonctions et cmdletsGet-Verb -verb geton peux omettre ce verbe pour toutes les cmdlets et fonctions:
childitem c:\ psdrive hotfixsauf 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" 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
man key | Select-String "\s{5,}about_*"
et s'il s'agissait d'un nom d'un executable alors l'interpréteur powershell traitera cette fonction omme étant une commande externe et non pas une fonction
function get-cmd {1}
ou bien:
function get-Function {1}
le revert de la médaille dans tout ça et qu'on ne pourra plus bénéficier de la puissance de la complétion de powershell
Service -n[TAB] algun autre désavantage de l'utilisation de ces commandes sans le verbe "GET", est que parfois avec la commandes get-help on se retrouve devant des resultats inatendus
PS D:\> help verb
NOM
Write-Verbose
...
.....
voici une petite fonction qui s'appuie sur les mots reservé et teste si une commande est valide ou pas:
#############################################################
#
# 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
}
}