Daisy Chain applications
Hi All
I have a dilemma, I have to install the SAP Duet Client for Microsoft onto 200 machines.
The problem that I have is that there is 6 components that needs to be on, before I can install the client
What is the best way to do this? We are using SMS2003 to deploy the apps. I know that creating dependencies in SMS for applications is really troublesome and I am not a VB fundi (if a script is the best idea)
Any ideas
Thanks
I have a dilemma, I have to install the SAP Duet Client for Microsoft onto 200 machines.
The problem that I have is that there is 6 components that needs to be on, before I can install the client
Dot Net Framework 2.0
[/align]
Microsoft Windows Installer 3.1 which reboots the pc
[/align]
Microsoft KB899317
[/align]
Microsoft KB907417
[/align]
Microsoft Office 2003 Smart Tags
[/align]
Microsoft Duet Client Visual Studio Tools
[/align]
SQL Express
[/align]
Microsoft Duet Client 2005
[/align]
0 Comments
[ + ] Show comments
Answers (5)
Please log in to answer
Posted by:
anonymous_9363
16 years ago
Posted by:
cduplessis
16 years ago
Posted by:
anonymous_9363
16 years ago
Posted by:
dm1
16 years ago
Posted by:
jmcfadyen
16 years ago
here ya go, i stripped a bunch of stuff out for your requirements should be ok. im sure you get the idea..
INSTALL mode...
Invoked: cscript Multi-Install.vbs (installs - using "multi-install.xml")
cscript Multi-Install.vbs /I (installs - using "multi-install.xml")
cscript Multi-Install.vbs /I /somefile.xml (installs - using "somefile.xml")
Notes:
* all <Install> tags are actioned (installed)
* all <ProductCode> tags have their associated product removed
UNINSTALL mode...
Invoked: cscript Multi-Install.vbs /U (uninstalls - using "multi-install.xml")
cscript Multi-Install.vbs /U /somefile.xml (uninstalls - using "somefile.xml")
Notes:
* all <Uninstall> tags are actioned for non-MSI's such as .exe .cmd .vbs
* all MSI/MSP's which have entries under <Install> tags are automatically removed
* MSI/MSP/s do not need <Uninstall> tags
Package tag: = Name, Vendor, Version, Cr number, Sw number, RegKeys (Y/N)
Tags for each action:
<Name> = The name of the action being taken, include the product name here
<Install> = The name of the install filename
For MSI/MSP only include the filename
For .exe's, .vbs, .cmd, etc, include any command-line switches, etc
<Uninstall> = The uninstall command-line
For .exe's, .vbs, .cmd, etc, include any command-line switches, etc
<Transform> = The transform filename, if required
<Options> = Options/Properties to append to the MSI/MSP command-line, only for MSI/MSP use
<Productcode> = The ProductCode of an already-installed MSI to be uninstalled
All files that are executed must exist in the same path as this file
If you do not require this script to write the Corp registry keys set RegKeys="N"
All tags are case-sensitive
All log files will be created in C:\Build, MSI logs are created by default
Filenames should not include spaces
For MSI's and MSP's:
The default UI switch will be /QN unless otherwise specified by using the <Options> tag
For MSP uninstall, use the <Uninstall> tag and include the source ProductCode and the
patch ProductCode as per the example below
-->
<Package Name="blah blah" Vendor="MS" Version="8.0.50728" >
<Actions>
<Action>
<Name>App A</Name>
<Install>install.exe /q</Install>
<Productcode>{44D4AF75-6870-41F5-9181-662EA05507E1}</Productcode>
</Action>
<Action>
<Name>App B</Name>
<Install>test\install.exe /q</Install>
<Uninstall>wcu\j#RedistCore\jsredist.msi /qn</Uninstall>
</Action>
<Action>
<Name>dsfdsfdsfdsfdsf dsf sdf sdf </Name>
<Install>vs_setup.msi</Install>
<Transform>blahblah.mst</Transform>
</Action>
<Action>
<Name>Installation_IIS_5.1</Name>
<Install>Build\Installation_IIS_5.1.vbs</Install>
</Action>
<Action>
<Name>Set permissions</Name>
<Install>secedit.exe /configure /db secedit.sdb /areas FILESTORE REGKEYS /cfg "C:\Build\test_Perms.inf" /log "C:\Build\test_Perms.log"</Install>
</Action>
</Actions>
</Package>
Set sobjShell = CreateObject("Wscript.Shell")
Set sobjFSO = CreateObject("Scripting.FileSystemObject")
Set sobjXML = CreateObject("MSXML.DOMDocument")
sobjXML.async = false
if not sobjFSO.FolderExists("c:\build") then sobjFSO.CreateFolder("c:\build")
sstrPath = Left(Wscript.ScriptFullName,InStrRev(Wscript.ScriptFullName,"\"))
sstrXMLFile = sstrPath & "\Multi-Install.xml"
sstrMSILogpath = "c:\build\"
'-- Check for uninstall argument in the command string
If (Wscript.Arguments.Count = 1) Then
If (UCase(Wscript.Arguments(0)) = "/U") Then
sstrInstType = "Uninstall"
Else
sstrInstType = "Install"
End If
Else
sstrInstType = "Install"
End If
'-- Read the actions XML file
sobjXML.load sstrXMLFile
Set sobjPackage = sobjXML.selectSingleNode("//Package")
sstrPackageName = sobjPackage.GetAttribute("Name")
sstrLogFile = sstrMSILogpath & sstrPackageName & " " & ".log"
Set sobjActions = sobjXML.selectSingleNode("//Actions")
For each sobjNode in sobjActions.childNodes
sstrActionName = sobjNode.selectSingleNode("Name").text
sstrActionInstall = sobjNode.selectSingleNode("Install").text
sstrActionTransform = sobjNode.selectSingleNode("Transform").text
sstrActionUninstall = sobjNode.selectSingleNode("Uninstall").text
sstrActionOptions = sobjNode.selectSingleNode("Options").text
sstrActionType = sobjFSO.GetExtensionName(sstrPath & sstrActionInstall)
if sstrInstType = "Install" then
select case ucase(sstrActionType)
case "MSI"
Call RunMSI(sstrActionInstall, sstrActionTransform, sstrActionOptions)
case "MSP"
Call RunMSP(sstrActionInstall)
case "VBS"
Call RunVBS(sstrActionInstall, sstrActionOptions)
case else
Call RunEXE(sstrActionInstall, sstrActionOptions)
end select
else
select case ucase(sstrActionType)
case "MSI"
Call RemoveMSI(sstrActionInstall, "", sstrActionOptions)
case "MST"
Call RemoveMSI(sstrActionInstall, sstrActionTransform, sstrActionOptions)
case "MSP"
Call RemoveMSP(sstrActionInstall)
case else
Call RunEXE(sstrActionUnistall, sstrActionUninstall)
end select
End If
Next
LogInfo "All actions have been processed, execution complete."
sobjShell.RegWrite sstrRootKey & "Status", sstrInstType & "ed"
WScript.Quit 0
' ------------------------------------------------------------------------------
' Sub: LogInfo
' Inputs: msg
'
' Purpose: Writes %msg% to log
' ------------------------------------------------------------------------------
Sub LogInfo(msg)
Const ForAppending = 8
WScript.Echo msg
Set sobjLogFile = sobjFSO.OpenTextFile(sstrLogFile, ForAppending, True)
sobjLogFile.WriteLine msg
sobjLogFile.Close
Set sobjLogFile = Nothing
End Sub
' ------------------------------------------------------------------------------
' Function: RunMSI
' Inputs: strMSI - Name of MSI can contain spaces
' strMST - Name of MST can contain spaces (optional)
' strOptions - MSI options (usually at least /qb)
'
' Purpose: Executes an MSI / MST with MSI based parameters
' Returns: String with return code interpretation
' ------------------------------------------------------------------------------
function runMSI(strMSI, strMST, strOptions)
on error resume next
err.clear
dim strMSIlog, strCommand, strExecute, strFilename, intRet
strMSIlog = sstrMSILogpath & sstrActionName & " - " & sstrPackageCR & " - " & sstrInstType & ".log"
if strMST = "" then
strCommand = " /l*v " & chr(34) & strMSIlog & chr(34)
else
strCommand = " TRANSFORMS=" & chr(34) & sstrPath & strMST & chr(34) & " /l*v " & chr(34) & strMSIlog & chr(34)
end if
if NOT strOptions = "" then strCommand = strCommand & " " & strOptions
strExecute = "/i " & Chr(34) & sstrPath & strMSI & Chr(34) & strCommand
LogInfo ("Running command: msiexec.exe " & strExecute)
intRet = sobjShell.Run("msiexec.exe " & strExecute ,1,1)
if intRet <> "0" OR intRet <> "3010" then runMSI = SetReturnText(intRet)
LogInfo ("MSIEXEC: " & strExecute & vbcrlf _
& ", result=" & RunMSI & vbCRLF)
strOptions = null
end function
' ------------------------------------------------------------------------------
' Function: RemoveMSI
' Inputs: strMSI - Name of MSI can contain spaces
' strOptions - MSI options (usually at least /qb)
' strMST - Name of MST can contain spaces (optional)
'
' Purpose: Executes an MSI / MST with MSI based parameters
' Returns: String with return code interpretation
' ------------------------------------------------------------------------------
function RemoveMSI(strMSI, strMST, strOptions)
on error resume next
err.clear
dim strMSIlog, strCommand, strExecute, strFilename, intRet
strMSIlog = sstrMSILogpath & sstrActionName & " - " & sstrPackageCR & " - " & sstrInstType & ".log"
if strMST = "" then
strCommand = " /l*v " & chr(34) & strMSIlog & chr(34)
else
strCommand = " TRANSFORMS=" & chr(34) & sstrPath & strMST & chr(34) & " /l*v " & chr(34) & strMSIlog & chr(34)
end if
if NOT strOptions = "" then strCommand = strCommand & " " & strOptions
strExecute = "/x " & Chr(34) & sstrPath & strMSI & Chr(34) & strCommand
LogInfo ("Running command: msiexec.exe " & strExecute)
intRet = sobjShell.Run("msiexec.exe " & strExecute ,1,1)
if intRet <> "0" OR intRet <> "3010" then removeMSI = SetReturnText(intRet)
LogInfo ("MSIEXEC: " & strExecute & vbcrlf _
& ", result=" & removeMSI & vbCRLF)
strOptions = null
end function
' ------------------------------------------------------------------------------
' Function: RunMSP
' Inputs: strMSP - Name of MSP can contain spaces
'
' Purpose: Executes an MSP
' Returns: String with return code interpretation
' ------------------------------------------------------------------------------
function RunMSP(sMSP)
on error resume next
err.clear
dim sMSPlog, strCommand, strExecute, strFilename, intRet
strMSPlog = sstrMSILogpath & sstrActionName & " - " & sstrPackageCR & " - " & sstrInstType & ".log"
strCommand = " ALLUSERS=1 /l*v " & chr(34) & sMSPlog & chr(34) & " /qb- REINSTALL=ALL REINSTALLMODE=omus"
strExecute = "/p " & Chr(34) & sstrPath & sMSP & Chr(34) & strCommand
LogInfo ("Running command: msiexec.exe " & strExecute)
intRet = sobjShell.Run("msiexec.exe " & strExecute ,1,1)
if intRet <> "0" OR intRet <> "3010" then runMSP = SetReturnText(intRet)
LogInfo ("MSIEXEC: " & strExecute & vbcrlf _
& ", result=" & RunMSI & vbCRLF)
end function
' ------------------------------------------------------------------------------
' Sub: RunEXE
' Inputs: strEXE - Name of EXE can contain spaces
'
' Purpose: Executes an EXE with associated arguments / options
' ------------------------------------------------------------------------------
sub RunEXE(strEXE, strOptions)
dim intRet, strPath
strPath = sstrPath
if Not sobjFSO.FileExists(strPath & strExe) then strPath = ""
LogInfo ("Running command: " & Chr(34) & strPath & strExe & " " & strOptions &Chr(34))
if strOptions = "" then
intRet = sobjShell.Run(Chr(34) & strPath & strExe & Chr(34),1,1)
else
intRet = sobjShell.Run(Chr(34) & strPath & strExe & Chr(34) & " " & strOptions,1,1)
end if
if intRet = 0 then
Loginfo("EXEC: " & strPath & strExe & ", result=" & intRet & vbCRLF)
else
Loginfo("EXEC: " & strPath & strExe & ", result=failed" & vbCRLF)
end if
end sub
'================================================================================================================================
' ------------------------------------------------------------------------------
' Sub: RunVBS
' Inputs: strVBS - Name of EXE can contain spaces
' strOptions - command-line options to send to VBS
'
' Purpose: Executes an VBS using cscript.exe with associated arguments / options
' ------------------------------------------------------------------------------
sub RunVBS(strVBS, strOptions)
dim intRet, strPath
strPath = sstrPath
LogInfo ("Running command: cscript.exe " & Chr(34) & strPath & strVBS & " " & strOptions &Chr(34))
if strOptions = "" then
intRet = sobjShell.Run("cscript.exe " & Chr(34) & strPath & strVBS & Chr(34),1,1)
else
intRet = sobjShell.Run("cscript.exe " & Chr(34) & strPath & strVBS & Chr(34) & " " & strOptions,1,1)
end if
if intRet = 0 then
Loginfo("EXEC: cscript.exe " & strPath & strVBS & ", result=" & intRet & vbCRLF)
else
Loginfo("EXEC: cscript.exe " & strPath & strVBS & ", result=failed" & vbCRLF)
end if
end sub
'================================================================================================================================
INSTALL mode...
Invoked: cscript Multi-Install.vbs (installs - using "multi-install.xml")
cscript Multi-Install.vbs /I (installs - using "multi-install.xml")
cscript Multi-Install.vbs /I /somefile.xml (installs - using "somefile.xml")
Notes:
* all <Install> tags are actioned (installed)
* all <ProductCode> tags have their associated product removed
UNINSTALL mode...
Invoked: cscript Multi-Install.vbs /U (uninstalls - using "multi-install.xml")
cscript Multi-Install.vbs /U /somefile.xml (uninstalls - using "somefile.xml")
Notes:
* all <Uninstall> tags are actioned for non-MSI's such as .exe .cmd .vbs
* all MSI/MSP's which have entries under <Install> tags are automatically removed
* MSI/MSP/s do not need <Uninstall> tags
Package tag: = Name, Vendor, Version, Cr number, Sw number, RegKeys (Y/N)
Tags for each action:
<Name> = The name of the action being taken, include the product name here
<Install> = The name of the install filename
For MSI/MSP only include the filename
For .exe's, .vbs, .cmd, etc, include any command-line switches, etc
<Uninstall> = The uninstall command-line
For .exe's, .vbs, .cmd, etc, include any command-line switches, etc
<Transform> = The transform filename, if required
<Options> = Options/Properties to append to the MSI/MSP command-line, only for MSI/MSP use
<Productcode> = The ProductCode of an already-installed MSI to be uninstalled
All files that are executed must exist in the same path as this file
If you do not require this script to write the Corp registry keys set RegKeys="N"
All tags are case-sensitive
All log files will be created in C:\Build, MSI logs are created by default
Filenames should not include spaces
For MSI's and MSP's:
The default UI switch will be /QN unless otherwise specified by using the <Options> tag
For MSP uninstall, use the <Uninstall> tag and include the source ProductCode and the
patch ProductCode as per the example below
-->
<Package Name="blah blah" Vendor="MS" Version="8.0.50728" >
<Actions>
<Action>
<Name>App A</Name>
<Install>install.exe /q</Install>
<Productcode>{44D4AF75-6870-41F5-9181-662EA05507E1}</Productcode>
</Action>
<Action>
<Name>App B</Name>
<Install>test\install.exe /q</Install>
<Uninstall>wcu\j#RedistCore\jsredist.msi /qn</Uninstall>
</Action>
<Action>
<Name>dsfdsfdsfdsfdsf dsf sdf sdf </Name>
<Install>vs_setup.msi</Install>
<Transform>blahblah.mst</Transform>
</Action>
<Action>
<Name>Installation_IIS_5.1</Name>
<Install>Build\Installation_IIS_5.1.vbs</Install>
</Action>
<Action>
<Name>Set permissions</Name>
<Install>secedit.exe /configure /db secedit.sdb /areas FILESTORE REGKEYS /cfg "C:\Build\test_Perms.inf" /log "C:\Build\test_Perms.log"</Install>
</Action>
</Actions>
</Package>
Set sobjShell = CreateObject("Wscript.Shell")
Set sobjFSO = CreateObject("Scripting.FileSystemObject")
Set sobjXML = CreateObject("MSXML.DOMDocument")
sobjXML.async = false
if not sobjFSO.FolderExists("c:\build") then sobjFSO.CreateFolder("c:\build")
sstrPath = Left(Wscript.ScriptFullName,InStrRev(Wscript.ScriptFullName,"\"))
sstrXMLFile = sstrPath & "\Multi-Install.xml"
sstrMSILogpath = "c:\build\"
'-- Check for uninstall argument in the command string
If (Wscript.Arguments.Count = 1) Then
If (UCase(Wscript.Arguments(0)) = "/U") Then
sstrInstType = "Uninstall"
Else
sstrInstType = "Install"
End If
Else
sstrInstType = "Install"
End If
'-- Read the actions XML file
sobjXML.load sstrXMLFile
Set sobjPackage = sobjXML.selectSingleNode("//Package")
sstrPackageName = sobjPackage.GetAttribute("Name")
sstrLogFile = sstrMSILogpath & sstrPackageName & " " & ".log"
Set sobjActions = sobjXML.selectSingleNode("//Actions")
For each sobjNode in sobjActions.childNodes
sstrActionName = sobjNode.selectSingleNode("Name").text
sstrActionInstall = sobjNode.selectSingleNode("Install").text
sstrActionTransform = sobjNode.selectSingleNode("Transform").text
sstrActionUninstall = sobjNode.selectSingleNode("Uninstall").text
sstrActionOptions = sobjNode.selectSingleNode("Options").text
sstrActionType = sobjFSO.GetExtensionName(sstrPath & sstrActionInstall)
if sstrInstType = "Install" then
select case ucase(sstrActionType)
case "MSI"
Call RunMSI(sstrActionInstall, sstrActionTransform, sstrActionOptions)
case "MSP"
Call RunMSP(sstrActionInstall)
case "VBS"
Call RunVBS(sstrActionInstall, sstrActionOptions)
case else
Call RunEXE(sstrActionInstall, sstrActionOptions)
end select
else
select case ucase(sstrActionType)
case "MSI"
Call RemoveMSI(sstrActionInstall, "", sstrActionOptions)
case "MST"
Call RemoveMSI(sstrActionInstall, sstrActionTransform, sstrActionOptions)
case "MSP"
Call RemoveMSP(sstrActionInstall)
case else
Call RunEXE(sstrActionUnistall, sstrActionUninstall)
end select
End If
Next
LogInfo "All actions have been processed, execution complete."
sobjShell.RegWrite sstrRootKey & "Status", sstrInstType & "ed"
WScript.Quit 0
' ------------------------------------------------------------------------------
' Sub: LogInfo
' Inputs: msg
'
' Purpose: Writes %msg% to log
' ------------------------------------------------------------------------------
Sub LogInfo(msg)
Const ForAppending = 8
WScript.Echo msg
Set sobjLogFile = sobjFSO.OpenTextFile(sstrLogFile, ForAppending, True)
sobjLogFile.WriteLine msg
sobjLogFile.Close
Set sobjLogFile = Nothing
End Sub
' ------------------------------------------------------------------------------
' Function: RunMSI
' Inputs: strMSI - Name of MSI can contain spaces
' strMST - Name of MST can contain spaces (optional)
' strOptions - MSI options (usually at least /qb)
'
' Purpose: Executes an MSI / MST with MSI based parameters
' Returns: String with return code interpretation
' ------------------------------------------------------------------------------
function runMSI(strMSI, strMST, strOptions)
on error resume next
err.clear
dim strMSIlog, strCommand, strExecute, strFilename, intRet
strMSIlog = sstrMSILogpath & sstrActionName & " - " & sstrPackageCR & " - " & sstrInstType & ".log"
if strMST = "" then
strCommand = " /l*v " & chr(34) & strMSIlog & chr(34)
else
strCommand = " TRANSFORMS=" & chr(34) & sstrPath & strMST & chr(34) & " /l*v " & chr(34) & strMSIlog & chr(34)
end if
if NOT strOptions = "" then strCommand = strCommand & " " & strOptions
strExecute = "/i " & Chr(34) & sstrPath & strMSI & Chr(34) & strCommand
LogInfo ("Running command: msiexec.exe " & strExecute)
intRet = sobjShell.Run("msiexec.exe " & strExecute ,1,1)
if intRet <> "0" OR intRet <> "3010" then runMSI = SetReturnText(intRet)
LogInfo ("MSIEXEC: " & strExecute & vbcrlf _
& ", result=" & RunMSI & vbCRLF)
strOptions = null
end function
' ------------------------------------------------------------------------------
' Function: RemoveMSI
' Inputs: strMSI - Name of MSI can contain spaces
' strOptions - MSI options (usually at least /qb)
' strMST - Name of MST can contain spaces (optional)
'
' Purpose: Executes an MSI / MST with MSI based parameters
' Returns: String with return code interpretation
' ------------------------------------------------------------------------------
function RemoveMSI(strMSI, strMST, strOptions)
on error resume next
err.clear
dim strMSIlog, strCommand, strExecute, strFilename, intRet
strMSIlog = sstrMSILogpath & sstrActionName & " - " & sstrPackageCR & " - " & sstrInstType & ".log"
if strMST = "" then
strCommand = " /l*v " & chr(34) & strMSIlog & chr(34)
else
strCommand = " TRANSFORMS=" & chr(34) & sstrPath & strMST & chr(34) & " /l*v " & chr(34) & strMSIlog & chr(34)
end if
if NOT strOptions = "" then strCommand = strCommand & " " & strOptions
strExecute = "/x " & Chr(34) & sstrPath & strMSI & Chr(34) & strCommand
LogInfo ("Running command: msiexec.exe " & strExecute)
intRet = sobjShell.Run("msiexec.exe " & strExecute ,1,1)
if intRet <> "0" OR intRet <> "3010" then removeMSI = SetReturnText(intRet)
LogInfo ("MSIEXEC: " & strExecute & vbcrlf _
& ", result=" & removeMSI & vbCRLF)
strOptions = null
end function
' ------------------------------------------------------------------------------
' Function: RunMSP
' Inputs: strMSP - Name of MSP can contain spaces
'
' Purpose: Executes an MSP
' Returns: String with return code interpretation
' ------------------------------------------------------------------------------
function RunMSP(sMSP)
on error resume next
err.clear
dim sMSPlog, strCommand, strExecute, strFilename, intRet
strMSPlog = sstrMSILogpath & sstrActionName & " - " & sstrPackageCR & " - " & sstrInstType & ".log"
strCommand = " ALLUSERS=1 /l*v " & chr(34) & sMSPlog & chr(34) & " /qb- REINSTALL=ALL REINSTALLMODE=omus"
strExecute = "/p " & Chr(34) & sstrPath & sMSP & Chr(34) & strCommand
LogInfo ("Running command: msiexec.exe " & strExecute)
intRet = sobjShell.Run("msiexec.exe " & strExecute ,1,1)
if intRet <> "0" OR intRet <> "3010" then runMSP = SetReturnText(intRet)
LogInfo ("MSIEXEC: " & strExecute & vbcrlf _
& ", result=" & RunMSI & vbCRLF)
end function
' ------------------------------------------------------------------------------
' Sub: RunEXE
' Inputs: strEXE - Name of EXE can contain spaces
'
' Purpose: Executes an EXE with associated arguments / options
' ------------------------------------------------------------------------------
sub RunEXE(strEXE, strOptions)
dim intRet, strPath
strPath = sstrPath
if Not sobjFSO.FileExists(strPath & strExe) then strPath = ""
LogInfo ("Running command: " & Chr(34) & strPath & strExe & " " & strOptions &Chr(34))
if strOptions = "" then
intRet = sobjShell.Run(Chr(34) & strPath & strExe & Chr(34),1,1)
else
intRet = sobjShell.Run(Chr(34) & strPath & strExe & Chr(34) & " " & strOptions,1,1)
end if
if intRet = 0 then
Loginfo("EXEC: " & strPath & strExe & ", result=" & intRet & vbCRLF)
else
Loginfo("EXEC: " & strPath & strExe & ", result=failed" & vbCRLF)
end if
end sub
'================================================================================================================================
' ------------------------------------------------------------------------------
' Sub: RunVBS
' Inputs: strVBS - Name of EXE can contain spaces
' strOptions - command-line options to send to VBS
'
' Purpose: Executes an VBS using cscript.exe with associated arguments / options
' ------------------------------------------------------------------------------
sub RunVBS(strVBS, strOptions)
dim intRet, strPath
strPath = sstrPath
LogInfo ("Running command: cscript.exe " & Chr(34) & strPath & strVBS & " " & strOptions &Chr(34))
if strOptions = "" then
intRet = sobjShell.Run("cscript.exe " & Chr(34) & strPath & strVBS & Chr(34),1,1)
else
intRet = sobjShell.Run("cscript.exe " & Chr(34) & strPath & strVBS & Chr(34) & " " & strOptions,1,1)
end if
if intRet = 0 then
Loginfo("EXEC: cscript.exe " & strPath & strVBS & ", result=" & intRet & vbCRLF)
else
Loginfo("EXEC: cscript.exe " & strPath & strVBS & ", result=failed" & vbCRLF)
end if
end sub
'================================================================================================================================
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.