遷移桌面程序到MS Store(10)——在Windows10 S Mode運行

首先簡單介紹Windows 10 S Mode,Windows在該模式下,只能跑MS Store裏的軟件,不能通過其他方式安裝。好處是安全有保障,杜絕一切國產流氓軟件。就像iOS一樣,APP進商店都需審覈,同時APP在沙盒環境下,以普通用戶權限運行,不能偷偷摸摸地幹壞事,搶佔資源的情況也不會發生,自然體驗流暢,系統性能提升。一切都是那麼的美好,但Windows S Mode就是沒有人用……

這個悲劇真是不好說,也許是用戶習慣,也許是違揹人性,同時侵犯了廠商(要審覈,要分成)和用戶的利益(很多軟件、遊戲裝不了,D版軟件更不用想)。再考慮到MS Store本身就不太豐富的APP,哎媽我也不想去用什麼S Mode……

但是你要想嘛,某軟當初是有手機的,還有XBOX也能運行UWP APP的(越說越生氣)。現在慘是慘了點,但保不準10月2日又蹦出來什麼奇葩設備,ARM的只能UWP,或者低功耗設備只能MS Store,於是再續一秒……還有傳輸中的摺疊設備,Windows Core OS等等,所以確保一個APP能在Windows 10 S Mode下運行,也許還是有那麼一丟丟的意義(強行洗地)……

因爲這個系列的主題是遷移桌面程序到MS Store,而純UWP本就可以在S Mode運行,所以本篇我們要討論的,是通過APPX With Desktop Extension的方式,將已有的桌面程序在S Mode運行。

接下來我們來說如何進行S Mode下的測試,因爲並不是只要通過desktop bridge的方式打包成APPX,就一定可以成功在S Mode運行。

除了專門弄一臺Windows 10 S Mode的機器來測試以外,根據官方文檔,我們還可以在Window 10 Pro通過配置來模擬S Mode。

https://docs.microsoft.com/zh-cn/windows/msix/desktop/desktop-to-uwp-test-windows-s

文檔中描述了審覈模式(Audit mode policy),生產模式(Production mode policy)和自簽名生產模式(Product mode policy with self-signed apps)。後兩者是真的把你的Windows 10 Pro設置成S Mode,所以我們先看審覈模式,通過文檔上的鏈接下載審覈模式的策略文件SiPolicy_Audit.p7b,重命名爲SIPolicy,然後貼到C:\Windows\System32\CodeIntegrity\, 重啓系統。

完成後,就可以測試將要在S Mode運行的APP,然後去Event Viewer裏查看是否有錯誤信息。

 

可以在下圖中看到,系統認爲Firefox.exe不符合S Mode的要求,但因爲是審覈模式,所以allowed to load。

 

接下來我準備悶聲作大死,把SiPolicy_Enforced.p7b拷貝過去應用生產模式。在更新文件名並重啓後,我試圖點擊《遷移桌面程序到MS Store(9)——APPX With Desktop Extension》中包含的DotNetConsoleApp.exe,慘遭系統拒絕執行。

 如果我們從商店下載包含DotNetConsoleApp.exe的AppxWithDesktopExSample1的話,則可以順利運行。

下圖可以看到Console的窗口標題指出了DotNetConsoleApp.exe的絕對路徑。

本篇我們簡單介紹了Windows 10 S Mode,並討論瞭如何在S Mode下測試APP運行狀態。後續我們會嘗試如何在S Mode要求管理員權限。

GitHub地址:

https://github.com/manupstairs/AppxWithDesktopExtension

MS Store:

https://www.microsoft.com/store/productid/9N22D8RLKZN2

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章