史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   作業系統操作技術文件 (http://forum.slime.com.tw/f128.html)
-   -   鮮為人知的Windows「插件」MSI (http://forum.slime.com.tw/thread176036.html)

psac 2006-06-02 05:45 PM

鮮為人知的Windows「插件」MSI
 
鮮為人知的Windows「插件」MSI(1)
msiexec.exe : Starts Windows Installer Program 開始Windows安裝程式

Windows Installer 技術被劃分為合併在一起發揮作用的兩個部分: 客戶端安裝程式服務 (Msiexec.exe) 和 Microsoft 軟件安裝 (MSI) 軟件包文件。 Windows Installer 使用軟件包文件中所包含的訊息來安裝程式。

Msiexec.exe 程式是 Windows Installer 的一個元件。 當 Msiexec.exe 被安裝程式調用時,它將用 Msi.dll 讀取軟件包文件 (.msi)、應用轉換文件 (.mst) 併合並由安裝程式提供的命令行選項。 Windows Installer 執行所有與安裝有關的任務:包括將文件複製到硬碟、修改註冊表、創建桌面快捷方式、必要時顯示提示交談視窗以便用戶輸入安裝首選項。

當 Windows Installer 被安裝在電腦上時,它將更改 .msi 文件的已註冊文件類型,以便您雙擊 .msi 文件即可使該文件與 Msiexec.exe 一起執行。
如果該工作行程路徑是在X:\%system%\system32\目錄下,(X:\%system%\是指你的系統安裝目錄)就是Windows Installer的服務工作行程,描述如下:新增、修改和刪除以 Windows 安裝程式(*.msi)的軟件包提供的應用程式。如果禁用了此服務,任何完全依賴它的服務不會被啟動。
你可以到「服務」中把它設成「手動」試試看。

一、初識Windows功能增強「插件」MSI

我們經常可以看到許多軟件只有一個延伸名為MSI的文件,雙擊這個文件執行,就會出現和Windows應用軟件安裝非常相似的安裝過程,MSI文件到底是什麼?為什麼許多軟件開始用MSI格式來發行呢?請聽我慢慢說來。

1.MSI文件的由來
說到MSI文件,不得不先說說Windows Installer,它不只是安裝程式,而是可擴展的軟件管理系統。Windows Installer的用途包括:管理軟件的安裝、管理軟件元件的新增和刪除、監視文件的復原以及使用回滾技術維護基本的災難恢復。另外,Windows Installer還支持從多個源位置安裝和執行軟件,而且可以由想要安裝自定義程式的開發人員自定義。要想使用這些功能,就必須通過MSI文件。MSI文件是Windows Installer的資料包,它實際上是一個資料庫,包含安裝一種產品所需要的訊息和在很多安裝情形下安裝(和卸載)程式所需的指令和資料。MSI文件將程式的組成文件與功能關聯起來。此外,它還包含有關安裝過程本身的訊息:如安裝序列、目標資料夾路徑、系統依賴項、安裝選擇項和控制安裝過程的內容。

2.MSI的優勢
Windows Installer技術就是合併在一起發揮作用的兩個部分:客戶端安裝程式服務(Msiexec.exe) 和Microsoft軟件安裝(MSI)軟件包文件。當雙擊MSI文件的時候,與之關聯的Windows Installer 的一個文件Msiexec.exe 被調用,它將用Msi.dll讀取軟件包文件(.msi)、應用轉換文件(.mst)進行進一步處理,然後 Windows Installer 執行所有與安裝有關的任務:包括將文件複製到硬碟、修改註冊表、創建桌面快捷方式,必要時顯示提示交談視窗以便用戶輸入安裝需要的訊息,就這樣,一個程式安裝到了你的電腦上。
採用MSI安裝的優勢在於你可以隨時徹底刪除它們,更改安裝選擇項,即使安裝中途出現意想不到的錯誤,一樣可以安全地恢復到以前的狀態,正是憑著此強大功能,越來越多的軟件開始使用MSI作為發行的方式了。   如果你對MSI文件感興趣,可以用WinRAR等壓縮軟件打開,看一下裡面的內容,滿足一下好奇心。

二、細微之處增強系統的六大實例

有沒有人認為Windows已經是最強大,最好用了嗎?答案肯定是五花八門的,但我們可以讓它變得更加強大。通過一個個小的插件程式,使系統功能更加強大方便,下面的幾個工具就可增強Windows某些方面的功能。
小知識:MSI格式文件安裝支持程式

WinMe和WinXP對MSI支持得很好,但其他版本的Windows就需要安裝一個插件才能使用MSI格式的文件。下載地址:http://soft.km169.net/soft/html/3699.htm


用MediaPlayer8.0做MP3

MediaPlayer8.0預定的轉換CD格式是WMA,並且預定還有版權保護,這樣導致本機做的音樂文件沒有許可證,無法在其它機器上播放(甚至本機重裝系統後都無法播放),其實憑著強大的擴展性,MediaPlayer一樣可以把喜歡的CD做成MP3文件。
首先要為WinXP加裝壓制MP3的升級包,到下邊的地址下載後,壓縮包裝裡有兩個文件,其中一個是MP3 Creation Pack for XP.MSI文件,雙擊執行,一路點「Next」就可以安裝了,安裝完成之後,再雙擊ENABLEMP3.REG文件,電腦就會自動將註冊訊息加入到註冊表中,安裝過程就這麼簡單。
安裝完成之後,你可能發現系統沒有任何的變化,但是實際上MediaPlayer已經可以將CD轉換成MP3了,不過要更改一下設置。執行MediaPlayer,點擊表菜單中「工具→選項…→複製音樂」。將文件格式由「Windows Media音頻」改成MP3,並將音樂質量設成合適的,一般選160Kbps就可以了(如果你對音樂比較不敏感,用的是30元左右的音箱,選56Kbps也沒多大區別)(如圖1)。同時,你也可以改一下儲存MP3文件的預定位置,最後點「確定」按鈕關閉「選項交談視窗」。

常用燒錄功能放到右鍵中:ISO Power Toy

這是一個可以增強Windows燒錄功能的工具。WinXP對燒錄機有了一定的支持,可以直接把文件拖到空白的燒錄盤中,然後燒錄。但是這樣簡單的功能還不能滿足我們的需要,我們經常要複製一張光碟到空白的燒錄盤中,或者從網上下載一個ISO的鏡像文件然後把它燒錄出來,這時候我們經常使用第三方的工具,比如說CD Copyer等等,其實安裝了這個插件以後,就不需要這類工具了,而且使用也更簡單了。
安裝過程很簡單,雙擊執行IOSPowerToy.msi文件,然後一路單擊「Next」就可以了。完成之後新增功能已經加入到右鍵表菜單中了。
首先放入一張空白的燒錄盤到燒錄機裡,然後在我的電腦的燒錄機圖示上單擊右鍵,就會發現多了「Copy image to CD」一項,單擊左鍵,會彈出如圖2所示的界面。在Source(來源)欄裡有兩個選項,上邊的「Image File」是通過一個ISO鏡像文件來燒錄光碟,下邊的一個是把其他光碟裡的光碟複製到燒錄盤裡,甚至可以選擇虛擬光碟作為來源,下邊的選框為選擇燒錄機。選好後按下一步,然後就沒有什麼需要設置的了,等光碟燒錄完成後,燒錄機會自動彈出。

DVD功能恢復插件

當WinXP剛推出時,Windows MediaPlayer對其播放DVD功能做了限制。但風聲過了之後,微軟推出了下邊的工具,能發揮出MediaPlayer播放DVD電影的全部功能。和許多增強工具一樣,安裝了這個工具以後,MediaPlayer的界面沒有改變,唯一不同的是對DVD光碟文件支持得更好了。
安全分析工具:Microsoft Baseline Security Analyzer
通過微軟提供的這個工具,你可以對一些常見的由於設置錯誤而可能引起的安全漏洞進行掃瞄,當然,你的電腦必須安裝的是WindowsNT4.0、Windows2000或者WindowsXP操作系統,如果電腦已經聯網,這個工具甚至可以掃瞄網路中的每一台電腦,然後產生各個電腦的錯誤報告。需要注意的是,首先你要有系統管理員的權限;其次,如果掃瞄網路中的電腦,必須將WindowsXP中的「簡單文件共享」關閉,否則只能掃瞄本機的電腦。

增強時鐘功能:「時可通」Windows時鐘升級套件

Windows自帶了時鐘程式,尤其在WinXP中,甚至增加了自動通過網路校準時鐘的功能,但是對於農曆功能支持的很不好,通過「時可通」軟件能大大增強Windows的時鐘功能。跟著提示安裝以後,Windows時鐘就增加了農曆、通過Internet自動校時等功能。在標準Windows時鐘界面基礎上增加了可選擇的農曆對照、節氣、節日、屬相等顯示,用滑鼠掠過螢幕右下角時鐘時,同樣可以增加農曆顯示和星期顯示。網路校時可以進行校時週期、備選服務器顯示,自動檢測代理服務器並允許用戶修改代理服務器,以解決局域網校時問題,而且系統自動檢查新版本升級。

增強MSN Messenger

通過此插件,可以讓MSN Messenger具有許多和QQ類似的功能,比如換背景圖,當某個用戶一上線就播放一段音樂等等。點Setup根據提示就可以安裝了,安裝後有5個選項,分別是更改用戶暱稱的顯示方式、更改背景圖片、更改字庫的顏色、更改隱含的MSN設置、對特定用戶設定。但是對於中文的MSN Messenger似乎不是很好用,只有更改背景、更改暱稱可以使用,大家可以自己試一試。
注:以上插件都可在http://chenpan.vip.sina.com/download.htm下載。

三、定制自己的MSI文件

前面我們介紹了很多MSI文件的內容,其實MSI並不神秘、複雜,我們自己都能製作,並且製作MSI文件的工具已經在Windows的安裝盤上了。

首先,找到Windows2000的安裝光碟,雙擊下邊的這個位置的文件:Valueadd\3rdparty\Mgmt\Winstle\Swiadmle.msi,

很快軟件就自動安裝到了電腦中。在開始表菜單的所有程式裡邊就多了「VERITAS software」組,點擊執行裡邊的「VERITAS discover」就可以開始製作MSI文件了。

製作MSI文件的基本原理就是,在我們安裝一個軟件以前,先給電腦的磁碟拍個「快照」。然後將要安裝的軟件安裝到電腦中,並對註冊表等內容做修改,等到確認這個軟件能正確執行後,再給電腦的磁碟拍個「快照」。Discover軟件會自動找出兩次「快照」的不同,並且產生一個MSI文件。最後,如果你願意,可以使用VERITAS software組中的另一個工具:Veritas Software Console對這個MSI文件進行進一步的包裝、調整,這樣一個MSI文件包就產生了。

下面,我們具體通過一個例子來介紹一下如何使用Discover產生一個MSI文件,假定我們的軟件my的安裝過程是:將my.exe文件安裝到C:\programmeme files\myprog下,將run.dll放到windows\system裡,在註冊表的HKEY_LOCAL_MACHINE的software項中建立一個myprom項,並且在其中新增一個值為OK的Value專案。

第一步:執行Discover,彈出程式界面,可以直接點「Next」按鈕繼續。

第二步:在圖3的交談視窗中,首先在第一文本框為你的程式起個名字,比如這裡用的「My programmeme」;第二個交談視窗是輸出MSI文件的存放位置和文件名,這裡選擇儲存為E:\my_setup.msi;第三個框為壓縮包裝的語言,可以使用其預定值。填好後點「Next」按鈕。

第三步:為Discover存放快照文件選擇一個臨時的空間,可以選一個磁碟空間比較大的磁碟。

第四步:在接下來如圖4的交談視窗中要選擇Discover需要掃瞄並拍「快照」的磁碟,你的程式要裝到哪個盤就選擇哪個盤,並且點一下「Add」按鈕加到要掃瞄文件的列表中,你可以選擇幾個或者所有的磁碟,不過這樣會在掃瞄的過程中浪費更多的時間,所以應該盡量少選擇磁碟。這裡只選擇C硬碟,因為我們的軟件是裝到C硬碟的。然後點「Next」。

第五步:在如圖5所示的交談視窗中為上一步選擇的每個磁碟選擇需要掃瞄的資料夾或文件,因為我們上一步只選擇了C硬碟,所以為C硬碟選擇就可以了。另外,Discover自動加入了一些特殊的文件和目錄,我們可以根據需要決定是否將它們移出要掃瞄的文件列表,不過最好保留它們。這裡我們把「C:\programmeme files」和Windows資料夾添進去,先在左邊的文件框中點中文件或資料夾,然後點Add按鈕就可以了。對於註冊表的掃瞄,Discover為了加快掃瞄速度,只掃瞄部分註冊表,可以掃瞄到大部分程式對註冊表的修改,如果不放心的話,也可以將下邊的「Enhanced Registry Scan」點中,這樣速度可能會慢很多,臨時文件也大大增加,不過能對註冊表所有的改動加以記錄。由於我們的軟件對註冊表只是小改動,所以沒必要選擇掃瞄所有註冊表。然後點「Next」繼續。

第六步:接下來Discover將對系統進行掃瞄產生「快照」,要耐心的等待,可能要幾分鐘的時間才行。

第七步:在掃瞄完成後,會彈出一個交談視窗,大概意思就是告訴你掃瞄已經完成,問你是否要選擇一個程式來執行,從而自動安裝你的軟件,我們正要製作安裝程式,沒有程式可執行,所以要點「取消」按鈕。

第八步:接下來,我們就要手動安裝自己的軟件了,先將my.exe文件拷貝到C:\programmeme files\myprog下,再把run.dll拷貝到windows\system裡,然後用註冊表編輯器在註冊表的HKEY_LOCAL_MACHINE的software項中建立一個myprom項,並在其中新增一個值為OK的Value鍵。注意,除了這些改動,應盡量避免其他無關的改動。然後我們試著執行一下剛剛安裝的my.exe文件,測試一下是否正確安裝。

第九步:確認安裝沒有問題了,要再次執行Discover程式,這次執行Discover時,出現的是如圖6所示的一個界面,有兩個選項,第一項是產生安裝後的快照,用於與前一次的快照比較產生MSI文件,第二個選項是放棄上一次的掃瞄,當然要選第一項了,然後點「Next」。這時Discover又開始重新對電腦進行掃瞄,產生「快照」,並自動產生了安裝文件。

第十步:如果你願意,可以啟動與Discover程式在一起的VERITAS Software console對MSI文件的訊息進一步更改,過程比較簡單,只要先打開一個MSI文件,然後就可以進行改動了,這裡就不介紹了。
就這樣,我們就產生了一個自己的MSI文件了。


MSI 文件提取器

看到罈子中的網友希望提取 MSI 文件中被壓縮的文件,漢化新世紀的那個 MSI文件提取器又不能使用。這類文件只要把延伸名改作 RAR 就可以用 WinRAR 觀看,但是文件架是一些不成文到字元串,很不方便。所以本人抽空作了一個「MSI文件提取器」,希望大家能喜歡。所提取的文件均放在 Windows 的環境資料夾的子資料夾「SourceDir」中,如果提取多個 MSI 文件中的文件,請及時複製出去,以防不同的 MSI 文件中的文件攪和在一起。
下載地址

http://free5.ys168.com/?microspace
==================================

MSI 文件提取器

軟件名稱:MSI 文件提取器

軟件語言 簡體中文

應用平台 windows98/NT/2000/XP/2003
發佈時間 2005-11-17
軟件簡介
本人製作的 MSI 文件提取器(贏政首發)(更新0.5版,如果沒有 BUG,很可能就是最終版)。
本小程式無幫助文件,用兩個幫助形式的交談視窗代替,用來說明目標文件位置。
提取出的目標資料夾位於 MSI源文件資料夾中,目標資料夾新名稱為:源文件名_EXT,如:智慧式狂拼適中版 KPSetupM0930.msi 解包後資料夾為:KPSetupM0930_EXT。
匯出微軟安裝程式 MSI文件的註冊表內容,匯出文件名為:源文件名_EXT.REG,如:智慧式狂拼適中版 KPSetupM0930.msi 解包後資料夾為:KPSetupM0930_EXT.REG。
當 MSI文件較大時,按下「確定鍵」過早可能會造成解包時的環境文件過早自殺,出現找不到文件的錯誤。所以一定要等硬碟燈熄滅後再按下那兩個交談視窗的「確定」鍵。

MSIEXT01.rar,目標資料夾與 MSI 源文件位於同一個資料夾中,目標資料夾名稱為:MsiExt。
MSIEXT02.rar,目標子資料夾與待解包的 MSI 文件名同名,位於MSI 文件所在資料夾中。
MSIEXT03.rar,加入 MSI 安裝程式註冊表內容,註冊表文件名與待解包的 MSI 文件名同名(延伸名為REG_MSIEXT)。使用時把文件名尾部的 7 個字節刪除,就是一個標準的註冊表文件了。
MSIEXT04.rar,新增了「總在最上」功能,這樣小視窗的本程式就不會被其他視窗遮蓋了。
MSIEXT05.rar,修改了交談視窗,正式命名為:微軟 MSI 安裝工具文件提取器 ——贏政版。


下載
http://www.xdowns.com/view_soft/1/4/...iantiquqi.html

psac 2006-09-10 08:53 PM

解決不能訪問WINDOWS INSTALLER服務的方法

Winxp_SP 下不能安裝任何的Office

因為是從這裡(下載交流板塊)找到贏下的xp系統安裝光碟,特來此求助,所以請版主原諒。http://bbs.winzheng.com/attachments/month_0609/zrTDMP7_0XEjHKra42n5.jpg
贏政天下Winxp_SP 下不能安裝任何的Office
我安裝完了贏政天下版的 Windows XP_SP ,接著安裝 龍族 Office 2003 ,結果無法安裝。需要說明的是:這個程式是完好版(在移動硬碟上,安裝過 N*N次都成功),不能安裝 2003 版,就退而求其次,安裝 2000版Ofice ,結果還是出現同樣的錯誤。後來找一個光碟版的 Office XP ,安裝中也是出現這種問題。

但安裝其他所有軟件都成功,包括:Winrar 暴風影音、金山詞霸、KV 2004 殺毒,Flashget 1.7 迅雷 RealPlayer 10 ,只有在安裝Office是不成功的,而其他軟件則不存在此現象。

重新啟動後再安裝Office 還是不成功。也試過了3次重啟後馬上執行安裝程式。

這種問題我還從來不曾遇到過。



Posted on Tuesday, May 17, 2005 9:47 AM #電腦網路
問題年年有,今年特別多

今天公司的電腦又出問題了,一個同事安裝「紫光輸入法3.0」時,

系統提示「不能訪問windows installer 服務,可能你在安全模式下執行 windows ,或者windows installer 沒有正確的安裝,請和你的支持人員聯繫以獲得幫助」。

我又被抓勞工了。
查找資料中……

有了

在Windows2000系統下:

第一步:點擊 開始-->執行,

輸入 CMD 命令,在彈出的CMD命令提示字元視窗中輸入

「msiexec /unregserver」命令,是為了停掉windows installer服務。

第二步:下載windows installer服務安裝程式包,

Windows2000/NT系統的安裝程式包為「InstMsiW.exe」Windows98/ME安裝程式包為"InstMsiA.exe",Windows XP系統則整合了最新版本的Windows Installer v2.0。

下載「InstMsiW.exe」安裝程式包後,將其用winrar解壓開,然後進入到此目錄中。

第三步:右鍵單擊「msi.inf」文件,點擊「安裝」選項,接著右鍵單擊「mspatcha.inf 」文件,點擊「安裝」。

第四步:在CMD命令提示字元下輸入「msiexec /regserver」命令,

這樣就啟動了windows installer服務,重新啟動Windows2000系統後,問題就得到解決。
注意:在安裝兩個inf文件的過程中,不要重新啟動系統,全部操作完成後才能重啟,另外,如果系統安裝了」瑞星病毒防火牆」和「瑞星網路防火牆」,建議在操作過程中關閉瑞星防火牆。

在Windows XP系統下:


第一步:使用記事本編寫installer.reg文件,內容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSIServer]

"ImagePath"=-

"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\

74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,6d,\

00,73,00,69,00,65,00,78,00,65,00,63,00,2e,00,65,00,78,00,65,00,20,00,2f,00,\

56,00,00,00

然後將文件儲存為「.reg」格式,雙擊該文件,將文件內容匯入註冊表。

第二步:重新啟動電腦進入安全模式(啟動時按F8鍵),然後點擊開始-->執行,輸入CMD命令,在彈出的CMD命令提示字元視窗中輸入「msiexec /regserver」,最後重新啟動系統即可。


OK,問題解決了。


所有時間均為台北時間。現在的時間是 08:10 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1