Seems I forgot something about WiseScript.

[8D]

I remember that there was a way to get the command line passed to the EXE through a variable. I used to rely on this post but the example files are missing!

http://www.myitforum.com/articles/5/view.asp?id=2189

I'm not doing so well with Google so I thought I would ping the board and see if anyone knows this off the top of their head.
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
WiseInitCmdLine?
Answered 07/03/2008 by: AngelD
Red Belt

Please log in to comment
0
I'm in the same boat as you, kkaminsk, and unfortunately, don't have much to offer except a link and specific page in the new WiseScript 7.0 Reference Guide: altiris.com/upload/wisescripteditor_005.pdf

Page 144 references "CMDLINE", defined as "The command line options passed to the installation .EXE." Unfortunately, they don't tell you precisely how to make good use this variable, much less provide any real-world examples.

It looks to me like anything past "<filename>.exe" gets parsed and vaiable-ized (automatically?) as "CMDLINE", which you can use in your Wisescript. Something like:

If "%CMDLINE%" = "/install" then Execute (something...)
If "%CMDLINE%" = "/uninstall" then Execute (something else...)

If this really works, great, but I haven't proven this through trial-and-error yet.
Answered 02/12/2009 by: norexx
Orange Belt

Please log in to comment
0
I tried out the "CMDLINE" automatic runtime variable, and it works like a charm! Example:

Set Variable INST_PARAM to %CMDLINE%
Display Message "Installation Parameter" (Message text = "%INST_PARAM%")

Running a compiled Wisescript EXE from the command line with no parameter ("Setup.exe") generates a dialog with empty quotes.
Running "Setup.exe /install" generates a dialog with "/install".
Running "Setup.exe /clean" generates a dialog with "/clean".*
(*see below on why I used "clean" vs. "remove" or "uninstall")

So... if you wanted to wrap an MSI inside your Wisescript EXE and run it, you'd need something like this:

Remark - Extract the package Installation Files to standad xMWS location...
Install File .\<msi filename>.msi to C:\<your target folder>\<msi filename>.msi
Install File .\<mst filename>.msi to C:\<your target folder>\<mst filename>.mst
Install File .\<cab filename>.cab to C:\<your target folder>\<msi filename>.cab

Remark - Parse, validate and execute Command Line with parameter
Set Variable INST_PARAM to %CMDLINE%

If INST_PARAM Equals (Ignore Case) "" then
Display Message "Missing or Invalid Command Line Parameter"
Exit Installation
End

If INST_PARAM Equals (Ignore Case) "/install" then
Execute %SYS32%\MSIEXEC.EXE /I "C:\<your target folder>\<msi filename>.msi" TRANSFORMS="C:\<your target folder>\<mst filename>.mst" REBOOT=ReallySuppress /l+*v "C:\<your target folder>appname.log" /qb- (wait)
Exit Installation

ElseIf INST_PARAM Equals (Ignore Case) "/clean" then
Execute %SYS32%\MSIEXEC.EXE /X "C:\<your target folder>\<msi filename>.msi" TRANSFORMS="C:\<your target folder>\<mst filename>.mst" REBOOT=ReallySuppress /l+*v "C:\<your target folder>appname.log" /qb- (wait)
Exit Installation

Else
Display Message "Missing or Invalid Command Line Parameter"
Exit Installation
End


Now... that said, there are a couple of things you ought to be aware of:

1) Some letters are reserved by WiseScript as built-in install/uninstall command-line parameters. This means that the first two characters of your custom "CMDLINE" parameter cannot be any of the following: /A, /M, /R, /S, /T, /U, /X, /Z

So, if for example, you use "/remove", or "/uninstall", your WiseScript EXE will only recognize the "/r" or "/u" and ignore the rest.

Sources:
http://forums.altiris.com/messageview.aspx?catid=19&threadid=53636&enterthread=y
http://www.altiris.com/upload/wisescripteditor_005.pdf (pages 154-155)


2) There appears to be a reported known bug with "Include Script" command, where a compiled WiseSript EXE only executes the first instance of an included script.

Source:
http://itninja.com/question/how-do-you-roll-out-new-machines?0125


Hope this helps.
Answered 02/23/2009 by: norexx
Orange Belt

Please log in to comment
Answer this question or Comment on this question for clarity