<# .SYNOPSIS Creates a new temporary directory. #> function New-TemporaryDirectory { $path = Join-Path ([System.IO.Path]::GetTempPath()) ([System.IO.Path]::GetRandomFileName()); New-Item -ItemType Directory $path; } <# .SYNOPSIS Removes desktop icons which apply to the specified pattern. .PARAMETER Pattern The pattern to match the icons to delete. #> function Remove-DesktopIcon { param( [string] $Pattern ) $path = "Desktop/$Pattern"; foreach ($userDir in @("~", $env:PUBLIC, "$env:SystemDrive/Users/Default")) { $fullName = "$userDir/$path"; if (Test-Path -PathType Leaf $fullName) { Remove-Item $fullName; } } } <# .SYNOPSIS Adds a new shortcut to the start menu. .PARAMETER Name The name of the icon to create. .PARAMETER Target The file to link to. #> function Add-StartMenuIcon { param( [string] $Name, [string] $Target ) Import-Module KnownFolders; Import-Module "$env:ChocolateyInstall/helpers/chocolateyInstaller.psm1"; Install-ChocolateyShortcut -ShortcutFilePath "$((Get-KnownFolder "Common Programs").Path)/$Name.lnk" -TargetPath ((Get-Item $Target).FullName); } <# .SYNOPSIS Removes icons from the task bar. .PARAMETER Pattern The pattern of the icon names to remove. #> function Remove-TaskbarItem { param( [string] $Pattern ) Import-Module -UseWindowsPowerShell PinnedItem; Get-PinnedItem -Type TaskBar | Where-Object { $_.Name -like "$Pattern" } | ForEach-Object { Remove-PinnedItem $_ }; }