« 爱不释手 | 首页 | How High can I be? »

去除MSI安装包中的OS CHECK的一段VBS

  用windows server 2003作日常工作用的系统是因为怀念windows 2000的简洁,虽然这只是我自己的看法,但把win2k3作为工作站系统用的应该还是大有人在的。用win2k3的一个比较麻烦的事情是就很多的软件不能直接安装在server系统上,如一些antivirus软件等。今天又在yahoo上胡乱search了一下。在一个forum里 找到了去除msi安装包中OS CHECK功能的VBS脚本。你可以直接在这里 下载,解压缩后把你的msi安装文件拖到那个vbs文件上,然后一路按几个OK就可以了。我在win2k3上安装Kaspersky 6通过,并且工作基本正常。为了备查同时也把这个script贴在这里。

removechk.vbs

Option Explicit

Const msiOpenDatabaseModeReadOnly = 0
Const msiOpenDatabaseModeTransact = 1

Dim argNum, argCount:argCount = Wscript.Arguments.Count
If (argCount < 1) Then
Wscript.Echo "Please supply the name of the msi file to be modified."
Wscript.Quit 1
End If

' Scan arguments for valid SQL keyword and to determine if any update operations
Dim openMode : openMode = msiOpenDatabaseModeReadOnly
openMode = msiOpenDatabaseModeTransact

' Connect to Windows installer object
Dim installer : Set installer = Nothing
Set installer = Wscript.CreateObject("WindowsInstaller.Installer") : CheckError

' Open database
Dim databasePath:databasePath = Wscript.Arguments(0)
Dim database : Set database = installer.OpenDatabase(databasePath, openMode) : CheckError

' Process SQL statements and delete the crap out of this installer!
Dim query, view, record, message, rowData, columnCount, delim, column
Set view = database.OpenView("Delete from LaunchCondition") : CheckError
view.Execute
wscript.echo "Launch Conditions Removed"
Set view = database.OpenView("Delete from InstallExecuteSequence where Action='OnCheckSilentInstall'")
view.Execute
wscript.echo "OnCheckSilentInstall step removed"
Set view = database.OpenView("Delete from Property where Property = 'ISSETUPDRIVEN'")
view.Execute
wscript.echo "Property ISSETUPDRIVEN removed"
Set view = database.OpenView("INSERT INTO Property (Property,Value) VALUES ('ISSETUPDRIVEN',1)")
view.Execute
wscript.echo "Property ISSETUPDRIVEN added"
database.Commit
Wscript.Quit 0

Sub CheckError
Dim message, errRec
If Err = 0 Then Exit Sub
message = Err.Source & " " & Hex(Err) & ": " & Err.Description
If Not installer Is Nothing Then
Set errRec = installer.LastErrorRecord
If Not errRec Is Nothing Then message = message & vbLf & errRec.FormatText
End If
Fail message
End Sub

Sub Fail(message)
Wscript.Echo message
Wscript.Quit 2
End Sub







Blogged with Flock


引用:

本篇引用地址:
http://www.vetcafe.net/cgi-bin/mt3/mt-tb.cgi/2515

评论:

seen


签名:My Blog (酱油小子)
----------------------------
http://xiangtool.googlepages.com/post.htm

你用googlepages mirror了msn spaces??还是什么,看起来怪怪的。

googlepages我也早就有了,但你没看到上面的朋友的googlepages里都是他msn spaces里的内容吗?
sleetdrop.googlepages.com

http://cnmain.blogcn.com
交换连接怎么样,兄弟?

Then who r u?
Someone from SYAU?

呵呵,看不懂。中国人用国语交流的好啊。交换连接吧,男人痛快点!

http://cnmain.blogcn.com
交换连接怎么样,兄弟?

男人痛快点,呵呵,交换不交换给个说法

你是谁,怎么找到我的,我又不认识你,并且我对你blog的内容不怎么感兴趣,所以不交换了,我写的东西都是给自己看的,所以有没有站外链接我不是很在意。有dmoz和google还有baidu,基本还是有人看我的东西的。

发表评论

(如果您以前没在这里发表过评论,也许您发表的评论需要Blog主人的审核才能显示在这里,感谢您的静候。)