NetLbfo.ArgumentCompleters.ps1
# ARGUMENT COMPLETER FUNCTIONS ################################################# # NETLBFO TEAM MEMBERS function NetLBFO_TeamMembersArgumentCompletion { param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter) $optionalCim = @{} $cim = $fakeBoundParameter["CimSession"] if($cim) { $optionalCim.CimSession = $cim } NetAdapter\Get-NetAdapter -Name "$wordToComplete*" @optionalCim | Sort-Object -Property Name | ForEach-Object { $ToolTip = "Name: {0} - Status: {1} `nInterface: {2} - Speed: {3}" -f $_.Name,$_.Status,$_.InterfaceDescription,$_.LinkSpeed New-CompletionResult -CompletionText $_.Name -ToolTip $ToolTip } } # NETLBFO TEAM NAME function NetLBFO_TeamNameArgumentCompletion { param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter) $optionalCim = @{} $cim = $fakeBoundParameter["CimSession"] if($cim) { $optionalCim.CimSession = $cim } NetLbfo\Get-NetLbfoTeam -Name "$wordToComplete*" @optionalCim | Sort-Object -Property Name | ForEach-Object { $ToolTip = "Name: {0} - Status: {1} `nMode: {2} - Algorithm: {3}" -f $_.Name,$_.Status,$_.TeamingMode,$_.LoadBalancingAlgorithm New-CompletionResult -CompletionText $_.Name -ToolTip $ToolTip } } # ARGUMENT COMPLETER REGISTRATION ############################################## # NETLBFO TEAM MEMBERS Register-ArgumentCompleter ` -Command ('New-NetLbfoTeam') ` -Parameter 'TeamMembers' ` -Description 'Complete NetLBFO Team names, for example: New-NetLbfoTeam -Name <name> -TeamMembers <TAB>' ` -ScriptBlock $function:NetLBFO_TeamMembersArgumentCompletion # NETLBFO TEAM NAME Register-ArgumentCompleter ` -Command ('Add-NetLbfoTeamMember','Add-NetLbfoTeamNic','Get-NetLbfoTeam','Get-NetLbfoTeamMember','Get-NetLbfoTeamNic','Remove-NetLbfoTeam','Remove-NetLbfoTeamMember','Rename-NetLbfoTeam','Set-NetLbfoTeam','Set-NetLbfoTeamMember','Set-NetLbfoTeamNic') ` -Parameter 'Name' ` -Description 'Complete NetLBFO Team names, for example: Get-NetLbfoTeam -Name <TAB>' ` -ScriptBlock $function:NetLBFO_TeamNameArgumentCompletion # NETLBFO TEAM NAME Register-ArgumentCompleter ` -Command ('Add-NetLbfoTeamMember','Add-NetLbfoTeamNic','Get-NetLbfoTeamMember','Get-NetLbfoTeamNic','Remove-NetLbfoTeamMember','Remove-NetLbfoTeamNic','Set-NetLbfoTeamMember','Set-NetLbfoTeamNic') ` -Parameter 'Team' ` -Description 'Complete NetLBFO Team names, for example: Get-NetLbfoTeamNic -Team <TAB>' ` -ScriptBlock $function:NetLBFO_TeamNameArgumentCompletion |