completers/groupSam.ps1
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
$groupSam = { param( $commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter ) $fakeBoundParameter.remove('identity') $filter = "{0}*" -f $wordToComplete Get-ADGroup @fakeBoundParameter -filter { samaccountname -like $filter } | ForEach-Object { $_ | Return-GroupObject } } function Return-GroupObject { [CMDLetBinding()] param( [Parameter(ValueFromPipeline)] $group ) BEGIN { $completers = $script:config.FancyCompleters.group } PROCESS { if ($script:config.UseFancyCompleters) { $ListText = & $completers.ListText $ToolTip = & $completers.ToolTip New-Object System.Management.Automation.CompletionResult( $_.samaccountname, $ListText, 'ParameterValue', $ToolTip ) } else { New-Object System.Management.Automation.Completionresult( $_.samaccountname ) } } } # Enable for *-ADGroup* Get-Command *-ADGroup* | ForEach-Object { Register-ArgumentCompleter -CommandName $_ -Parameter Identity -ScriptBlock $groupSam } |