Microsoft Dynamics vbs install script
Hi I'm trying to get vbs script working to install Microsoft Dynamics 2009 on some of our servers. The script needs to pass the paramters of the setup.exe (only way the app installs) and also delete some shortcuts from the desktop. The problem i have is that install paths are not recognised by the setup.exe inside the vbs due to the " in the path statement. However if i dont use " in my install path the vbs fails with syntax errors. I'm wondering if anyone can help. I know a possibilty could be using a variable for the path, but i'm a bit of vbs newbie, and not quite sure how to script that.
WshShell.Run "change user /install",0,True
'Install App
Dim WSHShell
Set WSHShell = WScript.CreateObject ("WSCript.shell")
WSHShell.Run "change user /install",0,True
WSHShell.Run Chr(34) & "\\Installserver\DynamicsAX2009\setup.exe" & chr(34) & " SETUPLANGUAGE=EN " & "ConfigurePrerequisites=1 " & "HideUI=1 " & "AcceptLicenseTerms=1 " & "InstallPath= " & chr(34) & "C:\PROGRAM FILES\Microsoft Dynamics AX\50 " & "InstallPath32Bit " & chr(34) & "C:\Program Files (x86)\Microsoft Dynamics AX\50 " & "InstallClientUI=1 " & "ClientAosServer=DynamicxAx-Standard@AppDynamicsAX:2712 " & "ClientLanguage=en-nz " & "ClientHelpLanguages=en-US;en-nz " & "LogDir=C:\Logs\AX2009.Install.log" & Chr(34), 1, True
WScript.sleep(7000)
' Delete application icons from start menu
Set objFSO = CreateObject("Scripting.FileSystemObject")
If ObjFSO.FolderExists("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Dynamics AX 2009") Then
ObjFSO.DeleteFolder("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Dynamics AX 2009"), True
End If
Answers (5)
The below code should work..
WSHShell.Run Chr(34) & "\\Installserver\DynamicsAX2009\setup.exe" & chr(34) & " SETUPLANGUAGE=EN ConfigurePrerequisites=1 HideUI=1 AcceptLicenseTerms=1 InstallPath=" & chr(34) & "C:\PROGRAM FILES\Microsoft Dynamics AX\50" & Chr(34) & " InstallPath32Bit=" & chr(34) & "C:\Program Files (x86)\Microsoft Dynamics AX\50"& Chr(34) & " InstallClientUI=1 ClientAosServer=DynamicxAx-Standard@AppDynamicsAX:2712 ClientLanguage=en-nz ClientHelpLanguages=en-US;en-nz LogDir=" & Chr(34) & "C:\Logs\AX2009.Install.log" & Chr(34)
Installer = chr(34) & "\\Installserver\DynamicsAX2009\setup.exe" & chr(34)
Switches = " SETUPLANGUAGE=EN " & "ConfigurePrerequisites=1 " & "HideUI=1 " & "AcceptLicenseTerms=1 " & "InstallPath= " & chr(34) & "C:\PROGRAM FILES\Microsoft Dynamics AX\50 " & "InstallPath32Bit " & chr(34) & "C:\Program Files (x86)\Microsoft Dynamics AX\50 " & "InstallClientUI=1 " & "ClientAosServer=DynamicxAx-Standard@AppDynamicsAX:2712 " & "ClientLanguage=en-nz " & "ClientHelpLanguages=en-US;en-nz " & "LogDir=C:\Logs\AX2009.Install.log" & Chr(34)
Check = Installer & Switches
Wscript.Echo "my complete installation looks like this: " & Check
Install = WshShell.Run(Check, 1, True)
If Install <> 0 Then
Wscript.Echo "fail"
End if
Comments:
-
It's a bit messy so check your {space} and chr(34)....but the point is that u'll see the complete installationstring, and were it goes wrong - asman 11 years ago
Fixed the script and included a sub routine to get by the Open File security window when launching a vbs. Works great. Hope it helps someone out there. I basically launch a secondary cmd from inside the vbs.
'---------------------------------------------------------------------
'Start Script
'---------------------------------------------------------------------
On Error Resume Next
'Enter install mode
WshShell.Run "change user /install",0,True
'Install App
Dim WSHShell
Set WSHShell = WScript.CreateObject ("WSCript.shell")
set oEnv = oShell.Environment("PROCESS")
set objShell = CreateObject("Wscript.shell")
Set objEnv = objShell.Environment("PROCESS")
'*********************************************************************************
'Main Routine
'*********************************************************************************
objEnv("SEE_MASK_NOZONECHECKS") = 1
Install_Application()
objEnv.Remove("SEE_MASK_NOZONECHECKS")
'*********************************************************************************
'Install Application
'*********************************************************************************
Function Install_Application()
'setup program
objShell.run "cmd /c \\installServer\AppsBuild\DynamicsAX2009\setup.exe SETUPLANGUAGE=EN ConfigurePrerequisites=1 HideUI=1 AcceptLicenseTerms=1 InstallPath=""C:\Program Files\Microsoft Dynamics AX\50"" InstallPath32Bit=""C:\Program Files(x86)\Microsoft Dynamics AX\50"" InstallClientUI=1 ClientConfig=1 ClientAosServer=DynamicxAx-Standard@AppDynamicsAX:2712 ClientLanguage=en-nz ClientHelpLanguages=en-US;en-nz LogDir=C:\CSR_Logs\AX2009.Install.log", 1, True
WScript.Sleep(7000)
End Function
' Delete application icons from start menu
Set objFSO = CreateObject("Scripting.FileSystemObject")
If ObjFSO.FolderExists("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Dynamics AX 2009") Then
ObjFSO.DeleteFolder("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Dynamics AX 2009"), True
End If
' End Script
Give this a shot and see if it works. I removed the miscellaneous Chr's and removed the combining operators to create a better looking string. The only thing that was really necessary was double-quoting the multiple "Install Path" references. Check out http://technet.microsoft.com/en-us/library/aa548130.aspx for command-line parameter help with the installer. A few of the switches I see in your command do not exist on the web page.
WshShell.Run "change user /install", 0, True
' Install App
Dim WSHShell
Set WSHShell = WScript.CreateObject ("WSCript.shell")
WSHShell.Run "change user /install", 0, True
WSHShell.Run "\\Installserver\DynamicsAX2009\setup.exe SETUPLANGUAGE=EN ConfigurePrerequisites=1 HideUI=1 AcceptLicenseTerms=1 InstallPath=""C:\PROGRAM FILES\Microsoft Dynamics AX\50"" InstallPath32Bit=""C:\Program Files (x86)\Microsoft Dynamics AX\50"" InstallClientUI=1 ClientAosServer=DynamicxAx-Standard@AppDynamicsAX:2712 ClientLanguage=en-nz ClientHelpLanguages=en-US;en-nz LogDir=C:\Logs\AX2009.Install.log", 1, True
WScript.sleep(7000)
' Delete application icons from start menu
Set objFSO = CreateObject("Scripting.FileSystemObject")
If ObjFSO.FolderExists("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Dynamics AX 2009") Then
ObjFSO.DeleteFolder("C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Dynamics AX 2009", True)
End If