Shell Launcher V2를 사용하여 사용자 정의 셸 앱을 시작할 때 모든 앱을 shell:AppsFolder에 표시하는 방법은 무엇입니까?

Shell Launcher V2를 사용하여 사용자 정의 셸 앱을 시작할 때 모든 앱을 shell:AppsFolder에 표시하는 방법은 무엇입니까?

저는 Shell Launcher V2를 사용하여 Windows 11 Enterprise를 실행하는 컴퓨터에서 셸로 실행되도록 사용자 지정 앱(UWP가 아닌 win32)을 설정했습니다. 이것은 잘 작동하지만 쉘 앱에서 다른 win32 앱을 실행해야 합니다. 일반적으로 나는 shell:AppsFolder를 사용하여 다른 앱의 AUMID를 가져와 실행합니다.

문제는 shell:AppsFolder가 사용자 지정 셸을 사용할 때 UWP 앱만 표시하는 반면, 정상적으로 실행하면(예: 일반 탐색기 셸 사용) shell:AppsFolder에 설치된 모든 프로그램(UWP 또는 기타)이 표시된다는 것입니다.

UWP 앱뿐만 아니라 사용자 지정 셸을 사용하여 실행할 때 설치된 모든 앱을 가져오도록 Shell Launcher V2를 구성하려면 어떻게 해야 하나요?

편집: 쉘을 좀 더 가지고 놀다가 업데이트되는 지점에 이르렀습니다. 제가 시도한 것 중에는 Windows 업데이트 문제 해결사, Windows 스토어 문제 해결사 실행, 스토어 앱 복구 및 재설정, Microsoft 계정 추가 등이 있었습니다.

어떤 작업이 원인인지는 확실하지 않지만 이제 shell:AppsFolder는 모든 앱을 표시합니다. 그러나 UWP 앱이든 win32 앱이든 앱을 설치하거나 제거하면 shell:AppsFolder는 반응하지 않습니다.

또한 다른 방법으로 AUMID를 얻을 수 있는지 알아보기 위해 다른 작업도 시도했는데, Powershell에서 실행하거나 Get-StartAppsUWP 등을 실행 Get-AppxPackage하면 새로 설치된 앱이 표시되지 않는 반면, 탐색기를 셸로 실행하면 표시된다는 사실을 발견했습니다.

사용자 지정 셸을 사용할 때 Windows가 앱 설치/제거를 전혀 인식하지 못하는 것과 같습니다. 앱이 설치/제거될 때 창에 알려주는 서비스나 실행되지 않는 것이 있습니까?

답변1

다음 중 일부를 시도해 보세요. 셸이 실제로 실행되지 않을 때 무엇이 ​​업데이트되는지 잘 모르겠습니다.

# List the package class names for the user from the registry 
# these should be closest to the actual packages list, but don't have ID as a property
$ActivatableClasses = (Get-ChildItem 'HKCU:\Software\Classes\ActivatableClasses\Package\').PSChildName

# this should get all the actual AppX AUMIDs
$AppxClasses = (Get-ItemProperty 'HKCU:\SOFTWARE\Classes\AppX*\Application').AppUserModelID

# starts a new shell com instance and asks it for the appx ID list - likely the same result as shell:AppsFolder
$ApplicationIDs = (New-Object -ComObject Shell.Application).NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').Items() | % path

# more of a .net-specific way to do Get-AppxPackage
$packages = [Windows.Management.Deployment.PackageManager]::new().FindPackagesForUser("")

관련 정보