r/Steam•
SentoX

[Windows 10] Can't find installed Steam games through Windows search anymore.

Edit: This is a useful workaround that you might want to use until Windows Search gets updated to display .url files in the start menu search. Some might consider this workaround a better solution in general. Thanks a lot for taking the time u/Matzurai


This is a clean install of Windows 10 Home(64 bit), both Startmenu locations are indexed, I triple checked that the shortcuts are inside an indexed folder and double checked that indexing had actually finished. Moving the Shortcuts to a different, also indexed, location didn't make a difference.

Windows search finds the Steam shortcut itself, and has no issues with other Internet Shortcuts(it does, I was stupid), it just doesn't find the Steam ones.

Does anyone have a solution for the problem, or can at least confirm that I'm not the only one suffering from it?

Posted Jul 30, 2015, 9:26 AM UTC · edited

1221
Matzurai•

Get steamcmd from here It's an official commandlinetool from valve. Put it into your steamfolder. Now open Powershell (just type it into the searchbar and hit enter) Browse to your steam installation directory by entering

cd 'C:\Program Files (x86)\Steam\' [enter]

(Adjust according to your installation dir)

now copy and paste the folowing into powershell and hit enter:

function executeSteamCmd {
Write-Host "Executing Steamcmd"
	if($PSScriptRoot){
		$myScriptRoot = "$PSScriptRoot\"
	}
	$arguments = @()
	for($i=0; $i -lt $args.count; $i++){
		for($j=0; $j -lt $args[$i].count; $j++){
			if($args[$i].GetType() -eq [String]){
				$arguments += $args[$i]
				break
			}
			$arguments += $args[$i][$j]
		}
	}
	#forcing the pipe to flush by spamming some useless output
	for($i=0; $i -lt 50; $i++){
		$arguments+="+app_info_print 0"
	}
	$arguments+="+quit"
	[string]$out= & (Get-Item "$($myScriptRoot)steamcmd.exe").FullName $arguments
	$out.subString(0, $out.IndexOf("AppID : 0,"))
}



