Commençons par le commencement: Non, je ne connais pas un tel script/utilitaire. Je soupçonne, cependant, que vous pouvez aller assez loin avec les capacités de Powershell d'analyse lui-même.
Par exemple, le script suivant:
function test {}
test
$content = gc $args[0]
[System.Management.Automation.PsParser]::Tokenize($content, [ref] $null) |
? { $_.Type -eq "Command" } | ft
lui-même donné comme argument donne le résultat suivant:
Content Type Start Length StartLine StartColumn EndLine EndColumn
------- ---- ----- ------ --------- ----------- ------- ---------
test Command 20 4 3 1 3 5
gc Command 39 2 5 12 5 14
? Command 127 1 6 76 6 77
ft Command 157 2 6 106 6 108
Ainsi, le type "Commande" comprend au moins les fonctions et les applets de commande. Vous pouvez disséquer davantage ceci en ne dénaturant pas ces jetons.
Cela peut probablement vous dire un peu déjà mais vient nulle part près de votre liste assez exhaustive de ce que les scripts Powershell pourraient exiger.
Mais au moins dans le cas de snap-ins ou de modules, vous avez probablement besoin d'un peu de magie pour savoir exactement ce qui est manquant.
Le pspaser tokenizer. J'avais oublié ça. –