Start menu search not finding applications?

Page 11 of 11 FirstFirst ... 91011

  1. Posts : 5,478
    2004
       #101

    D4ni3l said:
    I also have this problem since 3 months
    You have to add shortcuts.

    This is the script I use (you would have to change your name and where you save your programs) but it might be useful as it has all the code to add administrator authority to the shortcut when required...
    Code:
    # Shortcuts will be created in $ShortcutRoot for programs found in $ExeRoot (except for $Exclusions)
    $ExeRoot="C:\Users\Hali\OneDrive\Programs\"
    $ShortcutRoot=$Home + "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\"
    $Exclusions = @("gdisk64","nvspbind","StartKiller","UnlockerInject32")
    
    $PoShExeRoot="C:\Users\Hali\OneDrive\Programs\Powershell Scripts\"
    $PoShShortcutRoot=$Home + "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Powershell Scripts\"
    $PoShExclusions = @("Sleep Mac Transmission","Wake Mac Transmission","WakeTransmission")
    
    $SysinternalsExeRoot="C:\Users\Hali\OneDrive\Programs\SysinternalsSuite\"
    $SysinternalsShortcutRoot=$Home + "\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\SysinternalsSuite\"
    $SysinternalsExclusions = @(
    "accesschk","autorunsc","adrestore","Clockres","Contig","CoreInfo","ctrl2cap","diskext","du","efsdump","FindLinks","handle","hex2dec","junction","ldmdump","listdlls",
    "livekd","logonsessions","movefile","ntfsinfo","pendmoves","pipelist","procdump","PsExec","psfile","PsGetSid","PsInfo","pskill","pslist","PsLoggedon","psloglist","pspasswd",
    "psping","PsService","psshutdown","pssuspend","RegDelNull","regjump","RootkitRevealer","ru","sdelete","sigcheck","streams","strings","sysmon","sync","VolumeID","Whois")
    #----------------------------------------------------------------
    # Check set-up
    #----------------------------------------------------------------
    Write-Host "Shortcuts will be created in " -NoNewline; Write-Host $ShortcutRoot -f White
    Write-Host "for programs found in " -NoNewline; Write-Host $ExeRoot -NoNewline -f White; Write-Host " and " -NoNewline; Write-Host $SysinternalsExeRoot -f White
    
    $title="Keep folder structure for shortcuts?"
    $message="Enter choice"
    $choices = @(
    	@("Yes", "Keep existing structure"),
    	@("No",  "Create Shortcuts in root directory"),
    	@("Exit","Exit")
    )	
    $options = @($i=0;$choices |
    	%{New-Object System.Management.Automation.Host.ChoiceDescription "&$i`b$($_[0])", $_[1]; $i++})
    $result = $host.ui.PromptForChoice($title, $message, $options, 1)
    $choice = $choices[$result][0]
    
    Switch ($result)
    {	0 {$Consolidate=$False}
    	1 {$Consolidate=$True}
    	2 {exit}
    }
    #----------------------------------------------------------------
    Function Set-Admin 
    #----------------------------------------------------------------
    # Set the Run As Administrator flag
    
    ($file) {
    	if (-not (Test-Path $file)) { Write-Host "File not found                                   " -NoNewline -f red; Write-Host "$file" -f red }
    	else {
    		$bytes = [System.IO.File]::ReadAllBytes($file)
    		$bytes[0x15] = $bytes[0x15] -bor 0x20 #set byte 21 (0x15) bit 6 (0x20) ON (Use –bor to set RunAsAdministrator option and –bxor to unset)
    		[System.IO.File]::WriteAllBytes($file, $bytes)
    		Write-Host "Administrator authority granted                  " -NoNewline -f green; Write-Host "$file" -f White
    	}
    }
    #----------------------------------------------------------------
    Function Create-Shortcuts 
    #---------------------------------------------------------------
    # Create shortcuts for all non-excluded .exe
    
    ($ExeRoot,$ShortcutRoot,$Exclusions,$Consolidate,$Recurse) {
    	# Get all program objects
    	if ($Recurse) {$Apps=Get-ChildItem -path $ExeRoot -include @("*.exe","*.ps1") -recurse}
    	else {$Apps=Get-ChildItem -path "$ExeRoot*" -include @("*.exe","*.ps1")}
    
    	Foreach ($App in $Apps) {
    		$ShortcutName=[io.path]::GetFileNameWithoutExtension($App.FullName)+'.lnk'
            $IconPath=(Split-Path $App.FullName -parent)+"\"+[io.path]::GetFileNameWithoutExtension($App.FullName)+'.ico'	
    		if ($consolidate) { 
    			$ShortcutPath=$ShortcutRoot+$ShortcutName
    					
    		} else { 
    			$ShortcutPath=([io.path]::ChangeExtension($ShortcutRoot + $App.FullName.SubString($ExeRoot.Length), '.lnk'))
    		}
    
    		if (Test-Path $ShortcutPath) { Write-Host "Shortcut exists                                  " -NoNewline -f cyan; Write-Host "$ShortcutPath" -f white }
    		elseif ($Exclusions -contains $App.BaseName) { Write-Host " excluded                                        " -NoNewline -f red; Write-Host "$App" -f red }
    		else {
    			# Create directory if required
    			$ShortcutDirectory = Split-Path $ShortcutPath -parent
    			if (-not (Test-Path $ShortcutDirectory )) { New-Item -ItemType Directory -Path $ShortcutDirectory -Force }
    
    			# Create Shortcut
    			$WshShell=New-Object -ComObject WScript.Shell
    			$Shortcut=$WshShell.CreateShortcut($ShortcutPath)
    
    			If([io.path]::GetExtension($App.FullName) -eq '.exe') {
                    $Shortcut.TargetPath = $App.FullName
                } Else {
                    $Shortcut.TargetPath ='%systemroot%\system32\WindowsPowerShell\v1.0\powershell.exe'
                    $Shortcut.Arguments = '-ExecutionPolicy Bypass -File "'+$App.FullName+'"'
                }
    
    			if (Test-Path $IconPath) {$Shortcut.IconLocation = $IconPath}
    			
    			$Shortcut.WorkingDirectory = Split-Path $App.FullName -parent
    			$Shortcut.Save()
    
    			Write-Host "Shortcut created                                 " -NoNewline -f green; Write-Host $ShortcutPath -f White
    
    			# Make Powershell shortcuts run as administrator			
    			If([io.path]::GetExtension($App.FullName) -eq '.ps1') {Set-Admin $ShortcutPath}
    		}
    	}
    }
    Write-Host "EXEs Processed" -f Yellow; Write-Host
    #----------------------------------------------------------------
    # Sysinternals Programs
    #----------------------------------------------------------------
    Create-Shortcuts $SysinternalsExeRoot $SysinternalsShortcutRoot $SysinternalsExclusions $True $False
    
    # sync.exe (want to add icon)
    $WshShell=New-Object -ComObject WScript.Shell
    $Shortcut=$WshShell.CreateShortcut("$SysinternalsShortcutRoot\sync.lnk")
    $Shortcut.TargetPath = "$SysinternalsExeRoot\sync.exe"
    $Shortcut.WorkingDirectory = "$SysinternalsExeRoot"
    $Shortcut.IconLocation = "%SystemRoot%\system32\shell32.dll,217" # (54 accross *4 deep + 1 down = 217 in the dll)
    $Shortcut.Save()
    Write-Host "Shortcut created                                 " -NoNewline -f green; Write-Host $SysinternalsShortcutRoot"sync.lnk" -f White
    
    # Set various shortcuts to run as Admin
    Set-Admin "$SysinternalsShortcutRoot`Autoruns.lnk"
    Set-Admin "$SysinternalsShortcutRoot`procexp.lnk"
    Set-Admin "$SysinternalsShortcutRoot`Procmon.lnk"
    Set-Admin "$SysinternalsShortcutRoot`sync.lnk"
    #----------------------------------------------------------------
    # Powershell scripts
    #----------------------------------------------------------------
    Create-Shortcuts $PoShExeRoot $PoShShortcutRoot $PoShExclusions $True $True
    #----------------------------------------------------------------
    # Other Programs
    #----------------------------------------------------------------
    # Get Programs in root
    Create-Shortcuts $ExeRoot $ShortcutRoot $Exclusions $True $False
    
    # Get programs in sub-directories (except Sysinternals)
    $OtherDirs = Get-ChildItem -path $ExeRoot -dir -exclude "SysinternalsSuite","Powershell Scripts"
    $SavedShortcutRoot=$ShortcutRoot
    $SavedExeRoot=$ExeRoot
    
    Foreach ($OtherDir in $OtherDirs) {
    	$ExeRoot=$OtherDir.FullName+"\"
    	if (-not $Consolidate) { $ShortcutRoot=$SavedShortcutRoot+$OtherDir.Name+"\" }
    	Create-Shortcuts $ExeRoot $ShortcutRoot $Exclusions $Consolidate $True
    }
    $ShortcutRoot=$SavedShortcutRoot
    $ExeRoot=$SavedExeRoot
    
    # Set various shortcuts to run as Admin
    Set-Admin "$ShortcutRoot`windirstat.lnk"
    Set-Admin "$ShortcutRoot`TreeSizeFree.lnk"
    
    #----------------------------------------------------------------
    # Other Shortcuts
    #----------------------------------------------------------------
    $WshShell = New-Object -ComObject WScript.Shell
    $Shortcut=$WshShell.CreateShortcut("$ShortcutRoot\God Mode.lnk")
    $Shortcut.TargetPath = $Shortcut.TargetPath = "$env:systemroot\explorer.exe"
    $Shortcut.Arguments = "shell:::{ED7BA470-8E54-465E-825C-99712043E01C}"
    $Shortcut.Save()
    Write-Host "Shortcut created                                 " -NoNewline -f green; Write-Host $ShortcutRoot"God Mode.lnk" -f White
    
    if (-not(Test-Path "$ShortcutRoot\TN5250")) {New-Item -ItemType Directory -Path "$ShortcutRoot\TN5250" -Force}
    Copy-Item $ExeRoot\TN5250\PUB1.lnk $ShortcutRoot\TN5250\
    Copy-Item $ExeRoot\TN5250\SIASDEV.lnk $ShortcutRoot\TN5250\
    Move-Item $ShortcutRoot\TN5250.lnk $ShortcutRoot\TN5250\
    #----------------------------------------------------------------
    # Rename any odd named
    #----------------------------------------------------------------
    if (Test-Path "$ShortcutRoot\TFC.lnk") {Rename-Item "$ShortcutRoot\TFC.lnk" "$ShortcutRoot\Temp File Cleaner.lnk"} 
    if (Test-Path "$ShortcutRoot\Rapr.lnk") {Rename-Item "$ShortcutRoot\Rapr.lnk" "$ShortcutRoot\Driver Store Explorer.lnk"}
    
    Write-Host
    Read-Host -Prompt "Press Enter to exit"
    Alternatively you can make shortcuts manually in \AppData\Roaming\Microsoft\Windows\Start Menu\Programs\ for example.
      My Computer


  2. Posts : 317
    Microsoft Windows 10 x64
       #102

    lx07 said:
    ...
    Alternatively you can make shortcuts manually in \AppData\Roaming\Microsoft\Windows\Start Menu\Programs\ for example.
    Thanks for the tips

    I have tried this

    copy *.*
    C:\ProgramData\Microsoft\Windows\Start Menu\Programs to
    C:\Users\<My User Name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
    no change yet, I will see tomorrow
      My Computer


  3. Posts : 5,478
    2004
       #103

    D4ni3l said:
    Thanks for the tips

    I have tried this
    C:\ProgramData\Microsoft\Windows\Start Menu\Programs to
    C:\Users\<My User Name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

    no change yet, I will see tomorrow
    C:\ProgramData\Microsoft\Windows\Start Menu\Programs is for all users,
    C:\Users\<My User Name>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs is for your current user.

    If you have shortcuts (.lnk) in either place and you have not excluded either location from Windows Indexing Options (or disabled search) it should show in search when you press the key. What it will not do is show a .exe without a shortcut.
      My Computer


  4. Posts : 2
    Windows 10
       #104

    It is not working for me.
    I put links in each of the folders and I can see them in the start menu, but the search does not return them when I input an string that should match.
      My Computer


  5. Posts : 317
    Microsoft Windows 10 x64
       #105

    diegoesp said:
    It is not working for me.
    I put links in each of the folders and I can see them in the start menu, but the search does not return them when I input an string that should match.
    did the same / not working also
    but if you create a new account, it does work for the new user...
      My Computer


  6. Posts : 1
    Windows 10
       #106

    Hi all - I've been quietly reading and following suggestions, but decided to sign up to the forums when I hit upon a solution that works relatively well for me, at least. I hope it works for you too.

    In short, adding the user startup programs folder to the PATH environment variable (at user level).

    How to:
    In the System control panel, under Advanced System Settings, Advanced tab, Environment Variables (button)...

    In the top panel (user level, not system wide) look for a variable in the list called "Path".

    If there ISN'T one: add a new variable called "Path" and give it the following value:

    %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs

    if there is one, double click to open it, go to the end of the existing 'variable value' type a semi-colon then add then value just above this line.

    You will need to sign out & in again before seeing the results.

    In my case I was then able to find every shortcut I typed by name. I renamed shortcuts after this to remove '.exe' as it will only match exactly.

    As I have Cortana switched off, I don't get web suggestions or partial matches, but as most of the time I just want to type "cmd" "idle" "procmon" etc this is very useful for me.

    Of course I can also create custom named shortcuts like "go" or "xx" to point to any program I want, so it effectively acts like a hotkey.

    Does this help at all?

    Maybe in some cases the path on your machine already included this folder, which would explain why some have been able to resolve the problem and others not.

    Hope it helps!
      My Computer


 

  Related Discussions
Our Sites
Site Links
About Us
Windows 10 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 10" and related materials are trademarks of Microsoft Corp.

© Designer Media Ltd
All times are GMT -5. The time now is 15:16.
Find Us




Windows 10 Forums