Files

138 lines
3.7 KiB
Plaintext

' // ***************************************************************************
' //
' // Copyright (c) Microsoft Corporation. All rights reserved.
' //
' // Microsoft Deployment Toolkit Solution Accelerator
' //
' // File: DeployWiz_Initialization.vbs
' //
' // Version: 6.3.8456.1000
' //
' // Purpose: Main Client Deployment Wizard Initialization routines
' //
' // ***************************************************************************
Option Explicit
'
' Will return a dictionary object containing all Friendly Names Given a GUID as string, this funtion will search all *.xml files in the deployroot for a match.
'
Function GetFriendlyNamesofGUIDs
Dim oFiles
Dim oFolder
Dim oXMLFile
Dim oXMLNode
Dim sName
Dim GuidList
Set GuidList = CreateObject("Scripting.Dictionary")
GuidList.CompareMode = vbTextCompare
Set oFolder = oFSO.GetFolder( oEnvironment.Item("DeployRoot") & "\control" )
If oFolder is nothing then
oLogging.CreateEntry oUtility.ScriptName & " Unable to find DeployRoot!", LogTypeError
Exit function
End if
For each oFiles in oFolder.Files
If UCase(right(oFIles.Name, 4)) = ".XML" then
Set oXMLFile = oUtility.CreateXMLDOMObjectEx( oFiles.Path )
If not oXMLFile is nothing then
for each oXMLNode in oXMLFile.selectNodes("//*/*[@guid]")
if not oXMLNode.selectSingleNode("./Name") is nothing then
sName = oUtility.SelectSingleNodeString(oXMLNode,"./Name")
if not oXMLNode.selectSingleNode("./Language") is nothing then
if oUtility.SelectSingleNodeString(oXMLNode,"./Language") <> "" then
sName = sName & " ( " & oUtility.SelectSingleNodeString(oXMLNode,"./Language") & " )"
end if
end if
if not oXMLNode.Attributes.getNamedItem("guid") is nothing then
if oXMLNode.Attributes.getNamedItem("guid").value <> "" and sName <> "" then
if not GuidList.Exists(oXMLNode.Attributes.getNamedItem("guid").value) then
GuidList.Add oXMLNode.Attributes.getNamedItem("guid").value, sName
end if
end if
end if
end if
next
End if
End if
Next
set GetFriendlyNamesofGUIDs = GuidList
End function
Function PrepareFinalScreen
Dim GuidList
Dim p, i, item, Buffer
set GuidList = GetFriendlyNamesofGUIDs
Dim re, Match
For each p in oProperties.Keys
If IsObject(oProperties(p)) or IsArray(oProperties(p)) then
i = 1
For each item in oProperties(p)
If Item <> "" then
oStrings.AddToList Buffer, p & i & " = """ & item & """", vbNewLine
i = i + 1
End if
next
ElseIf ucase(p) = "DEFAULTDESTINATIONDISK" then
' Skip...
ElseIf ucase(p) = "DEFAULTDESTINATIONPARTITION" then
' Skip...
ElseIf ucase(p) = "DEFAULTDESTINATIONISDIRTY" then
' Skip...
ElseIf ucase(p) = "KEYBOARDLOCALE_EDIT" then
' Skip...
ElseIf ucase(p) = "USERLOCALE_EDIT" then
' Skip...
ElseIf oProperties(p) = "" then
' Skip...
ElseIf Instr(1, p, "Password" , vbTextCompare ) <> 0 then
oStrings.AddToList Buffer, p & " = ""***********""", vbNewLine
else
oStrings.AddToList Buffer, p & " = """ & oProperties(p) & """", vbNewLine
end if
Next
'
' Given a text string containing GUID ID's of configuration entries on the deployment share
' This function will search/replace all GUID's within the text blob.
'
Set re = new regexp
re.IgnoreCase = True
re.Global = True
re.Pattern = "\{[A-F0-9]{8}\-[A-F0-9]{4}\-[A-F0-9]{4}\-[A-F0-9]{4}\-[A-F0-9]{12}\}"
On error resume next
Do while re.Test( Buffer )
For each Match in re.execute(Buffer)
Buffer = mid(Buffer,1,Match.FirstIndex) & _
GuidList.Item(Match.Value) & _
mid(Buffer,Match.FirstIndex+match.Length+1)
Exit for
Next
Loop
On error goto 0
optionalWindow1.InnerText = Buffer
End function