My MDT VBScript Template.

By | March 21, 2014
Share

The VBScript sample from Microsoft was a start, but here were the major limitations:

  1. Only meant to be used from within the “Scripts” folder, which is not useful when attempting to install applications.
  2. Does not include examples of actually using the ZTIUtility.vbs functions.

Template pulled from http://gallery.technet.microsoft.com/scriptcenter/84d18835-300a-42e3-b0e7-29cb7fc5aafc.
* Thanks Mr. Barnes!

GitHub Link: https://github.com/brianfgonzalez/Scripts/blob/master/Z-MyMDTTemplate.wsf

 

<job id="Z-Sample"> 
<script language="VBScript" src="..\..\Scripts\ZTIUtility.vbs"/> 
<script language="VBScript"> 

' //*************************************************************************** 
' // ***** Script Header ***** 
' // 
' // Solution: Solution Accelerator for Microsoft Deployment 
' // File: Z-MyMDTTemplate.wsf
' // 
' // Purpose: Template 
' // 
' // Usage: cscript Z-MyMDTTemplate.wsf [/debug:true] 
' // 
' // Customer Build Version: 1.0.0
' // Customer History: 
' // 
' // ***** End Header ***** 
' //*************************************************************************** 

'//---------------------------------------------------------------------------- 
'// 
'// Global constant and variable declarations 
'// 
'//---------------------------------------------------------------------------- 

Option Explicit 

Dim iRetVal 

'//---------------------------------------------------------------------------- 
'// End declarations 
'//---------------------------------------------------------------------------- 

'//---------------------------------------------------------------------------- 
'// Main routine 
'//---------------------------------------------------------------------------- 

On Error Resume Next 
iRetVal = ZTIProcess 
ProcessResults iRetVal 
On Error Goto 0 

