2013-07-29 567 views
3

我用7zip的創建SFX如下:7zip的自解壓縮檔(SFX)沒有管理員權限的

7z.exe a -r archive.7z * 

然後我做一個二進制副本與7zS.sfx文件(用於創建自解壓安裝程序),配置文件「build.config」和存檔。是配置文件的內容如下:

;[email protected]@!UTF-8! 
RunProgram="setup.exe" 
GUIMode="1" 
Path="%tmp%\\mytemp" 
;[email protected]@! 

二進制文件複製命令如下:

copy /b 7zS.sfx + build.config + archive.7z sfxInstaller.exe 

問題是,結果SFX「sfxInstaller.exe」需要管理員權限執行。是否有可能使用不需要管理員權限的7-Zip生成自提取檔案?如果是這樣,我應該使用什麼參數/命令行參數? 在此先感謝。

回答

1

MiscFlags="4"放在你的配置文件中。這應該能解決你的問題。

它應該是這樣的:

;[email protected]@!UTF-8! 
RunProgram="setup.exe" 
GUIMode="1" 
Path="%tmp%\\mytemp" 
MiscFlags="4" 
;[email protected]@! 
+3

這不適用於Windows 10,7zS.sfx/7zSD.sfx,版本9.20,20 Novov 2010。 – arve0

2

不幸的是,我還沒有找到一種方法來使用不需要管理員權限的7zip生成SFX。在嘗試了其他SFX發電機後,我停在IExpress,這已經完全滿足了我的需求。

1

您可以使用7zsd.sfx而不是7zs.sfx。 這不需要管理員權限。

+3

當Windows 7與7-ZIP 9.20,我發現7zSD.sfx仍然需要管理員權限創建提取。 – mpursuit

1

您可以在原始7zs.sfx中嵌入清單文件,通知Windows使用與父進程相同的訪問令牌運行提取器。這將導致自抽取器作爲普通用戶運行,如果這是用戶登錄的。

以下鏈接描述瞭如何使用Visual Studio 2005在可執行文件中嵌入清單文件,但是在更高版本中應用相同的過程。 https://support.microsoft.com/kb/944276

一旦嵌入了將「requestedExecutionLevel」設置爲「asInvoker」的清單文件,使用修改後的7sz.sfx以正常方式創建的任何自解壓縮實例將不需要管理員權限。

+0

您也可以使用簡單的十六進制編輯器修改sfx文件的清單。只要搜索「requestedExecutionLevel」,你會發現它後面跟着'level =「highestAvailable」'。只需將其更改爲'level =「asInvoker」'(使用尾部空格作爲額外字符)。我用7zSD.sfx成功完成了這項工作。 –

+2

在7zSD.sfx中無法找到'requestedExecutionLevel','level'或'highestAvailable'(版本9.20,18,2010年5月,md5sum fe5a4c1f2b3439653480c27a3958de15)。 – arve0