Ajout dela structure MDT dans Infra-LAB
This commit is contained in:
@@ -0,0 +1,259 @@
|
||||
<job id="ZTIAppXmlGen">
|
||||
<script language="VBScript" src="ZTIUtility.vbs"/>
|
||||
<script language="VBScript">
|
||||
|
||||
' // ***************************************************************************
|
||||
' //
|
||||
' // Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
' //
|
||||
' // Microsoft Deployment Toolkit Solution Accelerator
|
||||
' //
|
||||
' // File: ZTIAppXmlGen.wsf
|
||||
' //
|
||||
' // Version: 6.3.8456.1000
|
||||
' //
|
||||
' // Purpose: Generate an XML file for automatically capturing user data
|
||||
' // (documents) associated with installed applications.
|
||||
' //
|
||||
' // Usage: cscript.exe [//nologo] ZTIAppXmlGen.wsf [/debug:true]
|
||||
' //
|
||||
' // ***************************************************************************
|
||||
|
||||
Option Explicit
|
||||
RunNewInstance
|
||||
|
||||
|
||||
'//----------------------------------------------------------------------------
|
||||
'// Global Constants
|
||||
'//----------------------------------------------------------------------------
|
||||
|
||||
const HKEY_LOCAL_MACHINE = &H80000002
|
||||
|
||||
|
||||
'//----------------------------------------------------------------------------
|
||||
'// Main Class
|
||||
'//----------------------------------------------------------------------------
|
||||
|
||||
Class ZTIAppXmlGen
|
||||
|
||||
'//----------------------------------------------------------------------------
|
||||
'// Class instance variable declarations
|
||||
'//----------------------------------------------------------------------------
|
||||
|
||||
Public globalVariable
|
||||
Private privateVariable
|
||||
|
||||
|
||||
'//----------------------------------------------------------------------------
|
||||
'// Main routine
|
||||
'//----------------------------------------------------------------------------
|
||||
|
||||
Function Main
|
||||
|
||||
' Local Variables
|
||||
|
||||
Dim iRetVal
|
||||
Dim sFile
|
||||
Dim oFile
|
||||
Dim oReg
|
||||
Dim arrSubKeys
|
||||
Dim sSubkey
|
||||
Dim sAppKey
|
||||
Dim sCommand
|
||||
Dim oMigXml
|
||||
Dim sUSMTVersion
|
||||
Dim sScanStateFolder
|
||||
Dim sFoundScanstate
|
||||
Dim bFoundUSMT
|
||||
|
||||
iRetVal = SUCCESS
|
||||
|
||||
|
||||
'//----------------------------------------------------------------------------
|
||||
'// Determine the version of USMT to use
|
||||
'//----------------------------------------------------------------------------
|
||||
oUtility.GetMajorMinorVersion( oEnvironment.Item("OSCURRENTVERSION"))
|
||||
|
||||
If Ucase(oEnvironment.Item("USMT3")) = "YES" and oUtility.VersionMajor <= 6 and oUtility.VersionMinor < 1 then
|
||||
|
||||
oLogging.CreateEntry "Setting USMT version to USMT3", LogTypeInfo
|
||||
sUSMTVersion = "USMT3"
|
||||
|
||||
Elseif Ucase(oEnvironment.Item("USMT4")) = "YES" and oUtility.VersionMajor >= 6 and oUtility.VersionMinor >= 0 and oUtility.VersionMinor < 2 then
|
||||
|
||||
oLogging.CreateEntry "Setting USMT version to USMT4", LogTypeInfo
|
||||
sUSMTVersion = "USMT4"
|
||||
|
||||
Else
|
||||
oUtility.GetMajorMinorVersion( oEnvironment.Item("ImageBuild"))
|
||||
If oUtility.VersionMajor < 6 and oEnvironment.Item("DeploymentType") <> "REPLACE" and oEnvironment.Item("DeploymentMethod") <> "SCCM" Then
|
||||
oLogging.CreateEntry "Windows XP is being deployed, assuming USMT 3", LogTypeInfo
|
||||
sUSMTVersion = "USMT3"
|
||||
Else
|
||||
|
||||
sScanStateFolder = oEnvironment.Item("DeployRoot") & "\Tools\" & oEnvironment.item("Architecture")
|
||||
If oFSO.FileExists (sScanStateFolder & "\USMT5\scanstate.exe") then
|
||||
oUtility.GetMajorMinorVersion( oFSO.GetFileVersion(sScanStateFolder & "\USMT5\scanstate.exe"))
|
||||
If ((oUtility.VersionMajor = 6 and oUtility.VersionMinor >= 2) or oUtility.VersionMajor >= 10 ) then
|
||||
oLogging.CreateEntry "Found USMT 5 executables. Using USMT 5", LogTypeInfo
|
||||
sUSMTVersion = "USMT5"
|
||||
bFoundUSMT = True
|
||||
Else
|
||||
oLogging.CreateEntry "The USMT files in " & sScanStateFolder & "\USMT5 are the wrong version - " & oFSO.GetFileVersion(sScanStateFolder & "\USMT5\scanstate.exe"), LogTypeInfo
|
||||
End if
|
||||
End if
|
||||
|
||||
If oFSO.FileExists (sScanStateFolder & "\USMT4\scanstate.exe") and bFoundUSMT <> True then
|
||||
oUtility.GetMajorMinorVersion( oFSO.GetFileVersion(sScanStateFolder & "\USMT4\scanstate.exe"))
|
||||
If oUtility.VersionMajor = 6 and oUtility.VersionMinor = 1 then
|
||||
oLogging.CreateEntry "Found USMT 4 executables. Using USMT 4", LogTypeInfo
|
||||
sUSMTVersion = "USMT4"
|
||||
bFoundUSMT = True
|
||||
Else
|
||||
oLogging.CreateEntry "The USMT files in " & sScanStateFolder & "\USMT4 are the wrong version - " & oFSO.GetFileVersion(sScanStateFolder & "\USMT4\scanstate.exe"), LogTypeInfo
|
||||
End if
|
||||
End if
|
||||
|
||||
If bFoundUSMT <> True then
|
||||
oLogging.CreateEntry "USMT executables were not found, assuming USMT 3 installer", LogTypeInfo
|
||||
sUSMTVersion = "USMT3"
|
||||
End if
|
||||
|
||||
End if
|
||||
End if
|
||||
|
||||
If Right(sUSMTVersion,1) > "3" Then
|
||||
|
||||
oLogging.CreateEntry "Application XML is not needed for USMT " & Right(sUSMTVersion,1) , LogTypeInfo
|
||||
Main = iRetval
|
||||
Exit Function
|
||||
|
||||
End If
|
||||
|
||||
|
||||
' Main script processing
|
||||
|
||||
oLogging.CreateEntry "---------------- Initialization ----------------", LogTypeInfo
|
||||
|
||||
|
||||
' Create the file and write the standard header
|
||||
|
||||
sFile = oUtility.LogPath & "\ZTIAppXmlGen.xml"
|
||||
Set oFile = oFSO.CreateTextFile(sFile, True, False)
|
||||
|
||||
oFile.WriteLine "<?xml version=""1.0"" encoding=""UTF-8""?>"
|
||||
oFile.WriteLine "<migration urlid=""http://www.microsoft.com/migration/1.0/migxmlext/ZTIAppXmlGen"">"
|
||||
|
||||
oFile.WriteLine " <_locDefinition>"
|
||||
oFile.WriteLine " <_locDefault _loc=""locNone""/>"
|
||||
oFile.WriteLine " <_locTag _loc=""locData"">displayName</_locTag>"
|
||||
oFile.WriteLine " </_locDefinition>"
|
||||
|
||||
oFile.WriteLine " <component type=""Documents"" context=""System"">"
|
||||
oFile.WriteLine " <displayName _locID=""miguser.userdata"">ZTI AppXmlGen User Data</displayName>"
|
||||
oFile.WriteLine " <role role=""Data"">"
|
||||
oFile.WriteLine " <rules>"
|
||||
oFile.WriteLine " <include>"
|
||||
oFile.WriteLine " <objectSet>"
|
||||
|
||||
|
||||
' Get the list of all registry keys in HKCR
|
||||
|
||||
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
|
||||
|
||||
oReg.EnumKey HKEY_LOCAL_MACHINE, "Software\Classes", arrSubKeys
|
||||
|
||||
|
||||
' Look at all file extensions to see if they map to an application
|
||||
|
||||
For Each sSubkey In arrSubKeys
|
||||
|
||||
' Check exclusion list
|
||||
|
||||
If Instr(".MP3 .MOV .WMA .WMV .CHM .EVT .EVTX .EXE .COM .FON", UCase(sSubKey)) > 0 then
|
||||
|
||||
oLogging.CreateEntry "Skipping file type " & sSubkey, LogTypeInfo
|
||||
|
||||
ElseIf Left(sSubkey, 1) = "." then
|
||||
|
||||
' Read the default value to see what app is associated with this extension
|
||||
|
||||
On Error Resume Next
|
||||
sAppKey = oShell.RegRead("HKEY_CLASSES_ROOT\" & sSubkey & "\")
|
||||
If Err or sAppKey = "" then
|
||||
oLogging.CreateEntry "Unable to locate application associated with " & sSubkey & ", skipping", LogTypeInfo
|
||||
Else
|
||||
|
||||
' See if the file can be opened (has a shell\open\command handler)
|
||||
|
||||
sCommand = oShell.RegRead("HKEY_CLASSES_ROOT\" & sAppKey & "\shell\open\command\")
|
||||
If Err then
|
||||
oLogging.CreateEntry "Application " & sAppKey & " does not have an open handler, skipping", LogTypeInfo
|
||||
ElseIf Instr(UCase(sCommand), "\OFFICE") > 0 then
|
||||
oLogging.CreateEntry "Skipping Office application " & sAppKey & "", LogTypeInfo
|
||||
Else
|
||||
|
||||
' Add it to the XML file
|
||||
|
||||
oLogging.CreateEntry "Application " & sAppKey & " can be opened using " & sCommand & ", will add to XML file", LogTypeInfo
|
||||
oFile.WriteLine " <script>MigXmlHelper.GenerateDrivePatterns (""* [*" & sSubKey & "]"", ""Fixed"")</" & "script>"
|
||||
|
||||
End if
|
||||
|
||||
End if
|
||||
On Error Goto 0
|
||||
|
||||
End if
|
||||
|
||||
Next
|
||||
|
||||
|
||||
' Write the rest of the XML file
|
||||
|
||||
oFile.WriteLine " </objectSet>"
|
||||
oFile.WriteLine " </include>"
|
||||
oFile.WriteLine " <exclude>"
|
||||
oFile.WriteLine " <objectSet>"
|
||||
oFile.WriteLine " <pattern type=""File"">%PROFILESFOLDER%\* [*]</pattern>"
|
||||
oFile.WriteLine " <pattern type=""File"">%CSIDL_WINDOWS%\* [*]</pattern>"
|
||||
oFile.WriteLine " <pattern type=""File"">%CSIDL_PROGRAM_FILES%\* [*]</pattern>"
|
||||
oFile.WriteLine " </objectSet>"
|
||||
oFile.WriteLine " </exclude>"
|
||||
oFile.WriteLine " </rules>"
|
||||
oFile.WriteLine " </role>"
|
||||
oFile.WriteLine " </component>"
|
||||
|
||||
oFile.WriteLine "</migration>"
|
||||
|
||||
oFile.Close
|
||||
|
||||
|
||||
' Make sure the ZTIUserState.wsf script knows to use this script
|
||||
|
||||
oLogging.CreateEntry "Adding ZTIAppXmlGen.xml to the list of USMT migration files.", LogTypeInfo
|
||||
Set oMigXML = oEnvironment.ListItem("USMTMigFiles")
|
||||
If oMigXML.Count = 0 then
|
||||
oMigXML.Add "MigApp.xml", ""
|
||||
oUtility.GetMajorMinorVersion( oEnvironment.Item("ImageBuild"))
|
||||
If oUtility.VersionMajor < 6 or oEnvironment.Item("USMT3") = "YES" Then
|
||||
oMigXML.Add "MigSys.xml", ""
|
||||
End If
|
||||
oMigXML.Add "MigUser.xml", ""
|
||||
End if
|
||||
oMigXML.Add "ZTIAppXmlGen.xml", ""
|
||||
oEnvironment.ListItem("USMTMigFiles") = oMigXML
|
||||
|
||||
|
||||
'Cleanup and Exit
|
||||
|
||||
Main = iRetVal
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
End class
|
||||
|
||||
|
||||
</script>
|
||||
</job>
|
||||
|
||||
Reference in New Issue
Block a user