Functions/Remove-MenuItem.ps1
|
function Remove-MenuItem { <# .Synopsis Remove a Menu Item from a menu. .DESCRIPTION Remove a Menu Item from a menu by specifying the menu name and item name. .EXAMPLE C:> Remove-MenuItem -MenuName main -ItemName "UnlockUser" This will remove the UnlockUser menu item from the main menu. .EXAMPLE C:> Remove-MenuItem -MenuName subMenu -ItemName "Item1" This will remove the Item1 menu item from the subMenu. .NOTES NAME: Remove-MenuItem AUTHOR: Thomas Edward KEYWORDS: General scripting Controller Menu #> [cmdletbinding()] Param ( [Parameter(Mandatory)] [string] $MenuName , [Parameter(Mandatory)] [string] $ItemName ) BEGIN { $f = $MyInvocation.InvocationName Write-Verbose -Message "$f - START" } PROCESS { Write-Verbose "Getting menu: $MenuName" $menuObject = Get-Menu -Name "$MenuName" if ($menuObject) { Write-Verbose "Found menu: $($menuObject.Name)" $itemToRemove = $null foreach ($item in $menuObject.MenuItems) { if ($item.Name -eq $ItemName) { $itemToRemove = $item break } } if ($itemToRemove) { $menuIndex = $script:Menus.IndexOf($menuObject) Write-Verbose "Menu index: $menuIndex" if ($menuIndex -ge 0) { $null = $script:Menus[$menuIndex].MenuItems.Remove($itemToRemove) Write-Verbose "Successfully removed item: $ItemName" } } else { Write-Warning -Message "$f - Menu item [$ItemName] not found in menu [$MenuName]" } } else { Write-Error -Message "$f - Menu [$MenuName] not found" } } END { Write-Verbose -Message "$f - END" } } |