最近网络状况实在是不好,用 win10 应用商店下载应用怎么也不成功.修改系统代理也不管用.
参照少数派的这篇文章设置了代理,总算是解决了问题.
其中,最麻烦的是找到对应 uwp 应用的 sid,因为是要在表里一项一项的去找.
win10 商店对应的应用在注册表中的DisplayName
是Microsoft.WindowsStore
,
所以遍历HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings
的所有子 key,找到对应DisplayName
中包含Microsoft.WindowsStore
的一项就可以了.
因为手动一项一项的去找效率实在是太低,就直接写了个 python 脚本来遍历.
import winreg
def iterkeys(key): try: i = 0 while True: yield winreg.EnumKey(key, i) i += 1 except WindowsError: return
def itervalues(key): d = {} try: i = 0 while True: name, value, _ = winreg.EnumValue(key, i) d[name] = value i += 1 except WindowsError: return d
def main(): base_key = ( r"Software\Classes\Local Settings\Software" r"\Microsoft\Windows\CurrentVersion\AppContainer\Mappings\\" ) mappings = winreg.OpenKey(winreg.HKEY_CURRENT_USER, base_key) for key in iterkeys(mappings): k = winreg.OpenKey(winreg.HKEY_CURRENT_USER, base_key + key) info = itervalues(k) if 'WindowsStore' in info['DisplayName']: print(info['DisplayName']) print(key) break
if __name__ == '__main__': main()
|
直接保存成 py 文件,然后运行,控制台的第二行会输出类似S-1-15-2-****
的一个 SID,就是在CheckNetIsolation.exe loopbackexempt -a -p=${SID}
中要用到的 SID.
这之后,设置系统代理,重启 win10 商店,就能通过代理下载应用了.