Fix Deleted app shortcuts from Start menu, Desktop, Taskbar in Windows 11 or 10

Methods to solve deleted app shortcuts from Start menu, desktop, and Taskbar after installing Microsoft Defender version 1.381.2140.0 on Windows 11 and 10.

Deleted app shortcuts from Start menu, Desktop, Taskbar in Windows 11 or 10

Security intelligence updates for Microsoft Defender Antivirus version 1.381.2140.0 carrying bug has removed shortcuts of Windows apps. A large number of people complain that after installing this update shortcuts of apps like Microsoft Office 365, Excel, Word, Notepad++, mRemoteNG, Teamviewer, Outlook, VLC disappeared from Start menu, Taskbar, and Desktop. Number of users is consistently increasing to report the same occurrence for other applications. In this post, you find some references to PowerShell Scripts that can fix Deleted app shortcuts from Start menu, Desktop, Taskbar in Windows 11 and 10. See – Fix Broken Desktop Shortcuts (GPO) Error KB5017308 Windows 10.

This faulty update likely affects the devices because of Attack Surface Reduction (ASR) rule “Block Win32 API calls in Office macro”. Microsoft declared that a team has made significant progress in developing potential solutions to address the impact on affected shortcut files and they will provide more information as soon as it becomes available. However, they have published some recommendations to fix this problem in – Recovering from Attack Surface Reduction rule shortcut deletions but in the meantime, several independent developers have also created PowerShell Scripts in this concern.

Deleted app shortcuts from Start menu, Desktop, Taskbar in Windows 10 or 11

Here is how to fix Deleted app shortcuts from Start menu, Desktop, Taskbar in Windows  11 or 10 –

Way-1: Using PowerShell Scripts

HARM VEENSTRA has created a script that has a list of program names and their locations in a variable. The cmdlet detects to see if the program is available in the given path and if the shortcut is in the location “C:\ProgramData\Microsoft\Windows\Start Menu\Programs” (Or subfolders) or the user’s Desktop folder.

This will also check the normal desktop folder or the one in OneDrive is Known Folder Move is used.  If not, then the script will create a shortcut for it. It will skip making a Desktop shortcut in case the icon is already present on the All Users desktop.

To fix Deleted app shortcuts from Start menu, Desktop, Taskbar in Windows 11 or 10 you need to save the scripts to c:\temp and run them as Administrator. Furthermore, you can use them in an Intune script as System without any parameters for the Start Menu script or as User for the Desktop script. Note that there are 2 scripts below and you need to use them successively. Follow the steps to run them –

  1. Launch Notepad.
  2. Copy the following scripts and paste them into the “Notepad”.
  3. Click on File > Save.
  4. Click on Local Disk (C:) from the left navigation pane on the Save as window.
  5. Right-click in the C:\ drive and select New > Folder.
  6. Name the folder temp and open it.
  7. On the Save as window, write File name Create_Common_Desktop_Shortcuts.ps1.
  8. Click on Save as type drop-down and select All files (“.”).
  9. Then click on Save.
  10. Right-click on the file and select Run with PowerShell.
how to fix Deleted app shortcuts from Start menu, Desktop, Taskbar in Windows 11 or 10

Note: Modify the script according to your requirement. If necessary change the first value which is the name of the shortcut and the second one which is the path. The third one is the subfolder name or none, which can include several levels like the Firefox Private Browsing shortcut.

1st Script:

$programs = @{
"Adobe Acrobat" = "C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat.exe"
"Excel" = "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"
"Firefox" = "C:\Program Files\Mozilla Firefox\firefox.exe"
"Google Chrome" = "C:\Program Files\Google\Chrome\Application\chrome.exe"
"Microsoft Edge" = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
"OneNote" = "C:\Program Files\Microsoft Office\root\Office16\ONENOTE.EXE"
"Outlook" = "C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE"
"Remote Desktop" = "C:\Program Files\Remote Desktop\msrdcw.exe"
"TeamViewer" = "C:\Program Files\TeamViewer\TeamViewer.exe"
"Word" = "C:\Program Files\Microsoft Office\root\Office16\WINWORD.exe"
}

#Check for shortcuts on user Desktop and in All Users desktop, if program is available and the shortcut isn't... Then recreate the shortcut on users desktop
#if not already present in ALl Users desktop folder
$DesktopPath = [Environment]::GetFolderPath("Desktop")
$programs.GetEnumerator() | ForEach-Object {
if (Test-Path -Path $_.Value) {
if (-not (Test-Path -Path "$($DesktopPath)\$($_.Key).lnk") -and -not (Test-Path -Path "C:\Users\Public\Desktop\$($_.Key).lnk")) {
write-host ("Shortcut for {0} not found in {1}, creating it now..." -f $_.Key, $_.Value)
$shortcut = "$($DesktopPath)\$($_.Key).lnk"
$target = $_.Value
$description = $_.Key
$workingdirectory = (Get-ChildItem $target).DirectoryName
$WshShell = New-Object -ComObject WScript.Shell
$Shortcut = $WshShell.CreateShortcut($shortcut)
$Shortcut.TargetPath = $target
$Shortcut.Description = $description
$shortcut.WorkingDirectory = $workingdirectory
$Shortcut.Save()
}
}
}

2nd Script: Create_Common_StartMenu_Shortcuts.ps1