function createShortcut{
	if($PSScriptRoot){
		$myScriptRoot = "$PSScriptRoot\"
	}
	
	Write-Host "creating Shortcut"
	$shell = New-Object -comObject WScript.Shell
	if(Test-Path "$Home\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Steam\$($args[0].Name).lnk"){
		Write-Host "skipping shortcut $Home\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Steam\$($args[0].Name).lnk (file already exists)"
		return
	}
	Write-Host "creating shortcut $Home\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Steam\$($args[0].Name).lnk"
	$lnk = $shell.CreateShortcut("$Home\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Steam\$($args[0].Name).lnk")
	$lnk.TargetPath = (Get-Item "$($myScriptRoot)steam.exe").FullName
	$lnk.Arguments = "-applaunch $($args[0].AppID)"
	if(Test-Path $args[0].Icon){
		$lnk.IconLocation = $args[0].Icon
	}else{
		$lnk.IconLocation = $args[0].Path
	}
	$lnk.Save()
}




	[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
	if($PSScriptRoot){
		$myScriptRoot = "$PSScriptRoot\"
	}
	Write-Host "start"
	if(-not (Test-Path "$Home\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Steam\")){
		mkdir "$Home\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Steam\"
	}
	$tmp = (executeSteamCmd "+apps_installed" | Select-String "AppID (\d*) : `"([^`"]*)`" : (.*?)  " -AllMatches).Matches
	$installed = @()
	for($i=0; $i -lt $tmp.count; $i++){
		$installed += (,@{"AppID" = $tmp[$i].Groups[1].value; "Name"=$tmp[$i].Groups[2].value.replace(":",""); "Path" = $tmp[$i].Groups[3].value; "Icon" = ""})
	}
	$arguments = $installed.AppID|%{"+app_info_print $_"}
	$tmp = ((executeSteamCmd $arguments[0..$arguments.count]) | Select-String "AppID : (\d*),.*?`"clienticon`"\s*`"([^`"]*)`".*?`"executable`"\s*`"([^`"]*?\.exe)`"" -AllMatches).Matches
	#"
	for($i=0; $i -lt $tmp.count; $i++){
		$installed[$installed.AppID.indexOf([string]($tmp[$i].Groups[1].value))].Path+="\$($tmp[$i].Groups[3].value)"
		$installed[$installed.AppID.indexOf([string]($tmp[$i].Groups[1].value))].Icon="$($(Get-Item "$($myScriptRoot)steam\games\").FullName)$($tmp[$i].Groups[2].value).ico"
	}
	for($i=0; $i -lt $installed.count; $i++){
		createShortcut $installed[$i]
	}

This creates reall shortcuts (.lnk) of all installed steam-games instead of .url files into your startmenu in a folder named steam. Those shortcuts can be found by the search, pinned as a tile and have the icons set according to the game they are for. The script does NOT overwrite any preexisting lnk files.

Note: steam uses ':' in game names. The script simply removes them, as they are not allowed in filenames. The script doesn't check for any other unallowed characters, it may fail for some games.

Note2: You can also save the script into a file into your steamdirectory with .ps1 extension and execute it via '.\scriptpath\scriptname'. You may need to execute 'Set-ExecutionPolicy RemoteSigned Process' before the script, to allow scriptexecution for the duration of the powershellsession.

8
Becer•

This is an incredible time saver, thank you!

1
Neato•

This is quite amazing. I am having a similar problem I have had zero luck with. I can't get my search to show Steam itself. I press the Windows Key and type "steam" and all I get is a webpage shortcut for store.steampowered.com. I was able to add a tile for it once but it has seen disappeared.

I used to have it pinned to the Start Menu in Windows 7 so it would let me launch directly into Library, Recent Games, Store, etc. I really miss that. Do you have any idea how to fix this? Thanks.

1
SentoXOP•

Thank you very much! I added a link to this comment in the OP, I hope you don't mind.

Did you forget the quotation marks around the path in
*cd C:\Program Files (x86)\Steam*
or do you not need them for some reason? Powershell and cmd don't like it when I give them a path with spaces but without quotation marks.

1
Matzurai•

You are right, thank you, I corrected it :) I'm just used to use the auto-completion by pressing tab, which also automatically puts ' arround paths with spaces in it :)

1
pastrygeist•

Hey I've got the same issue as OP, but on running your script, I get this error:

Get-Item : Cannot find path 'C:\Windows\system32\steamcmd.exe' because it does not exist.    

The full path on my machine for steamcmd is C:\Util\steamcmd.exe. C:\Util has been added to both system PATH and user PATH. Any ideas?

Edit: Nevermind, amateur mistake. I missed your line saying to adjust current directory before running. Thanks mate.

1
breadbitten•

This is gold worthy!

1
[deleted]•

[deleted]

2
[deleted]•

[deleted]

2
RemindMeBot•

Messaging you on [2015-07-31 09:49:39 UTC](http://www.wolframalpha.com/input/?i=2015-07-31 09:49:39 UTC To Local Time) to remind you of this comment.

[CLICK THIS LINK](http://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=[http://www.reddit.com/r/Steam/comments/3f53wv/windows_10_cant_find_installed_steam_games/ctldaq0]%0A%0ARemindMe! 1 day) to send a PM to also be reminded and to reduce spam.


^([FAQs]) ^| [^([Custom Reminder])](http://www.reddit.com/message/compose/?to=RemindMeBot&subject=Reminder&message=[LINK INSIDE SQUARE BRACKETS else default to FAQs]%0A%0ANOTE: Don't forget to add the time options after the command.%0A%0ARemindMe!) ^| ^([Feedback]) ^| ^([Code])

2
[deleted]•

[deleted]

1
[deleted]•

[deleted]

1
emergencytacoshttp://steamcommunity.com/profiles/76561198089818625•

Happens to me in 8.1. Might be a steam issue rather than a windows one.

2
SentoXOP•

Steam shortcuts are a bit unconventional in that they aren't linking to an executable, or even a real website. I suppose it's possible that Windows search has a problem acknowledging steam://rungameid/<appid> as a real path. Previous versions of Windows, including 8.1, never caused me any problems with that though.

1
error_logic•

Interesting. So the shortcuts work (Confirmed on that part at least) but Search rejects them because they don't look valid to it? Good theory... Frustrating result, regardless.

1
JQGGE•

I also have this problem, which is quite annoying since I want to place the game-shortcuts inside the startmenu. The old Win8 fix doesn't work, as you also mention. Any ideas?

Edit: Managed to get it to work - moving the shortcuts out of the Steam folder (\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Steam) and into the Programs folder seemed to do the trick - now they all show up.

2
[deleted]•

[deleted]

2
JQGGE•

Only the shortcut to Dota 2 Reborn, which I made myself to the .exe file. So it doesn't find the regular steam shortcuts. But they do pop-up on the list of all programs.

1
nikeboy94•

I found the fix. (Alternative method to JQGGE)

I followed what JQGGE said and got to the shortcuts folder within (\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Steam) and noticed that the steam games were labelled as "Internet Shortcut" rather than the standard "Shortcut". What I did was, I just deleted the internet shortcuts and replaced them with an actual shortcut to the .exe files of the games within the Steam Directory. So now the games are still listed under Steam in the start menu but the search finally recognises them as "Desktop Apps"

1
SentoXOP•

More of a workaround than a fix. This approach requires extra work every time you install or uninstall a game.
I'm sure plenty of people will be happy with that though, so thanks for posting it :)

2
nikeboy94•

Yeah you're right, it is more of a work around. But yeah no worries, hopefully Steam will fix this soon.

1
Selage•

Did you find a fix?

1
SentoXOP•

Nope. I'm convinced this is something Microsoft will have to fix and that we can't do much about it ourselves.
There is a fairly big update scheduled for tomorrow, and there are other issues with the Start menu and Windows Search that they are likely to address. Maybe we get lucky and they'll fix this with the update as well.

1
shwarmalamadingdong•

Bump! Worked fine for me in 8.1, broken after upgrade to 10. This is a problem as @SentoX mentioned...breaks workflow real bad

1
Spartakhus•

I've made a small change to the solution of u/Matzurai Put steamcmd to steam folder first. Get the modified script from here: http://pastebin.com/mwZFUH05 Save it as something.ps1 and execute it with powershell whenever you install something new.

1
rehaf•

I had to find an easy solution for myself the hard way.

Here's how it works.

  • 1-Windows+S and search for an application that actually shows up in the results (In my case steam app showed up but my games didn't.)
  • 2-Right click and select open file location.
  • 3-Go one level up to the C:\ProgramData\Microsoft\Windows\Start Menu\Programs
  • 4-Add a folder for your game (I added ıt as "Counter Strike")
  • 5-Go to steam library and right click on your game and select add desktop shortcut.
  • 6-Copy that shorcut to the folder you have just created.
  • 7-Boom.

The problem with finding steamapp folder and creating a shortcut for that app in there is, steam's official shortcuts are not file paths but instead urls. Meaning it doesnt go the file path and open the app, but instead it tells steam app to open that game.

This worked for me, and I was searching all over the net to find this but couldn't. Hope it works for you too.

1
nakquadahttp://steamcommunity.com/profiles/76561197962329180•

Why not use Jump Lists?

Right click on taskbar and go to properties. Find jump lists and set the number to something high like 20 or 25. The higher resolution your monitor is the more you can comfortably fit.

Add Steam icon to the taskbar.

Next go to Steam, launch or install a game. It will be added to recent on your Steam Jump List, right click on Steam in the taskbar and you will see a little pin beside any games, you can click it to permanently pin games to the jump list.

Problem solved :)

0
SentoXOP•

Because that's neither elegant nor efficient.
I'm using Windows Search to launch any and all software on my PC because it's fast and allows me to keep my Desktop, Taskbar and Startmenu clean. Using jumplists would take longer, and it'd be different to how I do everything else, which is terrible for workflow.

2
nakquadahttp://steamcommunity.com/profiles/76561197962329180•

Ah, fair enough, I won't argue with that logic!

1
sunflowercompass•

Installing steam in the work computer is what's bad for workflow. :p

I agree thought, typing in the name of the program is one of the great innovations the last decade. Much faster than any sort of clicking for programs.

1