对于那些通过APP-V 5x部署应用程序时仍然存在相同问题的人:
我成功地使Open With
上下文菜单中的程序可选(并使用默认值)。上面的解决方案效果很好,但是通常用户不想每次都使用上下文菜单来关联文件类型。由于我们处于受管环境中,并且不会通过SCCM部署自动关联任何内容,因此,一个小的解决方法是:
首先探讨了一些原因,甚至在发布给用户后,甚至HKCR\Applicatons\something.exe
无法选择我们的虚拟应用程序Open With
。我制作了以下PowerShell脚本,当在add-package中运行时(在计算机上下文中运行)并将所需的数据放入本机注册表中时,将完成技巧。是的,此脚本可能更简单,更透明,但是出于测试目的,初次使用该脚本应该很好:
$ConnectorScriptRootPath = Split-Path -Path ((Get-Variable MyInvocation).Value).MyCommand.Path -Parent
$ConnectorRootPath = Split-Path -Path $ConnectorScriptRootPath -Parent
$OWExecutable = """" + $ConnectorRootPath + "\Root\VFS\ProgramFilesX64\VLC\vlc.exe" + """" + " --started-from-file " + """" + "%1" + """"
New-Item -Path HKLM:\Software\Classes\Applications -Name vlc.exe –Force
New-Item -Path HKLM:\Software\Classes\Applications\vlc.exe -Name shell –Force
New-Item -Path HKLM:\Software\Classes\Applications\vlc.exe\shell -Name Open –Force
New-Item -Path HKLM:\Software\Classes\Applications\vlc.exe\shell\Open -Name Command –Force
New-ItemProperty -Path HKLM:\Software\Classes\Applications\vlc.exe -Name "FriendlyAppName" -Value "VLC Media Player" -PropertyType String -Force
Set-Item -Path HKLM:\Software\Classes\Applications\vlc.exe\shell\Open -Value "Play with VLC Media Player" -Force
Set-Item -Path HKLM:\Software\Classes\Applications\vlc.exe\shell\Open\Command -Value $OWExecutable -Force
然后将此文件放入脚本目录:
[{AppVPackageRoot}]\..\Scripts\VLC_AddPackage.ps1
排序之后,在程序包编辑器中,我导出了清单文件,并使用TMUrgent解决方案中的App-V清单编辑器打开了文件。在清单编辑器中,我转到scripts/machine scripts/Add-package
并设置:
路径:PowerShell.exe
参数:-executionpolicy bypass [{AppVPackageRoot}]\..\Scripts\VLC_AddPackage.ps1
等待:true
超时:30
请务必注意AppvEnvvars
以上几点:[{AppVPackageRoot}]
请注意wait
:如果脚本出错,并且没有超时,则可能会出现意外情况。
添加(发布)该程序包后,可以从更多应用程序中浏览该程序包,并且可以将Open With
用户设置为默认程序包。
这里没有提到,但是在取出包装时要小心;应该有另一个脚本来删除发布时添加的条目。
希望这可以帮助。
HKEY_CLASSES_ROOT\.pdf
。检查密钥的添加方式,我认为您可以弄清楚