The following script will demonstrate how to create configuration file for an application via VB script. We are currently running it as a login script. It’s very simple but does the job 100%. It grabs environmental variables and then generates individual config file for each computer. In my example we care about hostname and system architecture.
'Name: settings.vbs
'Created by: Naz Snidanko | nsnidanko@wajax.com
'Date: 11/03/2013
'Dexcription: Script to generate AS400 profile file .ws
'15/03/2013 - N.S. - fixed x64 -> displayed as AMD64
'17/03/2013 - N.S. - replaced %HOMEPATH% with %USERPROFILE%
'Function to parse computer name and generate Workstation ID
Function WorkstID (strHostName1, strHostBranch1)
Dim strHostNumb
'Get Hostname number
strHostNumb = Right(strHostName1, 3)
'generate Workstation ID if host number is higher than 099
If ( Left(strHostNumb, 1) = "0" ) Then
WorkstID = "CA" & strHostBranch1 & Right(strHostNumb, 2)
'generate Workstation ID if host number is lower than 100
Else
WorkstID = "CA" & strHostBranch1 & strHostNumb
End If
End Function
Dim wshShell, objFSO, objTextFile, sFileName, sArchitecture, sHostName, strSetting
Const ForWriting = 2
Set wshShell = CreateObject( "WScript.Shell" )
sArchitecture = wshShell.ExpandEnvironmentStrings("%PROCESSOR_ARCHITECTURE%")
sHostName = wshShell.ExpandEnvironmentStrings("%COMPUTERNAME%")
Set objFSO = CreateObject("Scripting.FileSystemObject")
sFileName = wshShell.ExpandEnvironmentStrings("%USERPROFILE%\Desktop")
sFileName = sFileName & "\AS400.ws"
'This is to capture if file already created. Do not execute the rest...
If objFSO.FileExists(sFileName) Then
WScript.Quit
Else
'Set path depending on computer architecture
if (sArchitecture = "x86") Then
strSetting = "C:\Program Files\IBM\Client Access\Emulator\Private\STDAS400."
ElseIf sArchitecture = "AMD64" Then
strSetting = "C:\Program Files (x86)\IBM\Client Access\Emulator\Private\STDAS400."
end if
'Toronto branch code 2
If InStr(sHostName, "TOR") Then
strLine = WorkstID (sHostName, "2")
'Hamilton branch code 3
ElseIf InStr(sHostName, "STO") Then
strLine = WorkstID (sHostName, "3")
'London branch code 4
ElseIf InStr(sHostName, "LON") Then
strLine = WorkstID (sHostName, "4")
'Ottawa branch code 5
ElseIf InStr(sHostName, "OTT") Then
strLine = WorkstID (sHostName, "5")
'Niagara branch code 6
ElseIf InStr(sHostName, "NIA") Then
strLine = WorkstID (sHostName, "6")
'Sudbury branch code 7
ElseIf InStr(sHostName, "SUD") Then
strLine = WorkstID (sHostName, "7")
'Timmins branch code 8
ElseIf InStr(sHostName, "TIM") Then
strLine = WorkstID (sHostName, "8")
'Thunder Bay branch code T
ElseIf InStr(sHostName, "THU") Then
strLine = WorkstID (sHostName, "T")
Else
'catch error + CON, COR, PEM - stop script execution
WScript.Quit
End If
' Overwrite any existing file
Set objTextFile = objFSO.OpenTextFile (sFileName, ForWriting, True)
' Write the configuration settings
objTextFile.WriteLine("[Profile]")
objTextFile.WriteLine("ID=WS")
objTextFile.WriteLine("Version=8")
objTextFile.WriteLine("[CT]")
objTextFile.WriteLine("trace=Y")
objTextFile.WriteLine("[Telnet5250]")
objTextFile.WriteLine("HostName=WDDA400")
objTextFile.WriteLine("AssociatedPrinterStartMinimized=N")
objTextFile.WriteLine("AssociatedPrinterClose=N")
objTextFile.WriteLine("AssociatedPrinterTimeout=0")
objTextFile.WriteLine("Security=CA400")
objTextFile.WriteLine("SSLClientAuthentication=Y")
objTextFile.WriteLine("CertSelection=AUTOSELECT")
objTextFile.WriteLine("AutoReconnect=Y")
objTextFile.WriteLine("[Communication]")
objTextFile.WriteLine("Link=telnet5250")
objTextFile.WriteLine("Session=5250")
objTextFile.WriteLine("[5250]")
objTextFile.WriteLine("ScreenSize=27x132")
objTextFile.WriteLine("HostCodePage=037-U")
objTextFile.WriteLine("WorkStationID=") & strLine
objTextFile.WriteLine("PrinterType=IBM3812")
objTextFile.WriteLine("[Keyboard]")
objTextFile.WriteLine("CuaKeyboard=2")
objTextFile.WriteLine("Language=United-States")
objTextFile.WriteLine("IBMDefaultKeyboard=N")
objTextFile.WriteLine("DefaultKeyboard=") & strSetting & ("KMP")
objTextFile.WriteLine("[Poppad]")
objTextFile.WriteLine("IBMDefaultPoppad=N")
objTextFile.WriteLine("DefaultPoppad=") & strSetting & ("PMP")
objTextFile.WriteLine("[HotSpot]")
objTextFile.WriteLine("Exists=Y")
objTextFile.WriteLine("template1=PF PFnn")
objTextFile.WriteLine("template2=PF FPnn")
objTextFile.WriteLine("template3=PF Fnn")
objTextFile.WriteLine("template4=PF nn")
objTextFile.WriteLine("template5=URL")
objTextFile.WriteLine("template6=cursor")
objTextFile.WriteLine("[Colors]")
objTextFile.WriteLine("OtherColumnSeparator=000000")
objTextFile.WriteLine("[Window]")
objTextFile.WriteLine("SessFlags=38C63")
objTextFile.WriteLine("ViewFlags=CE00")
objTextFile.WriteLine("RuleLinePos=0 0")
objTextFile.WriteLine("[LastExitView]")
objTextFile.WriteLine("A=3 150 150 853 682 3 11 20 400 0 IBM3270— 37")
objTextFile.WriteLine("[printers]")
objTextFile.WriteLine("printer=DEFAULT")
objTextFile.WriteLine("Drawer1Orient=Portrait")
objTextFile.WriteLine("Drawer2Orient=Portrait")
objTextFile.WriteLine("VTPrintArea=Scroll")
objTextFile.WriteLine("VTPrintChar=ASCII")
objTextFile.WriteLine("VTTerminator=None")
objTextFile.Close
End If