$programs = @{
    "Access"                                  = @("C:\Program Files\Microsoft Office\root\Office16\MSACCESS.EXE", "None")
    "Adobe Acrobat"                           = @("C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat.exe", "None")
    "Cisco Webex Meetings"                    = @("C:\Program Files (x86)\Webex\Webex\Applications\ptoneclk.exe", "Cisco Webex Meetings")
    "Cisco AnyConnect Secure Mobility Client" = @("C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe", "Cisco\Cisco AnyConnect Secure Mobility Client")
    "Excel"                                   = @("C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE", "None")
    "Firefox Private Browsing"                = @("C:\Program Files\Mozilla Firefox\private_browsing.exe", "None")
    "Firefox"                                 = @("C:\Program Files\Mozilla Firefox\firefox.exe", "None")
    "Google Chrome"                           = @("C:\Program Files\Google\Chrome\Application\chrome.exe", "None")
    "Microsoft Edge"                          = @("C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe", "None")
    "Notepad++"                               = @("C:\Program Files\Notepad++\notepad++.exe", "None")
    "OneNote"                                 = @("C:\Program Files\Microsoft Office\root\Office16\ONENOTE.EXE", "None")
    "Outlook"                                 = @("C:\Program Files\Microsoft Office\root\Office16\OUTLOOK.EXE", "None")
    "PowerPoint"                              = @("C:\Program Files\Microsoft Office\root\Office16\POWERPNT.EXE", "None")
    "Project"                                 = @("C:\Program Files\Microsoft Office\root\Office16\WINPROJ.EXE", "None")
    "Publisher"                               = @("C:\Program Files\Microsoft Office\root\Office16\MSPUB.EXE", "None")
    "Remote Desktop"                          = @("C:\Program Files\Remote Desktop\msrdcw.exe", "None")
    "TeamViewer"                              = @("C:\Program Files\TeamViewer\TeamViewer.exe", "None")
    "Visio"                                   = @("C:\Program Files\Microsoft Office\root\Office16\VISIO.EXE", "None")
    "Word"                                    = @("C:\Program Files\Microsoft Office\root\Office16\WINWORD.exe", "None")
}



#Check for shortcuts in Start Menu, if program is available and the shortcut isn't... Then recreate the shortcut
$programs.GetEnumerator() | ForEach-Object {
    if (Test-Path -Path $_.Value[0]) {
        #start with empty $create variable
        $create = $null

        #Shortcut variables for root of Start Menu folder
        if ($_.Value[1] -eq 'None') {
            if (-not (Test-Path -Path "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\$($_.Key).lnk")) {
                write-host ("Shortcut for {0} not found with path {1}, creating it now..." -f $_.Key, $_.Value[0])
                $create = "Yes"
                $shortcut = "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\$($_.Key).lnk"
                $target = $_.Value[0]                
            }
        }

        #Shortcut variables for subfolder(s) inside the Start Menu folder
        if ($_.Value[1] -ne 'None') {
            if (-not (Test-Path "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\$($_.Value[1])\$($_.Key).lnk")) {
                if (-not (Test-Path "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\$($_.Value[1])")) {
                    write-host ("Specified folder {0} doesn't exist for the {1} shortcut, creating now..." -f $_.Value[1], $_.Key)
                    New-Item -ItemType Directory -Path "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\$($_.Value[1])" -Force | Out-Null
                    write-host ("Creating shortcut for {0} with path {1} in folder {2}..." -f $_.Key, $_.Value[0], $_.Value[1])
                }
                else {
                    write-host ("Shortcut for {0} not found with path {1} in existing folder {2}, creating it now..." -f $_.Key, $_.Value[0], $_.Value[1])
                }
                $create = "Yes"
                $shortcut = "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\$($_.Value[1])\$($_.Key).lnk"
                $target = $_.Value[0]                
            }
        }

        #If $create is Yes, set Shortcut variables and create shortcut
        if ($create -eq 'Yes') {     
            $description = $_.Key
            $workingdirectory = (Get-ChildItem $target).DirectoryName
            $WshShell = New-Object -ComObject WScript.Shell
            $Shortcut = $WshShell.CreateShortcut($shortcut)
            $Shortcut.TargetPath = "$target"
            $Shortcut.Description = $description
            $shortcut.WorkingDirectory = $workingdirectory
            $Shortcut.Save()
        }
    }
}

Source: powershellisfun.

Way-2: Through System Restore

If you are facing deleted app shortcuts from Start menu, Desktop, Taskbar in Windows 11 or 10 problem System restore might help to get rid of.

This method can take your system to the stage when Security intelligence updates for Microsoft Defender version 1.381.2140.0 was not installed. This way the reason will be eliminated and the issue will be resolved. Follow the steps –

  1. Press – Winkey+S.
  2. Type – rstrui.exe and hit Enter.
  3. If the option Choose a different restore point is showing then check it.
  4. Click – Next.
  5. Check the box for – Show more restore points.
  6. Microsoft Defender version 1.381.2140.0 was installed on 13/01/2023; select one restore point earlier than the date and click on Next.
  7. Then select Finish and approve the pop-up.
  8. Allow the restoration to finish.

Apart from this, one more PowerShell script might be helpful for you – StartMenu-Search-Office-OneDrive_Clickshare.

Methods:
Way-1: Using PowerShell Scripts
Way-2: Through System Restore

That’s all!!

Repair any Windows problems such as Blue/Black Screen, DLL, Exe, application, Regisrty error and quickly recover system from issues using Reimage.
 
  
About Sunita
Love to play with Windows 11 and 10. Suggestion - Going for Registry change or system files edit then remember to take a backup or create a restore point before Starting.