'//--------------------------------------------------------------------------- 
'// 
'// Function: ZTIProcess() 
'// 
'// Input: None 
'// 
'// Return: Success - 0 
'// Failure - non-zero 
'// 
'// Purpose: Perform main ZTI processing 
'// 
'//--------------------------------------------------------------------------- 
Function ZTIProcess() 

     iRetVal = Success 

     ZTIProcess = iRetval 

     '!!!!!!!!!!!   INSERT YOUR CODE HERE   !!!!!!!!!!!!
     'Set a variable example
     'oEnvironment.Item("OSDComputerName") = "PC-01"

	'Read a variable example
	'If oEnvironment.Exists("_SMSTSORGNAME") then
	'       Wscript.Echo "The Property Value = " & oEnvironment.Item("_SMSTSORGNAME")
	'Else
	'       Wscript.Echo "The Property Value is not set!"
	'End if

	'Check if a variable is Null or Empty
	'If oEnvironment.isNullOrEmpty("_SMSTSORGNAME") then
	'       Wscript.Echo "The Property Value = " & oEnvironment.Item("_SMSTSORGNAME")
	'Else
	'       Wscript.Echo "The Property Value is not set!"
	'End if

	'Other oEnvironment methods
	'oEnvironment.Substitute(sVal)
	'Given a string, will expand any variables and/or functions within that string.
	'oEnvironment.ListItem(sName)
	'Read/Write a variable of type array to a persistent store.

	'Create a Log file with the name of the script file in the MININT\SMSOSD\OSDLOGS\ directory.
	'oLogging.CreateEntry "Logging: Beginning logging process", LogTypeInfo
	'wscript.echo "Hello world"
	'oLogging.CreateEntry "This is an Information Log Entry", LogTypeInfo
	'oLogging.CreateEntry "This is a Warning Log Entry", LogTypeWarning
	'oLogging.CreateEntry "This is an Error Log Entry", LogTypeError
	'oLogging.CreateEntry "Logging: End logging process", LogTypeInfo

	'oLogging.ReportFailure (sMessage,iError)
	'Used to perform a structured exit if an unrecoverable error is detected.

	'oLogging.CreateEvent(iEventID, iType, sMessage, arrParms)
	'Write a message to the log file, and post the event to a defined server.

	'Delete a file
	'Dim sTargetFile
	'sTargetFile = "C:\test.txt"
	'oFileHandling.DeleteFile sTargetFile

	'Move a file
	'Dim sFile, sDest
	'sFile = "C:\Folder1\test.txt"
	'sDest = "C:\Folder2\"
	'oFileHandling.MoveFile sFile, sDest

	'Copy a file
	'Dim sFile, sDest, bOverwrite
	'sFile = "C:\Folder1\test.txt"
	'sDest = "C:\Folder2\"
	'bOverwrite = True
	'oFileHandling.CopyFile sFile, sDest, bOverwrite

	'Copy a folder
	'Dim sSource, sDest, bOverwrite
	'sSource = "C:\Folder1"
	'sDest = "C:\Folder2"
	'bOverwrite = True
	'oFileHandling.CopyFolder sSource, sDest, bOverwrite

	'Move a folder
	'Dim sSource, sDest
	'sSource = "C:\Folder1"
	'sDest = "C:\Folder2\"
	'oFileHandling.MoveFolder sSource, sDest

	'Delete a folder incl. sub-folders
	'Dim sPath
	'sPath = "C:\Folder1"
	'oFileHandling.RemoveFolder sPath

	'Read a registry key
	'Dim sRegValue, sRegKey
	'sRegKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Version"
	'sRegValue=oUtility.regread(sregkey)
	'oLogging.CreateEntry "IE Version is " & sRegValue, LogTypeInfo

	'Write a registry key
	'Dim sRegValue, sRegKey, sNewRegValue
	'sRegKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\New Program"
	'sNewRegValue = "C:\Windows\Notepad.exe"
	'sRegValue=oUtility.regWrite(sregkey, sNewRegValue)

	'Pre-defined objects
    'oFSO – File System Object
    'oShell – Wscript Shell object
    'oEnv - Process Environment object
    'oNetwork - WScript Network object

	'Returns the full path of the script into the sScript variable
	'Dim sScriptName, sScript
	'sScriptName = "Set-Supervisor.wsf"
	'iRetVal = oUtility.FindFile(sScriptName, sScript)
	'If iRetVal <> Success then
	'	oLogging.CreateEntry "Unable to locate script " & sScriptName, LogTypeError
	'	Exit Function
	'End if

	'Script Directory and Name variables
	'oUtility.ScriptName
	'oUtility.ScriptDir
	'oUtility.LogPath

	'Sleep (Timeout) the script "safely"
	'oUtility.SafeSleep(miliSeconds)

	'sFile = oUtility.ScriptDir & "\WMI Provider GUI InstallShield Package 1.00L18.exe"
	'If not oFSO.FileExists(sFile) then
	'	oLogging.CreateEntry "Install Panasonic BIOS Provider: " & sFile & " was not found, unable to install.", LogTypeError
	'	ZTIProcess = Failure
	'	Exit Function
	'End if

	'sCmd = sFile & " -s -f1""" & _
	'	oUtility.ScriptDir & "\noui.iss"" -f2""" & _
	'	oUtility.LogPath & "\PanasonicBIOSProvider.log"""
	'oLogging.CreateEntry "Running: " & sCmd, LogTypeInfo
	'iRetVal = oUtility.RunWithHeartbeat(sCmd)

	'If (iRetVal = 0) or (iRetVal = 3010) then
	'	ZTIProcess = Success 
	'Else 
	'	ZTIProcess = Failure
	'End If
	'oLogging.CreateEntry "Install Panasonic BIOS Provider: Return code from command = " & iRetVal, LogTypeInfo
	'oLogging.CreateEntry "Install Panasonic BIOS Provider: Finished installation", LogTypeInfo

	'Pull OS Version from Win32_OperatingSystem WMI
	'Set oOperatingSystems = objWMI.ExecQuery ("Select * from Win32_OperatingSystem")
	'For Each oTmp in oOperatingSystems
	'	sOSCurrentVersion = oTmp.Version
	'Next

	'Run console command and hide window
	'RunWithConsoleLoggingAndHidden(sCmd)

	'Trim all white space from variable
	'oEnvironment.Item("_SMSTSORGNAME") = oUtility.TrimAllWS(oEnvironment.Item("_SMSTSORGNAME"))

	'Get random number/guid
	'oUtility.GenerateRandomGUID

	'Other File/Folder methods
	'oFileHandling.NormalizePath
	'oFileHandling.GetTempFolder
	'oFileHandling.GetTempFile
	'oFileHandling.GetTempFileEx("FileExtension")
	'oFileHandling.GetWindowsFolder

	'Check if the file is newer than a specified version
	'Dim sFileName, iMinVersion
	'sFileName = oUtility.ScriptDir & "\MyInstall.msi"
	'iMinVersion = 1.3
	'If oUtility.CheckFileVersion(sFileName, iMinVersion) Then
	'	Wscript.echo "File is new enough.."
	'End If

	'Regular Expression match
	'For Each Match in oRegEx.GetRegExMatchesFromFile( "\[([^\]]*)\]","c:\boot.ini" ) 
	'	Wscript.echo "Match: " & Match
	'Next

End Function 

</script> 
</job> 
	</script>
</job>

 

 

/BG

Leave a Reply

Your email address will not be published.

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.