Тогда Вы должны завести какой-то список, что, дескать, группа «X» соответствует таким-то версиям и таким-то параметрам, группа «Y» — таким-то версиям и таким-то параметрам, группа «Z» — таким-то версиям и таким-то параметрам, соответственно. И т.д.
Поскольку структуры в VBScript отсутствуют, проще всего. пожалуй, будет использовать вложенные массивы, наподобие (совсем не проверялось):
Option Explicit
Const strConfigFileName = "ibases.v8i"
Dim arrBases
Dim arrBase
Dim objIADsGroup
Dim strUserGroups
Dim objFSO
Dim strAppData
Dim strPath2Config
Dim strContent81
Dim strContent82
' Группа, Версия, Имя базы, Путь к базе, ID
arrBases = Array( _
Array("1cv81_тест", "8.1", "1C тест", "File=\\SRV1C\1cdb\test;", "f2926bd0-b233-4353-9e35-bfce27d92759"), _
Array("1cv81_тест", "8.1", "1C тест2", "File=\\SRV1C\1cdb\test2;", "bla-bla-bla"), _
Array("1cv81_тест3", "8.1", "1C тест3", "File=\\SRV1C\1cdb\test3;", "bla-bla-bla3"), _
Array("1cv81_тест4", "8.1", "1C тест3", "File=\\SRV1C\1cdb\test3;", "bla-bla-bla3"), _
Array("1cv82_тест", "8.2", "1C тест4", "Srvr=1c:1641;Ref=test", "f2926bd0-b233-4353-9e35-bfce27d92730"), _
Array("1cv82_тест2", "8.2", "1C тест5", "Srvr=1c:1641;Ref=test2;", "bla-bla-bla2") _
)
' Например, группе «1cv81_тест» соответствуют две базы,
' группе «1cv81_тест2» — одна база.
' Ну, и база может соответствовать нескольким группам (в примере — база «1C тест3»).
strContent81 = ""
strContent82 = ""
For Each objIADsGroup In GetObject("LDAP://" & WScript.CreateObject("ADSystemInfo").UserName).Groups
For Each arrBase In arrBases
If objIADsGroup.Name = "CN=" & arrBase(0) Then
Select Case arrBase(1)
Case "8.1"
strContent81 = strContent81 & _
"[" & arrBase(2) & "]" & vbCrLf & _
"Connect=" & arrBase(3) & vbCrLf & _
"ID=" & arrBase(4) & vbCrLf & _
"OrderInList=24576" & vbCrLf & _
"Folder=/" & vbCrLf & _
"OrderInTree=49152" & vbCrLf & _
"External=0"
Case "8.2"
strContent82 = strContent82 & _
"[" & arrBase(2) & "]" & vbCrLf & _
"Connect=" & arrBase(3) & vbCrLf & _
"ID=" & arrBase(4) & vbCrLf & _
"OrderInList=24576" & vbCrLf & _
"Folder=/" & vbCrLf & _
"OrderInTree=49152" & vbCrLf & _
"External=0"
End Select
End If
Next
Next
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
strAppData = WScript.CreateObject("Shell.Application").NameSpace("shell:AppData").self.Path
strPath2Config = objFSO.BuildPath(strAppData, "1C\1Cv81")
If objFSO.FolderExists(strPath2Config) Then
SaveToFile objFSO.BuildPath(strPath2Config, strConfigFileName), strContent81
Else
WScript.Echo "Path [" & strPath2Config & "] not exists."
End If
strPath2Config = objFSO.BuildPath(strAppData, "1C\1CEStart")
If objFSO.FolderExists(strPath2Config) Then
SaveToFile objFSO.BuildPath(strPath2Config, strConfigFileName), strContent82
Else
WScript.Echo "Path [" & strPath2Config & "] not exists."
End If
Set objFSO = Nothing
WScript.Quit 0
'=============================================================================
'=============================================================================
Function SaveToFile(ByVal strFullFileName, ByVal strContent)
Const adTypeText = 2
Const adModeReadWrite = 3
Const adSaveCreateOverWrite = 2
With WScript.CreateObject("ADODB.Stream")
.Type = adTypeText
.Mode = adModeReadWrite
.Open
.Charset = "utf-8"
.WriteText strContent
.SaveToFile strFullFileName, adSaveCreateOverWrite
.Close
End With
End Function
'=============================================================================