<# .SYNOPSIS Checks whether the running system is a QEMU virtual machine. #> function Test-Qemu { ((Get-WmiObject win32_computersystem).Manufacturer) -eq "QEMU"; } <# .SYNOPSIS Checks whether the active session is executed with admin rights. #> function Test-Admin { net session 2> $null | Out-Null; return $?; } <# .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 -Force $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 $_ }; }