create config file with VB script

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
This entry was posted in Random stuff. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *