2015-02-05 145 views
2

試圖爲我的MSI製作patch.msp並嘗試安裝此修補程序。但它要求管理員權限。 1)在我的實際MSI安裝過程中,它不要求管理員權限。 2)但在補丁安裝/更新期間,它要求管理員權限。MSI WIX:補丁安裝是否需要管理員權限?

我們可以在沒有管理員權限的情況下安裝/更新補丁嗎?

下面是我Patch.wxs

<?xml version='1.0' encoding='windows-1252'?> 
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' 
xmlns:util='http://schemas.microsoft.com/wix/UtilExtension'> 

<Patch 
    AllowRemoval="yes" 
    Classification="Update" 
    Comments="Patch for FooTesting Software V 1.0.0" 
    Description="Update for Foo Testing Software V 1.0.0" 
    DisplayName="Foo Testing Patch" 
    Manufacturer="Foo Inc." 
    TargetProductName="Foo testig"> 

    <Media Id="1000" Cabinet="FooTesting.cab"> 
     <PatchBaseline Id="FooTesting" /> 
    </Media> 

    <PatchFamily 
     Id="MyPatchFamily" 
     Version="1.0.1" 
     ProductCode="44139BED-5F1A-4C1E-BE12-C7148BE11189" 
     Supersede="yes"/> 

</Patch> 

回答

0

有一些方法可以做到這一點,在這裏:

https://msdn.microsoft.com/en-us/library/aa372388(v=vs.85).aspx

,但如果產品出貨量已和你沒沒有簽名,那就太遲了,答案是否定的。您的原始MSI安裝在安裝時沒有提升?這很好奇,但沒有詳細信息,很難評論爲什麼會發生這種情況,以及您的補丁爲什麼會發生。

0

正如PhilDW指出的,這可以通過用戶帳戶控制修補(UAC補丁,以前稱爲「LUA補丁」)完成。

儘管MS官方不支持在服務器操作系統上進行安裝,但它只需稍作調整即可(註冊表項)。不清潔,但有時你需要那些東西。

另外一個想法: 這是永遠不會太晚提供一個特殊的非常小的補丁,它(儘管需要爲它自己的管理權限)可以使其他(未來的)這是正確簽名的修補程序,安裝沒有管理員權限,即使您的產品設置已經發貨。 (這個特殊的補丁可以通過域管理員/工具提供,然後讓它使用方便。) 做到了。工作很好。

這根本不是不乾淨的。相反:同特殊的補丁是必須的,如果您交付的軟件的壽命是幾年或幾十年:換句話說,如果你的公司的證書即將過期,什麼情況通常每1-3年。

因爲: 證書過期的作品仍然對老年人提供的補丁,但會從建立與該證書籤名的新補丁阻止你。所以你需要一個新的證書,對於你舊的交付產品來說是未知的,這就是爲什麼你也需要一個特殊的「支持證書」的補丁。做到這一點..

但證書的真實世界的安全增益高估知道所有什麼是在2015年知道。但它的幾件事情我們有能力之一,所以..

有微軟稱爲「高架修補」的第二種官方方法。它的使用很少,通過閱讀官方文檔,它僅限於每個用戶的應用程序。基本上可以這樣說:一個位於這個特殊驅動器和路徑上的補丁必須根據定義「安全」。不像證書那麼安全,但是......你已閱讀我的評論。或 所有提及的方法可以只建議MSI專家,如果你有一個身邊的顧問:

https://msdn.microsoft.com/en-us/library/aa370582%28v=vs.85%29.aspx

我不會評論這個多,因爲。

三:
常用方式企業走出去,如果他們沒有MSI的專業知識或有需要還安裝完全的MSI沒有提升的權限,或只是要花多少錢是由全寫的安裝/升級服務或處理那些事他們的管理員和他們的腳本。

安全說明再次 - 關於此第三種方法: 當然,從用戶的角度來看,每一個始終運行並且必須提升權限的更新服務會降低安全性。但是,當我查看哪些更新時,如果自動更新,我不得不每週爲每臺連接到互聯網的計算機安裝(從微軟的更新,防病毒軟件開始,它被稱爲最好的黑客門,並由公司以「A」開始),「較小」公司的小型更新服務實際上對安全性沒有太大影響。

相關問題