Windows uwp应用使用系统代理
UWP 是微软在 Windows 10 中引入的新概念,由于所有 UWP 应用均运行在被称为 App Container 的虚拟沙箱环境中,其安全性及纯净度远胜于传统的 EXE 应用。但 App Container 机制同时也阻止了网络流量发送到本机(即 loopback), 使大部分网络抓包调试工具无法对 UWP 应用进行流量分析。同样的,该机制也阻止了 UWP 应用访问 localhost,即使你在系统设置中启用了代理,也无法令 UWP 应用访问本地代理服务器。
我主要用到的UWP应用也就邮件和office全家桶,邮件在收到google或者twitter等等的邮件的时候,邮件内的图片通常加载不出来,还有就是office全家桶偶尔出现的同步便秘,代理上网也就成为刚需了。
其实 Windows 10 自带了一款名CheckNetIsolation
的命令行工具可以帮助我们将 UWP 及 Windows 8 Metro 应用添加到排除列表。
使用方法如图,简单明了,添加白名单,删除白名单,清除白名单,列出白名单。
需要注意的是SID
,这个SID
在注册表HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings
下,所有的子项名就是SID
找到想要代理的uwp应用,复制其SID
,然后执行
CheckNetIsolation.exe loopbackexempt -a -p="$SID"
提示完成就大功告成了。
当然在这么多应用里面找想代理的应用也不容易,下面是一个脚本,一键把所有的uwp应用加入白名单中
Get-ChildItem "HKCU:\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings" |
ForEach-Object {
Write-Host -ForegroundColor Yellow "Start uwp proxy:" }{
$values = Get-ItemProperty $_.PSPath;
$uwpDisplayName = $values.DisplayName
$arr = ($_.Name -split "\\")
$uwpSid = $arr[$arr.count - 1]
$uwpSid
Write-Output "$uwpDisplayName $uwpSid"
CheckNetIsolation.exe loopbackexempt -a -p="$uwpSid"
}{Write-Host -ForegroundColor Yellow "Finished!"}
新建文档,复制脚本进去,再把后缀改为.ps1
,用管理员身份打开powershell
,然后执行该脚本即可。
Or you can contact me by Email