Passing sensitive inforamtion to a task sequence
Hi,
I need to run an executable on my clients so I created a command line task sequence for that. In the command line I have to pass sensitive data (passwords for example), but the command line is logged to the smsts.log so the passwords are stored as plain
text on all of the clients.
Is there anyway to prevent the logging of the command line argument?
Can you suggest any other way to achieve my goal?
Thanks a lot
Hi,
Have you considered using a package/program instead of a task sequence to do this? That would get you around smsts.log entirely.
If you must use a task sequence and you're okay with the rather large risk of leaving passwords (albeit encoded) in log files, you could use PowerShell's -EncodedCommand parameter to pass everything in:
https://dmitrysotnikov.wordpress.com/2011/07/06/passing-parameters-to-encodedcommand/
Don't retire TechNet! -
(Don't give up yet - 12,950+ strong and growing)
Similar Messages
-
How can I stop a task sequence if a custom HTA preflight check fails?
In our currently deployment method, we launch an HTA program before initiating the OSD process. This is only when run from the RAP menu, not via PXE. When a user initiates OSD through that menu, they get a message prompting them to close Outlook, and
a countdown of 5 mins, then OSD starts. They also have the ability to click on an 'OK' button to proceed on their own.
I've created a new script which checks WMI if Outlook and/or OCS are open, and if the machine is running on battery, spit out a "Failed" response and stop the HTA. I've also added a "recheck" button to re-do the check, and an 'OK
button if people jsut want to continue.
I'm curious if there is a way to prevent the task sequence from continuing if any of those conditions arent met. Currently it just pops up and says "Failed, Cannot conitue", but if they close the window, the task sequence thinks the program
has run, and the OSD migration starts. I'd like to be able and get the script to cancel the OSD process if a check fails.
Has anyone had success with this, using WINXP? I'd use the MS pre-flight check but it's only for WIN7.Interesting. Thanks for the response. Is there anybody out there that can assist with VBS part of the solution?
Here's the code I'm working with. Currently the battery piece isnt working as it should but I can figure that our, eventually. I'd like to get Jason's proposed solution in the code. If this isn't the right place, I'll take this somewhere
else.
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>OSD Preflight checks</title>
<HTA:APPLICATION
APPLICATIONNAME="OSD Preflight checks"
ID="objOSDPreReqChecks"
SCROLL="no"
CONTEXTMENU="no"
SINGLEINSTANCE="no"
MAXIMIZEBUTTON="no"
MINIMIZEBUTTON="no"
WINDOWSTATE="normal"/>
<!-- #region STYLEs-->
<style type="text/css">
H1{color:Black;text-align:center;font-family: Arial, Helvetica, sans-serif;font-size: 26px;}
p{font-family:"Arial";font-size:10px;}
fail{color:Red;text-align:center;}
.Version {float:left; font-size:1.0em;font-style:italic;color:#888888;font-weight:bold;}
.Header1 {width: 180px; text-align: right;font-weight:bold;}<!-- '1st column heading -->
H2 {font-family: Arial, Helvetica, sans-serif; text-align: center;}
H3 {font-style: italic;}
.style2 {width: 180px; text-align: left;}
.Header2 {width: 150px; text-align: right;font-weight:bold;}<!-- '2nd column heading -->
.style4 {width: 410px; text-align: left;}
.StatusBar
font-family: Arial, Helvetica, sans-serif;
text-align: center;
.hidden {display: none; visibility: hidden;}
</style><!-- #endregion -->
</head>
<script language="VBScript" type="text/vbscript">
'======================================================================================
' Script
' Version
' Purpose To check a machine is suitable for taking an OS deployment
'======================================================================================
'Features
' Modular design
' Verbose "Debug Mode"
' In-built data validation
' Custom error handling
' Custom error codes - 90x0
' Generic WMI handler
'BUGfix: Change CLng to CDbl to avoid overflow (in GetRAM)
'fixed - moved head section to top to become head > script > body
'fixed - fCheckModel display with leading ,
'fixed - fgetmodels dictionary list
Option Explicit
' #region GLOBAL DECLARATIONS: Persistent fold region
'======================================================================================
'GLOBAL Vars
'Things to just display (in GUI)
Dim strRAM
Dim strCPUInfo
Dim strCPUName
Dim strCPUDesc
Dim iCPUCount
Dim iCPUCoreCount
Dim iRAM
Dim strBIOSver, strBIOSDate, strBIOSInfo
'Time related
Dim TimerInterval 'timer to refresh HTA at start
Dim iTimer 'abort timer
Const iAbortTimeout=300000 'delay before window closes (in milliseconds)
Dim pbTimerID
Dim pbHTML
Dim pbWaitTime
Dim pbHeight
Dim pbWidth
Dim pbBorder
Dim pbUnloadedColor
Dim pbLoadedColor
Dim pbStartTime
'Dictionary
Dim objModelsDict,colKeys,strKey 'models
Dim objApprovedMakesDict
'Misc GLOBAL vars
Dim blnDebug 'set TRUE to trigger debug mode
Dim bAbortBuild 'Boolean flag to abort or not abort
Dim strTemp 'throwaway/scratch
Dim strNamespace 'wmi default namespace for ANY machine
Dim strComputer 'wmi reference to current machine, just .
Dim strService 'WMI service
Dim strQuery 'custom WQL
Dim ErrMsg 'custom error messages
Dim iErrMode 'State machine for error mode
Dim lFlags 'WMI flag
Dim strDisks
'Pre-requisites - things that will cause build to abort if values do not meet spec
Dim strHTAVendor 'Make of hardware
Dim strHTAVendorState
Dim strHTAModel 'Model of hardware
Dim strHTAModelState 'Model state
Dim strHTARAM 'RAM
Dim strHTARAMState 'RAM state
Dim strHTACPUSpeed 'Processor speed
Dim strHTACPUCores 'Number of cores
Dim strHTACPUFullInfo 'CPU + cores
Dim strHTAHDD 'Disk info
Dim strHTAHDDState 'Disk state
Dim strHTACheckRAW 'NTFS check
Dim strHTAArchitecture 'Processor support
Dim strHTAProduct 'Product ID
Dim strHTAOutlook 'Outlook running
Dim strHTAOutlookState 'Outlook state
Dim strHTABattery 'Battery check
Dim strHTABatteryState 'Battery state
'for WQL filters
Dim strWQLPCInfo 'Pre-req - (1) for various inc. domain role (servers)
Dim strWQLRAM 'Pre-req - (2) RAM
Dim strWQLCPU 'Pre-req - CPU speed string (not int)
Dim strWQLBootOrder 'Pre-req - Boot order string
Dim strWQLSATAMode 'Pre-req - HDD mode
Dim strWQLGenericBIOS
Dim strWQLCPUCount 'Pre-req - how many CPUs
Dim strWQLCPUInfo
Dim strWQLFSType 'Pre-req - Check HDD not RAW (i.e. is NTFS)
Dim strWQLDisks 'Disks
Dim strWQLChassis 'Machine type
Dim strWQLID 'Unique code from OEM
Dim strWQLProc 'is Outlook running = False
Dim strWQLBattery 'is on Battery = False
'State
Const cProblem = " Problem!"
Const cRunAgain =" RunCheck: Run System Check Again"
Const cSuccess = " Success!"
Const cPassed=" Pass"
Const cFail=" Fail"
'Pre-requisite to check: SET VALUES HERE vvvvvvvvvvvvvvvv
Const cApprovedOEM="Hewlett-Packard"
Const LegacyOEM1="Dell Inc."
Const LegacyOEM2="IBM"
Const cMinimumMemoryMB = 1000 'RAM in MB
'Const cMinimumMemoryMB = 1000000 'force fail test data RAM in MB
Const cMinFS="NTFS"
' Const cMinFS="HPFS" 'force fail test data
Const iMinCores=1
'Const iMinCores=10099 'force fail cores test data
Const iMinCPUSpeed=2 '20 'in GHz
'Const iMinCPUSpeed=90000 'in GHz
Const iMinCPUArch=32
'Const iMinCPUArch=64
' #endregion
' To hide anything use ID.className = "hidden", to show set to "", e.g. NotFoundArea.className = "hidden"
Sub Window_Onload
Err.Clear
VersionSpan.InnerText = objOSDPreReqChecks.Version 'Get version
self.focus
self.moveTo 100,100 'Move window top left
StatusBar.InnerText="Validating machine..."
document.body.style.cursor = "wait" 'hourglass cursor
'Call PreflightChecks 'use for testing as a VBS only, otherwise HTA timer will call below
TimerInterval = window.setInterval("PreflightChecks",10)
End Sub
Function PreflightChecks
' #region HEADER NOTES: Persistent fold region
'Version history
'ver 5 OCTOBER 2011 - added error handler
'ver 3rd Nov - removed HPonly queries
'// Solution: Custom Script for use with MDT - Adapted from hardwareinfo.vbs Mikael Nystrom – http://deploymentbunny.com
'Typical BIOS content
'Processor Speed = 2133/1066 MHz
'Boot Order = Network Controller,ATAPI CD-ROM Drive,USB device,Hard Drive,Diskette Drive,PnP Device #2,PnP Device #3,PnP Device #4,PnP Device #5,PnP Device #6,PnP Device #7,PnPe #8,PnP Device #9,PnP Device #10,PnP Device #11
'SATA (disk) mode: *IDE,--,RAID,-- or IDE,*AHCI,RAID
'On Error Resume Next
' #endregion
' #region CONSTANTS: Persistent fold region
'======================================================================================
'Fields available in HP BIOS
Const sAsset = "Notebook Asset Tag"
Const sOwner = "Notebook Ownership Tag"
Const sMan = "Manufacturer"
Const sNoteModel = "Notebook Model"
Const sCPU = "Processor Type"
Const sCPUSpeed = "Processor Speed"
Const sRAM = "Memory Size"
Const sModel = "Product Name"
Const sBIOSName ="System BIOS"
Const sBIOSVer = "BIOS Version"
Const sBIOSDate = "BIOS Date"
'Other BIOS stuff you could use too
'Const sOwnerTag = "Enter Ownership Tag"
'Const sBIOS = "PCID"
'Const sBIOS = "Define Custom URL"
'Const sBIOS = "Set Alarm Time"
'Const sBIOS = "PCID Version"
Const TextMode="1" 'text case sensitive for dict obj
'WMI core constants
Const wbemFlagReturnImmediately = 16 'wmi - Causes the call to return immediately.
Const wbemFlagForwardOnly = 32 'wmi - Causes a forward-only enumerator to be returned.
'Forward-only enumerators are generally much faster and
'use less memory than conventional enumerators, but don't allow calls to SWbemObject.Clone_
'Advisory config values - as in "you want to the change these"
Dim strHTABootOrder
Dim strHTASATAMode
'Dim strHTACPU
' #endregion
'======================================================================================
' #region WQL: Persistent fold region
lFlags = wbemFlagReturnImmediately + wbemFlagForwardOnly
'Queries of things to check (HP)
strWQLBootOrder = "select Name, value from HP_BIOSSetting where Name='Boot order'"
strWQLSATAMode = "select Name, value from HP_BIOSSetting where (Name='SATA emulation' or name='SATA device mode')"
strWQLDisks ="SELECT * FROM Win32_DiskDrive where mediatype like 'Fixed%hard disk%'" 'win32_disk only avail after W7
strWQLFSType ="SELECT * from Win32_LogicalDisk where DriveType='3'" 'only bother with HDDs
'Generic WMI query strings
strWQLGenericBIOS="SELECT Manufacturer,SMBIOSBIOSVersion,ReleaseDate FROM Win32_BIOS WHERE PrimaryBIOS = True"
strWQLCPUCount= "SELECT NumberOfProcessors,NumberOfLogicalProcessors from Win32_ComputerSystem"
strWQLCPUInfo="SELECT Name,DataWidth,description,MaxClockSpeed,NumberofCores,NumberOfLogicalProcessors from Win32_Processor"
strWQLPCInfo="SELECT Domain,DomainRole,SystemType,Manufacturer,Model,TotalPhysicalMemory FROM Win32_ComputerSystem"
' strWQLPCInfo="SELECT Domain,DomainRole,SystemType,Manufacturer FROM Win32_ComputerSystem"
strWQLChassis="SELECT ChassisTypes from Win32_SystemEnclosure"
strWQLID="SELECT IdentifyingNumber,UUID from Win32_ComputerSystemProduct"
strWQLRAM="SELECT * FROM Win32_PhysicalMemory"
strWQLProc="SELECT * FROM Win32_Process"
strWQLBattery="SELECT * FROM BatteryStatus Where Voltage > 0"
' #endregion
' #region MAIN algorithm
'=====================================================================================================
' MAIN
'Algorithm
'1) Check make (vendor)
'2) Check model (in list)
'3) Check RAM >x
'4) Check HDD TYPE (HDD is not RAW)
'5) Check CPU architecture
'6) Check outlook
'7) Check battery
'=====================================================================================================
'Initialise
window.clearInterval(TimerInterval) 'Reset timer to 0
' blnDebug=True
blnDebug=False
bAbortBuild=False 'default to DON'T abort
' bAbortBuild=True
'Build list of approved vendors
Set objApprovedMakesDict = CreateObject("Scripting.Dictionary")
objApprovedMakesDict.comparemode=VBTextCompare
objApprovedMakesDict.add cApprovedOEM,"OK"
objApprovedMakesDict.add LegacyOEM1,"OK"
objApprovedMakesDict.add LegacyOEM2,"OK"
objApprovedMakesDict.add "Lenovo","Testdata"
If blnDebug Then Stop
'1) all machines check make
strHTAVendor=fCheckVendor(strWQLGenericBIOS) 'check vendor in BIOS - if vendor not approved ABORT without proceeding
If bAbortBuild=True Then
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "FATAL ERROR - goodbye cruel world"
iTimer = window.setTimeout("Abort", iAbortTimeout, "VBScript")
Else
StatusBar.InnerText="Vendor: " & strHTAVendor & vbTab & " " & strHTAVendorState
'2) Discover current Model
strHTAModel=fGetModelName(strWQLPCInfo) 'get model name from WMI
strHTAModel=fUniversalCheckData(strHTAModel,"'Discover Model - fGetModelName'") 'validate
Call fGetModels 'get list of all valid models (from text file)
strHTAModel=fCheckModel(strHTAModel)
'2a) Model number (optional)
strHTAProduct=fGetComputerSystemProdIDNumber(strWQLID) 'manufacturer's product ID
strHTAProduct=fUniversalCheckData(strHTAProduct,"'Discover ID - fGetComputerSystemProdIDNumber'")
' StatusBar.InnerText=StatusBar.InnerText & VbCrLf & vbTab & "Product Code: " & vbTab & strHTAProduct
'3) Check installed Memory
strHTARAM=fGetRAM(strWQLRAM) 'find RAM size
strHTARAM=fUniversalCheckData(strHTARAM,"'Detect RAM - fCheckRAM'")
strHTARAM=fCheckRAM(strHTARAM) 'check RAM meets req
If strHTARAMState=cFail Then Exit Function
'4) Disk format IS NTFS
strDisks=fGetDrives(strWQLFSType) 'Get formatting info for all drives
strHTACheckRAW=fUniversalCheckData(strDisks,"'Detect filesystem - fCheckNTFS'") 'Validate data
strHTACheckRAW=fCheckNTFS(strDisks) 'Check FS format is acceptable (not RAW)
If strHTACheckRAW=cFail Then Exit Function
'Generic CPU calls
strHTACPUFullInfo="CPUs:" & fGetCPUInfo(strWQLCPUInfo) & " with CPU cores:" & iCPUCoreCount
strBIOSInfo="BIOS version: " & strBIOSver & ", dated " & strBIOSDate
'5a) CPU Speed check (info from http://www.robvanderwoude.com/wmiexamples.php)
strCPUInfo=WMI(strWQLCPUInfo,strNamespace) 'Get CPU details
strTemp=split(strCPUInfo,"@"): strHTACPUSpeed=strTemp(1)
strHTACPUSpeed=fUniversalCheckData(strHTACPUSpeed,"'Check processor - fCheckCPUSpeed'") 'Validate data
strHTACPUSpeed=fCheckCPUSpeed(strHTACPUSpeed) 'Check CPU clock speed
'5b) cores check
strHTACPUCores=fUniversalCheckData(iCPUCoreCount,"Check core count - fCheckCores") 'Validate data
iCPUCoreCount=fCheckCores(iCPUCoreCount) 'pass or fail?
'5c) CPU address width
strHTAArchitecture=fUniversalCheckData(strHTAArchitecture,"Check core count - fCheckCores") 'Validate data
strHTAArchitecture=fCheckCPUArch(strHTAArchitecture)
'6) Check outlook
strHTAOutlook=fCheckProcess(strWQLProc)
'7) Check Battery
strHTABattery=fCheckBattery(strWQLBattery)
'end checkss
document.body.style.cursor = "default"
'Display hardware values in GUI (in table)
Vendor.innerhtml = strHTAVendor 'Use str...var..STATE if you want Pass/fail text instead
Model.innerhtml = strHTAModel
Product.innerhtml = strHTAProduct
RAM.innerhtml = strHTARAM
CPUspeed.innerhtml = strHTACPUSpeed
CPUInfo.innerhtml = strHTACPUFullInfo
HDDFS.innerhtml = strHTACheckRAW
CapableArchitecture.innerhtml=strHTAArchitecture
BIOSversion.innerhtml = strBIOSver
BIOSDate.innerhtml = strBIOSDate' CPUName.innerhtml = strCPUDesc 'GetCPUName
End If
'======================================================================================
' #endregion
End Function
'generic WMI queries, by field and namespace
Function WMI(strQuery,strNameSpace)
'Aim: generic WMI calls
'return value of BIOS
On Error Resume Next
Dim colItems,objItem
Dim objWMI
Const strService = "winmgmts:{impersonationlevel=impersonate}//" 'binding to WMI
Const strComputer = "." 'this machine
Set objWMI = GetObject(strService & strComputer & strNamespace) 'GLOBAL wmi
Set colItems = objWMI.ExecQuery(strQuery,,lFlags)
For Each objItem In colItems
If Err Then
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "WMI query: " & strQuery & " in " & strNamespace & objItem.Name
Call ErrHandler("WMI error " & strQuery,1)
Else
WMI=objItem.Name 'Return value
End If
Next
End Function
Function fGetModelName(strWQLPCInfo)
'Aim: Get model name from BIOS - WMI field sometimes varies if laptop, so try two
'Return STRING: Model string from BIOS or "UNKNOWN" if null
On Error Resume Next
Dim colPCInfo,objPCItem
Dim strModel
Set colPCInfo = GetObject("winmgmts:").ExecQuery(strWQLPCInfo,"WQL",lFlags)
If Err Then
Call ErrHandler("fGetModelName: Error querying WMI " & strWQLPCInfo,2)
Else
For Each objPCItem In colPCInfo
If Not IsNull(objPCItem.Model) Then
strModel=objPCItem.Model
' iRAM=objPCItem.TotalPhysicalMemory
Else
If (strHTAVendor=cApprovedOEM And IsLaptop = True) Then ' resort to HP specific query for older laptops
'Notebook
strModel=QueryHPBIOS(sNoteModel)
if strModel="" then strModel=QueryHPBIOS(sModel) 'try alt value
Else
strModel=QueryHPBIOS(sModel)
End If
End If
Next
End If
If strModel = "" Then
fGetModelName = "UNKNOWN"
Model.style.visibility="hidden"
Else
fGetModelName=strModel
End If
End Function
'====================================================
'====================================================
Function fGetRAM(strQuery)
'Aim: get RAM installed. NB Win32_ComputerSystem::TotalPhysicalMemory may not be accurate
'Return integer
On Error Resume Next 'equiv to Err.Clear
Dim colItems, item
Dim iTotalMemory
Set colItems = GetObject("winmgmts:").ExecQuery(strQuery,"WQL",lFlags)
If Err Then
Call ErrHandler("fGetRAM: Error querying " & strQuery,2)
Else
iTotalMemory = 0
For Each item In colItems
iTotalMemory = iTotalMemory + CDBL(item.Capacity)/(1024^2)
Next
End If
If iTotalMemory = "" Then
fGetRAM = "RAM UNKNOWN"
RAM.style.visibility="hidden"
Else
fGetRAM=iTotalMemory
End If
End Function
'====================================================
'====================================================
Function fGetCPUInfo(strQuery)
'Aim: query WMI for CPU info - number and number of cores
'Return: function=CPU count, var for the cores: iCPUCoreCount, strHTAArchitecture, strCPUDesc
On Error Resume Next
Dim colItems, objItem
Dim NumberOfProcessors
Set colItems = GetObject("winmgmts:").ExecQuery(strQuery,"WQL",lFlags)
If Err Then
Call ErrHandler("GetCPUInfo: Error querying " & strQuery,2)
Else
For Each objItem In colItems
If Err Then
Else
If Not IsNull(objItem.NumberOfCores) Then
NumberOfProcessors = Trim(objItem.NumberOfCores) 'NumberOfProcessors
End If
If Not IsNull(objItem.NumberOfLogicalProcessors) Then
iCPUCoreCount = Int(Trim(objItem.NumberOfLogicalProcessors))
End If
If Not IsNull(objItem.DataWidth) Then
strHTAArchitecture=Trim(objItem.DataWidth) & "-bit"
End If
If Not IsNull(objItem.description) Then
strCPUDesc = Trim(objItem.description) 'cpu name
End If
End If
Next
If NumberOfProcessors = "" Then
NumberOfProcessors = "UNKNOWN"
End If
fGetCPUInfo = Int(NumberOfProcessors)
' iCPUCoreCount = Int(NumberOfLogicalProcessors)
End If
End Function
'====================================================
'====================================================
Function fGetComputerSystemProdIDNumber(strWQLID)
'Aim: Get UUID from Win32_ComputerSystemProduct
'Return: great big integer
Dim colSys,objSys
Dim strUUID
On Error resume next
Set colSys = GetObject("winmgmts:").ExecQuery(strWQLID,"WQL",lFlags)
If Err then
Call ErrHandler("fGetComputerSystemProdIDNumber: Error querying " & strWQLID,2)
Else
For Each objSys In colSys
If Not IsNull(objSys.IdentifyingNumber) Then
strUUID = Trim(objSys.IdentifyingNumber)
End If
Next
If strUUID = "" Then
fGetComputerSystemProdIDNumber = "UNKNOWN"
Else
fGetComputerSystemProdIDNumber = strUUID
End If
End If
End Function
'=================================================================================
'=================================================================================
Function fGetDrives(strQuery)
Dim colDisks,objHDD
Dim strDriveType, strDiskSize, strDisk
Dim strDiskFSType
Dim iGBUnits
On Error Resume Next
iGBUnits=1073741824
Dim iRAW
iRAW=0
Set colDisks = GetObject("winmgmts:").ExecQuery(strQuery)
For Each objHDD In colDisks
Select Case objHDD.DriveType
Case 1 strDriveType = "Drive could not be determined."
Case 2 strDriveType = "Removable Drive"
Case 3 strDriveType = "Local hard disk."
Case 4 strDriveType = "Network disk."
Case 5 strDriveType = "Compact disk (CD)"
Case 6 strDriveType = "RAM disk."
Case Else strDriveType = "Drive type Problem."
End Select
strDiskFSType = objHDD.FileSystem
'Find C
If objHDD.Name="C:" Then
If isNull(objHDD.FreeSpace) Then
If blnDebug=True then Call ErrHandler("ALERT!! Volume " & objHDD.Name & "is RAW",1) 'Abort/clean
fCheckDrives="ALERT!! Volume " & objHDD.Name & "is RAW"
End If
End If
strDiskSize = Int(objHDD.Size /iGBUnits) & "GB" 'calc size of disk
strDisk = strDisk & VbCrLf & "Vol " & objHDD.Name & " (" & strDriveType & ") size: " & strDiskSize & " (free: " & Int(objHDD.FreeSpace /iGBUnits) & "GB), " & strDiskFSType
fGetDrives=strDisk
Next
If (Err.Number <>0) Then
Call ErrHandler("WMI Property Query Error: [" & Err.Number & "]",2)
fGetDrives = -1
Exit Function
End If
End Function
'=================================================================================
'=================================================================================
Function fUniversalCheckData(varData,strStage) 'template
'Aim: Check value passed...
'is not blank
'is in range x..y
'spelt OK
'is in a list
'format is text, numeric
'return: string: the original value
On Error Resume Next
Dim Err
if blnDebug Then StatusBar.InnerText = StatusBar.InnerText & VbCrLf & "Validating " & strStage & " data..."
If Err Then
Call ErrHandler("WARNING: Error discovering value in " & strStage,2) '1=Quit,2=Warn
strHTAModel="Unknown"
Else
Select Case varData
Case IsEmpty(varData) Or IsNull(varData)
Call ErrHandler("WARNING: Error in "& strStage,2) '1=Quit,2=Warn
fUniversalCheckData="Unknown"
Case IsNumeric(varData)
If varData<0 Then
Call ErrHandler("WARNING: Value negative"& strStage,2) '1=Quit,2=Warn
fUniversalCheckData="Unknown"
End if
' & varData &
Case IsDate(varData)
Case Else
fUniversalCheckData=varData 'Data OK - return value unchanged
End Select
End If
End Function
'=================================================================================
'Checks - follow if true DO, if false warn/abort
'=================================================================================
Function fCheckBattery(strQuery)
'Aim: Find if battery is running
'Return pass/fail
On Error Resume Next 'equiv to Err.Clear
Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
Dim colItems, item
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\WMI")
Set colItems = objWMIService.ExecQuery("SELECT * FROM BatteryStatus Where Voltage > 0", "WQL", _
wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each item In colItems
if objItem.PowerOnline = True Then
strHTABattery=objItem.PowerOnline
strHTABatteryState = cFail
Err.Raise 9010,"fCheckBattery",strHTABattery & " Laptop running on battery. OSD Cannot continue."
Call ErrHandler(ucase(strHTABatteryState) & ": " & Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1)
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "FATAL ERROR - Laptop on Battery. Please plug into an outlet before proceeding."
iTimer = window.setTimeout("Abort", iAbortTimeout, "VBScript")
Else
strHTABatteryState = cPassed
End if
Next
fCheckBattery=strHTABattery
End Function
'====================================================
Function fCheckProcess(strQuery)
'Aim: Find if outlook is running
'Return pass/fail
On Error Resume Next 'equiv to Err.Clear
Dim colItems, item
Set colItems = GetObject("winmgmts:").ExecQuery(strQuery,"WQL",lFlags)
For Each item In colItems
if item.Name = "OUTLOOK.EXE" Then
strHTAOutlook=item.Name
strHTAOutlookState = cFail
Err.Raise 9010,"fCheckOutlook",strHTAOutlook & " running. OSD Cannot continue."
Call ErrHandler(ucase(strHTAOutlookState) & ": " & Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1)
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "FATAL ERROR - Outlook Running, please close outlook before proceeding."
iTimer = window.setTimeout("Abort", iAbortTimeout, "VBScript")
Elseif item.Name = "communicator.exe" Then
strHTAOutlook=item.Name
strHTAOutlookState = cFail
Err.Raise 9010,"fCheckOutlook",strHTAOutlook & " running. OSD Cannot continue."
Call ErrHandler(ucase(strHTAOutlookState) & ": " & Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1)
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "FATAL ERROR - Communicator Running, please close OCS before proceeding."
iTimer = window.setTimeout("Abort", iAbortTimeout, "VBScript")
Else
strHTAOutlookState = cPassed
End if
Next
fCheckProcess=strHTAOutlook
End Function
'====================================================
'1 - Make
Function fCheckVendor(strVendor)
'Aim: Check make is one the OS/build is designed For
'Return: STRINGS for "Make", BIOS version and BIOS date (generic): strHTAVendorState pass or fail
On Error Resume Next
Dim colItems,objItem
Set colItems = GetObject("winmgmts:").ExecQuery(strVendor, "WQL", lFlags)
For Each objItem In colItems
strHTAVendor=objItem.Manufacturer
if objApprovedMakesDict.exists(strHTAVendor) then
strBIOSver=objItem.SMBIOSBIOSVersion
strBIOSDate=Mid( objItem.ReleaseDate, 5, 2 ) & "/" & Mid( objItem.ReleaseDate, 7, 2 ) & "/" & Left( objItem.ReleaseDate, 4 )
strHTAVendorState=cPassed
Else
strHTAVendorState=cFail
Err.Raise 9010,"fCheckVendor",strHTAVendor & " found. The build will not work on this make of hardware"
Call ErrHandler(ucase(strHTAVendorState) & ": " & Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1)
bAbortBuild=True
end if
Next
fCheckVendor=strHTAVendor
End Function
'=================================================================================
'=================================================================================
'2 - Models check
Function fCheckModel(strThisModel)
'Aim Check target machine is in list of models
'Return string
On Error Resume Next
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "Checking model..." & VbCrLf
If objModelsDict.exists(trim(strThisModel)) then ' if current model in objDict then huzzah
strHTAModelState=cPassed
StatusBar.InnerText=StatusBar.InnerText & vbTab & "Model detected: " & vbTab & strHTAModelState
Else
strHTAModelState=cFail
Err.Raise 9010,"fCheckModel",strThisModel & " found. The build will not work on this model of hardware"
Call ErrHandler(ucase(strHTAModelState) & ": " & Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1)
end if
fCheckModel=strHTAModel
End Function
'=================================================================================
'=================================================================================
'3 - RAM
Function fCheckRAM(strRAM)
'Aim: Check installed RAM > x
'Return string digits with units, e.g. 4GB
'use strHTARAM for value
'==================================================================
' Memory Preflight Check (from MDT2012)
'==================================================================
On Error Resume Next
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "Checking RAM..."
If Err.Number <> 0 Then
Call ErrHandler("Error occurred while calculating computer's memory.",2)
End If
fCheckRAM = Int(strRAM/1024) & "GB" 'format in GB
If Int(strRAM) > cMinimumMemoryMB Then
strHTARAMState=cPassed 'Sufficient memory - show whole number in GB"
StatusBar.InnerText=StatusBar.InnerText & vbTab & "RAM installed: " & vbTab & strHTARAMState
Else
strHTARAMState=cFail
Err.Raise 9030 ,"fCheckRAM","Not enough memory in this machine!" & " Required physical memory is: " & cMinimumMemoryMB & " MB."
Call ErrHandler(ucase(strHTARAMState) & ": " & Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1) 'abort build
End If
End Function
'=================================================================================
'=================================================================================
'4 - NTFS disk
Function fCheckNTFS(strDiskFS)
'Aim: Check HDD is NTFS
'Return string
On Error Resume Next
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "Checking file system is not RAW..."
If Instr(1,strDiskFS,cMinFS,VBTextCompare)<>0 Then
fCheckNTFS=cMinFS 'disk format is OK (NTFS)
StatusBar.InnerText=StatusBar.InnerText & vbTab & " File system: " & cPassed
Else
fCheckNTFS=cFail
Err.Raise 9040 ,"fCheckNTFS","WARNING: Disk not correct file-system. Type required is: " & cMinFS & "." & VbCrLf & _
"The deployment will fail unless you reformat the target disk immediately."
Call ErrHandler(Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",2) 'halt build
End If
End Function
'====================================================
'=================================================================================
'5 - CPU checks
'=================================================================================
Function fCheckCPUSpeed(strCPU) 'any HW
'Aim: Check CPU speed
'Return string = number + appropriate units, e.g. 5HGz (strCPU)
On Error Resume Next
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "Checking CPU spec..."
Select Case Right(strCPU,3) 'check units
Case "MHz"
strCPU=Left(strCPU,4)/1000 'reformat to GHz
Case "GHz"
strCPU=strCPU 'unit already OK
Case Else
Call ErrHandler("CPU units are unknown",2)
End Select
'Check clock speed
If Int(Left(trim(strCPU),1))>=iMinCPUSpeed Then
fCheckCPUSpeed=strHTACPUSpeed 'CPU is fine i.e don't change value
StatusBar.InnerText=StatusBar.InnerText & vbTab & "CPU Speed: " & cPassed
Else
fCheckCPUSpeed=cFail 'already in GHz
Err.Raise 9050,"fCheckCPUSpeed","CPU speed pre-requisite failed. Minimum processor clock speed is: " & iMinCPUSpeed
Call ErrHandler(Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1) 'halt build
End If
End Function
'=================================================================================
'=================================================================================
Function fCheckCPUArch(strCPUArch) 'any HW
'Aim: Check CPU width
'Return string
On Error Resume Next
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "Checking CPU bus width..."
'Check clock speed
If Int(Left(trim(strCPUArch),2))>=iMinCPUArch Then
fCheckCPUArch=strHTAArchitecture 'CPU is fine i.e don't change value
StatusBar.InnerText=StatusBar.InnerText & vbTab & "CPU width: " & cPassed
Else
fCheckCPUArch=cFail 'already in GHz
Err.Raise 9052,"fCheckCPUArch","CPU width pre-requisite failed. Minimum processor width required is: " & iMinCPUArch
Call ErrHandler(Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",1) 'abort build
End If
End Function
'=================================================================================
Function fCheckCores(iCores)
'Aim: Check hardware (CPU) has a minimum number of cores
'Return Integer
On Error Resume Next
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & "Checking CPU cores..."
If iCores>=iMinCores Then
fCheckCores=iCores
StatusBar.InnerText=StatusBar.InnerText & vbTab & "Core count: " & vbTab & cPassed
'StatusBar.InnerText=StatusBar.InnerText & vbTab & "CPU cores: " & cPassed
Else
fCheckCores=cFail
Err.Raise 9051,"fCheckCores","WARNING: Not enough cores on the CPU to support the build. Minimum CPU cores is: " & iMinCores
Call ErrHandler(Err.Description & " (Code: " & Err.Number & " - " & Err.Source & ")",2) 'halt build
End If
End Function
'=================================================================================
'=================================================================================
Function fCheckHPCPUSpeed 'HP ONLY
'Aim: Check CPU speed
'return: string
'Check CPU speed
On Error Resume Next
strWQLCPU = "processor speed"
strTemp=QueryHPBIOS(strWQLCPU,"")
Select Case Right(strTemp,3)
Case "MHz"
strTemp=Left(strTemp,4)/1000 'reformat to GHz
Case "GHz"
strTemp 'is OK
Case Else
Call ErrHandler("CPU is unknown",2)
End Select
'Check clock speed
If strTemp>=iMinCPUSpeed Then
fCheckCPUSpeed= strTemp & "GHz"
Else
Err.Raise 9050,,"CPU speed pre-requisite failed"
Call ErrHandler("CPU is too slow",1)
fCheckCPUSpeed=cFail 'already in GHz
End If
End Function
'=================================================================================
'=================================================================================
Function fGetModels
'Aim: Read external text file
'return: dictionary object - models as key, integer as value e.g. Dell Optiplex,12
'On Error Resume Next
Dim objFSO
Dim objFile
Dim strFile
Dim strEntry
Dim n
Dim strfilepath
Dim iLineCount 'count lines to avoid listing first item with ,.
Set objModelsDict = CreateObject("Scripting.Dictionary")
set objFSO=CreateObject("Scripting.FileSystemObject")
Const ForReading=1
strfilepath = Left(window.location.pathname,InStrRev(window.location.pathname,"\"))
strFile=strfilepath & "Models.txt"
set objFile=objFSO.OpenTextFile(strFile,ForReading)
iLineCount=0
'read in each line of data until you reach the end of the file
do While objFile.AtEndOfStream<>True
strEntry=objFile.ReadLine
'you can now do what ever you want with the line as referenced with the strEntry variable such as
'echoing it back (e.g. wscript.Echo strEntry) or passing it as a variable to a function of subroutine (e.g. MyFunction strEntry)
objModelsDict.comparemode=VBTextCompare
objModelsDict.Add strEntry,iLineCount
iLineCount=iLineCount+1
If blnDebug then
If iLineCount=1 Then
StatusBar.InnerText=trim(strEntry)
Else
StatusBar.InnerText=StatusBar.InnerText & ", " & trim(strEntry) 'list models
End If
End If
Loop
objFile.Close
End Function
'=================================================================================
'=================================================================================
'====================================================
Function ErrHandler(strErrorMsg,iErrMode)
'Aim: to handle error states
' 1 = Abort
' 2 = Warn
'Return 'Appropriate text message explaining the error
'====================================================
Const msgTitle="SCCM Deployment Preflight Checklist"
'On Error Resume Next '< don't use that as we want to KEEP the error properties
'Abort=1
If iErrMode=1 Then
StatusBar.InnerText=strErrorMsg 'overwrite status with Error message
' StatusBar.InnerText=StatusBar.InnerText & VbCrLf & " " & strHTAOutlook & " " & strHTAVendor & " " & strHTAVendorState & _
' VbCrLf & " " & strHTAModel & strHTAModelState & _
' VbCrLf & " " & strHTARAM & strHTARAMState & _
' VbCrLf & " " & strHTAHDD & strHTAHDDState
iTimer = window.setTimeout("Abort", iAbortTimeout, "VBScript") 'Abort (close) after n seconds
'MsgBox strErrorMsg,vbExclamation,msgTitle
'ErrBar.class=""
ElseIf iErrMode=2 Then
'Warning
StatusBar.InnerText=StatusBar.InnerText & VbCrLf & strErrorMsg & " " '& "(" & Err.Description & " :" & Err.Number & ")"',vbExclamation,msgTitle
Err.Clear
End If
End Function
'====================================================
Sub Abort
'Aim: Quit gracefully
window.close()
End Sub
</script>
<!-- #region BODY -->
<body>
<br />
<div>
<span style="version"> <span id="VersionSpan"></span></div>
<div style="text-align: center;">
<H1 style="font-family: Arial, Helvetica, sans-serif; font-size: large; text-align: center; color: #000000; text-transform: capitalize">System information</H1>
<span>
<table border="1" cellspacing="0" cellpadding="0" style="width: 912px"
id="SysInfoTable">
<tr class="h1">
<td align="right" class="Header1" style="width: 76px; height: 18px">
</td>
<td align="right" class="Header1" style="height: 18px"><em id="VendorCaption">Vendor</em></td>
<td align="left" class="style2" style="height: 18px"><span id="Vendor"></span></td>
<td align="right" class="Header2" style="height: 18px"><em id="ModelCaption">Model</em></td>
<td align="center" class="style4" style="width: 400px; height: 18px"><span id="Model"></span></td>
</tr>
<tr>
<td align="right" class="Header1" style="width: 76px">
</td>
<td align="right" class="Header1"><em id="ProductCaption">Product ID</em></td>
<td align="left" class="style2"><span id="Product"></span></td>
<td align="right" class="Header2"><em id="RAMCaption">Memory(in MB)</em></td>
<td align="left" class="style4" style="width: 400px"><span id="RAM"></span></td>
</tr>`
<tr>
<td align="right" class="Header1" style="width: 76px">
</td>
<td align="right" class="Header1"><em id="CPUCaption">CPU speed (in GHz)</em></td>
<td align="left" class="style2"><span id="CPUspeed"></span></td>
<td align="right" class="Header2"><em id="CPUInfoCaption">No: CPU\Cores</em></td>
<td align="left" class="style4" style="width: 400px"><span id="CPUInfo"></span></td>
</tr>
<tr>
<td align="right" class="Header1" style="width: 76px">
</td>
<td align="right" class="Header1"><em id="DiskFSCaption">Filesystem info</em></td>
<td align="left" class="style2"><span id="HDDFS"></span></td>
<td align="right" class="Header2"><em id="CapableArchCaption">Architecture</em></td>
<td align="left" class="style4" style="width: 400px"><span id="CapableArchitecture"></span></td>
</tr>
<tr>
<td align="right" class="Header1" style="width: 76px">
</td>
<td align="right" class="Header1"><em id="BIOSVerCaption">BIOS version</em></td>
<td align="left" class="style2" ><span id="BIOSVERSION"></span></td>
<td align="right" class="Header2"><em id="BIOSDateCaption">BIOS Date</em></td>
<td align="left" class="style4" style="width: 400px"><span id="BIOSDate"></span></td>
</tr>
</table>
</span>
</div>
<div class="StatusBar">
<br />
<Span id="StatusBar">Loading...please wait.</Span>
</div> <br><br>
<div align="center">
<input type="button" name="btnStop" id="btnStop" value="Continue" onclick="Abort">
<input type="Button" value="Re-Scan Machine" name="button1" onClick="Window_Onload" class="button">
</div>
</body><!-- #endregion -->
</html> -
Wiping a disk with MDT task sequence?
I'm thinking that I could use MDT/WDS to do a secure disk wipe for old computers. Has anyone implemented something like this with MDT?
Take a look at the "Client Replace" Task sequence template supplied with MDT
This Task Sequence is designed to de-commission a client computer, first saving the data to a external network share.
The task sequence also calls the ZTIWipeDisk.wsf script to peform a multi-pass wipe of all partitions.
Then again, if you have machines with sensitive information on them, you should be using disk encryption like Bitlocker to ensure that the data is protected. Simply install a new OS without suspending the old BitLocker protection.
Keith Garner - Principal Consultant [owner] -
http://DeploymentLive.com -
Creative Cloud: "Build" MSI Hangs During SCCM OSD Task Sequence Installation
I wanted to share problem and solution I found when deploying Creative Cloud Packager-created packages/application using SCCM 2012 R2. I encountered this problem packaging this as both a Package and as an Application in SCCM.
When installing the software through SCCM Software Center onto a client, Software Center would close right as the installation of the "Build" folder MSI completed. This is abnormal behavior.
When installing the application as part of an OSD Task Sequence, the software would get installed (as shown by logs) but SCCM would hang forever at the "Installing Application" step.
I tried all sorts of different settings in SCCM and with the MSIEXEC command line and eventually traced it to the Reboot Manager functionality in MSIEXEC that will close and attempt to restart processes using files that the installer needs. Reboot Manager clobbered part of SCCM and in the Task Sequence, the connection between SCCM and the installer was broken.
The solution is to pass the property "MSIRESTARTMANAGERCONTROL=Disable" along the command line when calling MSIEXEC on the Build folder MSI file. This setting disabled Restart Manager so it didn't mess up SCCM. Once I did this, my Software Center installs and OSD Task Sequences ran as intended.
For reference, I used the REBOOT=ReallySuppress property for reboots and let SCCM determine what to do with reboots based on the return code. My testing was done with Windows 8.1 Enterprise x64.Like said, did you configure my proposal: "Configuration Manager client will force a mandatory device
restart" ? After you've configured that, update your deployment type manually and remove the old revisions of the application and try running the TS again. I'm guessing you're a little bit too fast on your doings so the ConfigMgr doesn't play a long very
nicely...
The TS stops because of your Hard Reboot (exit code 1641), I've seen this before and I configured my application so that ConfigMgr client will force device restart and that fixed my problem. Although, also my application is the last one in the TS, but still,
the TS continues after the reboot.
Btw. have you tried changing your command line to:
msiexec.exe /i cd-ord.msi TRANSFORMS=sv-se.mst MVLICENSE_KEY=xxxxxxxxxxxxxxxxx /L*V "%temp%\cdord.log" /qn
/norestart -
Administrator Account Disabled after sysprep and capture task sequence in MDT 2010
Hi
We are currently migrating from Windows XP to windows 7. As part of our migration we have 5 base Images (for different areas of the business)
Here is what we are doing:
Create a reference machine with the source files for windows 7 Pro x86
Install applications as part of the Task sequence to build a reference machine.
Make the updates to the machine - required for the build.
Run the Sysprep and capture template to take the capture of the Reference machine.
Import the Capture into the Operating system folder within MDT2010
Create a task sequecne to deploy the image.
Deploy the Image for Testing.
Deploy the image to a machine
Update the machine with the defects
Re Capture the deployed machine and call it ver2.wim
re deploy ver2.wim
Testers test
Defects logged + additional user settings to be captured in the build
Re capture and sysprep runs says the capture has been succesful however after a reboot the administrator account is disabled.
We cant seem to capture anything from here on in. Nothing has been changed in the unattend.
Autologon is set to enable the administrator account and the password is set to blank as this is then handled by policy when the machine is joined to the domain - we have not enabled the unattended join to the domain at this point in time but it will be
for deploying the image.
Have we got our image strategy wrong? does the same rule apply about sysprep running more than 3 times on a single machine if it is captured and redeployed after a sucessfully sysprep to the same hardware or even different hardware.Hi,
One of the things Sysprep/WAIK do is disable the adminsitrator account.
You mentioned that you are setting the autologing to the administrator account and that you are setting it with a blank password, you can add a simple command in to sysprep's xml to reenable the account:
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Order>1</Order>
<Path>net user administrator /active:yes</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
Give it a try and let us know .
Best Regards, Marianok
Saludos, MarianoK
Disclaimer: While I do my best to make sure everything I post is accurate and safe, I’m certainly not perfect so all this information is provided "AS IS" with no warranties or guarantees and confers no rights. Any suggested steps or code provided should be
done under your own risk, I take no responsibilities if your system blows, the universe stops spinning, o nor for any other adverse consequence the information on this code might cause directly or indirectly.
Aclaración: Aunque hago lo posible por verificar que todo lo que posteo es correcto y seguro, Yo ciertamente no soy perfecto y puedo cometer errores, por lo tanto esta informacion es provista "AS IS" / "Como Está" sin garantía alguna y no le confiere ningún
derecho. Cualquier instrucción descripta o código incluido deben ser empleados bajo su propia responsabilidad y bajo su propio riesgo. No me hago responsable si sus datos se dañan, su si
Hi Marianok,
Thanks for your response and taking the time to read the topic we have raised. We believe we already have this step in place but perhaps we have it in the wrong area of the unattend.
Please find below our unattend file for the capture:
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
<settings pass="windowsPE">
<component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<ImageInstall>
<OSImage>
<WillShowUI>OnError</WillShowUI>
<InstallTo>
<DiskID>0</DiskID>
<PartitionID>1</PartitionID>
</InstallTo>
<InstallFrom>
<Path>.\Operating Systems\Windows 7 Install Media x86\Sources\install.wim</Path>
<MetaData>
<Key>/image/index</Key>
<Value>1</Value>
</MetaData>
</InstallFrom>
</OSImage>
</ImageInstall>
<UpgradeData>
<Upgrade>false</Upgrade>
</UpgradeData>
<Display>
<ColorDepth>16</ColorDepth>
<HorizontalResolution>1024</HorizontalResolution>
<RefreshRate>60</RefreshRate>
<VerticalResolution>768</VerticalResolution>
</Display>
<ComplianceCheck>
<DisplayReport>OnError</DisplayReport>
</ComplianceCheck>
<UserData>
<AcceptEula>true</AcceptEula>
<ProductKey>
<Key></Key>
</ProductKey>
</UserData>
</component>
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SetupUILanguage>
<UILanguage>en-US</UILanguage>
</SetupUILanguage>
<InputLocale>0409:00000409</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
</settings>
<settings pass="generalize">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DoNotCleanTaskBar>true</DoNotCleanTaskBar>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-UnattendedJoin" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<Identification>
<Credentials>
<Username></Username>
<Domain></Domain>
<Password></Password>
</Credentials>
<JoinDomain></JoinDomain>
<JoinWorkgroup></JoinWorkgroup>
<MachineObjectOU></MachineObjectOU>
</Identification>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<ComputerName></ComputerName>
<ProductKey></ProductKey>
<RegisteredOrganization>OurCompanyNameHere</RegisteredOrganization>
<RegisteredOwner>Windows User</RegisteredOwner>
<TimeZone></TimeZone>
<DoNotCleanTaskBar>true</DoNotCleanTaskBar>
</component>
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Home_Page>about:blank</Home_Page>
<IEWelcomeMsg>false</IEWelcomeMsg>
</component>
<component name="Microsoft-Windows-Deployment" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Description>EnableAdmin</Description>
<Order>1</Order>
<Path>cmd /c net user Administrator /active:yes</Path>
</RunSynchronousCommand>
<RunSynchronousCommand wcm:action="add">
<Description>UnfilterAdministratorToken</Description>
<Order>2</Order>
<Path>cmd /c reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0 /f</Path>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>0409:00000409</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
<component name="Microsoft-Windows-TapiSetup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<TapiConfigured>0</TapiConfigured>
<TapiUnattendLocation>
<AreaCode>""</AreaCode>
<CountryOrRegion>1</CountryOrRegion>
<LongDistanceAccess>9</LongDistanceAccess>
<OutsideAccess>9</OutsideAccess>
<PulseOrToneDialing>1</PulseOrToneDialing>
<DisableCallWaiting>""</DisableCallWaiting>
<InternationalCarrierCode>""</InternationalCarrierCode>
<LongDistanceCarrierCode>""</LongDistanceCarrierCode>
<Name>Default</Name>
</TapiUnattendLocation>
</component>
<component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DisableSR>1</DisableSR>
</component>
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State">
<UserAccounts>
<AdministratorPassword>
<Value>QQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcgBQAGEAcwBzAHcAbwByAGQA</Value>
<PlainText>false</PlainText>
</AdministratorPassword>
<LocalAccounts>
<LocalAccount wcm:action="add">
<Description>Temp account</Description>
<DisplayName>Temp account</DisplayName>
<Group>Users</Group>
<Name>TempAccount</Name>
</LocalAccount>
</LocalAccounts>
</UserAccounts>
<AutoLogon>
<Enabled>true</Enabled>
<Username>Administrator</Username>
<Domain></Domain>
<Password>
<Value>UABhAHMAcwB3AG8AcgBkAA==</Value>
<PlainText>false</PlainText>
</Password>
<LogonCount>999</LogonCount>
</AutoLogon>
<Display>
<ColorDepth>32</ColorDepth>
<HorizontalResolution>1024</HorizontalResolution>
<RefreshRate>60</RefreshRate>
<VerticalResolution>768</VerticalResolution>
</Display>
<FirstLogonCommands>
<SynchronousCommand wcm:action="add">
<CommandLine>cscript.exe C:\MININT\Scripts\LiteTouch.wsf /start</CommandLine>
<Description>Lite Touch new OS</Description>
<Order>1</Order>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<CommandLine>cscript.exe D:\MININT\Scripts\LiteTouch.wsf /start</CommandLine>
<Description>Lite Touch new OS</Description>
<Order>2</Order>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<CommandLine>cscript.exe E:\MININT\Scripts\LiteTouch.wsf /start</CommandLine>
<Description>Lite Touch new OS</Description>
<Order>3</Order>
</SynchronousCommand>
<SynchronousCommand wcm:action="add">
<CommandLine>cscript.exe F:\MININT\Scripts\LiteTouch.wsf /start</CommandLine>
<Description>Lite Touch new OS</Description>
<Order>4</Order>
</SynchronousCommand>
</FirstLogonCommands>
<OOBE>
<HideEULAPage>true</HideEULAPage>
<NetworkLocation>Work</NetworkLocation>
<ProtectYourPC>1</ProtectYourPC>
<SkipUserOOBE>true</SkipUserOOBE>
</OOBE>
<RegisteredOrganization>Ourcomapanynamehere</RegisteredOrganization>
<RegisteredOwner>Windows User</RegisteredOwner>
<TimeZone></TimeZone>
</component>
<component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<InputLocale>0409:00000409</InputLocale>
<SystemLocale>en-US</SystemLocale>
<UILanguage>en-US</UILanguage>
<UserLocale>en-US</UserLocale>
</component>
</settings>
<settings pass="offlineServicing">
<component name="Microsoft-Windows-PnpCustomizationsNonWinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DriverPaths>
<PathAndCredentials wcm:keyValue="1" wcm:action="add">
<Path>\Drivers</Path>
</PathAndCredentials>
</DriverPaths>
</component>
</settings>
<cpi:offlineImage cpi:source="catalog://pr-dep-03/captureshare$/operating systems/windows 7 install media x86/sources/install_windows 7 professional.clg" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>
Hope this helps! -
Enabling Remote Desktop for Windows 7 as a task sequence
Hi there.
I have a task sequence to automate the creation of a base image of Windows 7 x64 Professional. In my base image I would like to have Remote Desktop enabled by default for all users. Is there a command or a script to do this that I can add into my task sequence to make this possible?
Thanks.I have to agree except I can't understand why anyone would use anything other than the unattend.xml. You can do all that plus so much more and it's the way Microsoft provides to do it. This is my complete x64 unattend.xml version but I also have
an x86 version. This should give you some idea of it's capabilities.
Drop the unattend.xml file into a package and reference it in the Task Sequence as shown below. I dropped both my x86 and x64 version of the unattend.xml into the package. I use an OSD HTA menu on the frontend to let helpdesk pick
between x86 and x64. I cropped the picture up a bit and took out company specific info but you should get the idea from the screen captures. This is how I deploy x86 and x64 in a single task sequence. I mark every line with a condition in the task
sequence with (C) which makes it easier to find lines with conditions. I use the condition to assign x86 and x64 software among other things. The selection in the HTA pretty much triggers everything.
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<settings pass="auditSystem">
</settings>
<settings pass="auditUser">
</settings>
<settings pass="generalize">
</settings>
<settings pass="offlineServicing">
</settings>
<settings pass="oobeSystem">
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<OOBE>
<HideEULAPage>true</HideEULAPage>
<NetworkLocation>Work</NetworkLocation>
<SkipMachineOOBE>false</SkipMachineOOBE>
<SkipUserOOBE>false</SkipUserOOBE>
<ProtectYourPC>3</ProtectYourPC>
</OOBE>
<UserAccounts>
<DomainAccounts>
<DomainAccountList wcm:action="add">
<DomainAccount wcm:action="add">
<Name>Workstation Admins</Name>
<Group>Administrators</Group>
</DomainAccount>
<Domain>DOMAIN</Domain>
</DomainAccountList>
</DomainAccounts>
</UserAccounts>
</component>
</settings>
<settings pass="specialize">
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<EnableLUA>false</EnableLUA>
</component>
<component name="Security-Malware-Windows-Defender" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="
http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance ">
<DisableAntiSpyware>true</DisableAntiSpyware>
</component>
<component name="Microsoft-Windows-SystemRestore-Main" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DisableSR>1</DisableSR>
</component>
<component name="Networking-MPSSVC-Svc" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DomainProfile_EnableFirewall>false</DomainProfile_EnableFirewall>
<PrivateProfile_EnableFirewall>true</PrivateProfile_EnableFirewall>
<PublicProfile_EnableFirewall>true</PublicProfile_EnableFirewall>
</component>
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Path>reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures\FirstNetwork" /v Category /t REG_DWORD /d 00000000 /f</Path>
<Description>Setting Network Location</Description>
<Order>1</Order>
</RunSynchronousCommand>
</RunSynchronous>
</component>
<component name="Microsoft-Windows-TerminalServices-LocalSessionManager" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<fDenyTSConnections>false</fDenyTSConnections>
</component>
<component name="Microsoft-Windows-IE-InternetExplorer" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<DisableAccelerators>true</DisableAccelerators>
<DisableOOBAccelerators>true</DisableOOBAccelerators>
<SuggestedSitesEnabled>false</SuggestedSitesEnabled>
<DisableFirstRunWizard>true</DisableFirstRunWizard>
<DisableWelcomePage>true</DisableWelcomePage>
<Home_Page>http://www.google.com</Home_Page>
<SearchScopes>
<Scope wcm:action="add">
<ScopeDefault>true</ScopeDefault>
<ScopeDisplayName>Google</ScopeDisplayName>
<ScopeKey>SearchProvider1</ScopeKey>
<ScopeUrl>http://www.google.com/search?q={searchTerms}</ScopeUrl>
</Scope>
</SearchScopes>
</component>
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS">
<TimeZone>Central Standard Time</TimeZone>
</component>
</settings>
</unattend> -
Deploy Application During Task Sequence
Hello I have created about 10 packages to be part of our Windows 7 deployment using installshield. The packages install ok manually and through SCCM Client Center. However when I add them to my Task Sequence I get 1603 errors??? Is it a permissions issue.
Some of my packages work some don't?
Here's the log error
Unmatched exit code 1603 is considered and execution failure.
SCCM Deployment TechnicianHi here is the log, any help appreciated. I think its permissions issue but not sure what I can do to remedy it?
=== Verbose logging started: 12/03/2015 10:11:15 Build type: SHIP UNICODE 5.00.7601.00 Calling process: C:\WINDOWS\system32\msiexec.exe ===
MSI (c) (54:B8) [10:11:15:124]: Resetting cached policy values
MSI (c) (54:B8) [10:11:15:124]: Machine policy value 'Debug' is 0
MSI (c) (54:B8) [10:11:15:124]: ******* RunEngine:
******* Product: Genetec_Omnicast_Client_4_8_2201_19_B2.msi
******* Action:
******* CommandLine: **********
MSI (c) (54:B8) [10:11:15:125]: Client-side and UI is none or basic: Running entire install on the server.
MSI (c) (54:B8) [10:11:15:125]: Grabbed execution mutex.
MSI (c) (54:B8) [10:11:15:140]: Cloaking enabled.
MSI (c) (54:B8) [10:11:15:140]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (54:B8) [10:11:15:142]: Incrementing counter to disable shutdown. Counter after increment: 0
MSI (s) (C0:E0) [10:11:15:144]: Running installation inside multi-package transaction C:\Windows\ccmcache\9i\Genetec_Omnicast_Client_4_8_2201_19_B2.msi
MSI (s) (C0:E0) [10:11:15:144]: Grabbed execution mutex.
MSI (s) (C0:08) [10:11:15:145]: Resetting cached policy values
MSI (s) (C0:08) [10:11:15:145]: Machine policy value 'Debug' is 0
MSI (s) (C0:08) [10:11:15:145]: ******* RunEngine:
******* Product: C:\Windows\ccmcache\9i\Genetec_Omnicast_Client_4_8_2201_19_B2.msi
******* Action:
******* CommandLine: **********
MSI (s) (C0:08) [10:11:15:145]: Machine policy value 'DisableUserInstalls' is 0
MSI (s) (C0:08) [10:11:15:146]: User policy value 'SearchOrder' is 'nmu'
MSI (s) (C0:08) [10:11:15:146]: User policy value 'DisableMedia' is 0
MSI (s) (C0:08) [10:11:15:146]: Machine policy value 'AllowLockdownMedia' is 0
MSI (s) (C0:08) [10:11:15:146]: SOURCEMGMT: Media enabled only if package is safe.
MSI (s) (C0:08) [10:11:15:146]: SOURCEMGMT: Looking for sourcelist for product {410ED13C-DBAD-4228-9A77-D90AF1CB6B07}
MSI (s) (C0:08) [10:11:15:146]: SOURCEMGMT: Adding {410ED13C-DBAD-4228-9A77-D90AF1CB6B07}; to potential sourcelist list (pcode;disk;relpath).
MSI (s) (C0:08) [10:11:15:146]: SOURCEMGMT: Now checking product {410ED13C-DBAD-4228-9A77-D90AF1CB6B07}
MSI (s) (C0:08) [10:11:15:146]: SOURCEMGMT: Media is enabled for product.
MSI (s) (C0:08) [10:11:15:146]: SOURCEMGMT: Attempting to use LastUsedSource from source list.
MSI (s) (C0:08) [10:11:15:146]: SOURCEMGMT: Trying source C:\Windows\ccmcache\9a\.
MSI (s) (C0:08) [10:11:15:146]: Note: 1: 1402 2: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 3: 2
MSI (s) (C0:08) [10:11:15:146]: Entering CMsiConfigurationManager::SetLastUsedSource.
MSI (s) (C0:08) [10:11:15:146]: Specifed source is already in a list.
MSI (s) (C0:08) [10:11:15:146]: User policy value 'SearchOrder' is 'nmu'
MSI (s) (C0:08) [10:11:15:146]: Machine policy value 'DisableBrowse' is 0
MSI (s) (C0:08) [10:11:15:146]: Machine policy value 'AllowLockdownBrowse' is 0
MSI (s) (C0:08) [10:11:15:146]: Adding new sources is allowed.
MSI (s) (C0:08) [10:11:15:147]: Set LastUsedSource to: C:\Windows\ccmcache\9a\.
MSI (s) (C0:08) [10:11:15:147]: Set LastUsedType to: n.
MSI (s) (C0:08) [10:11:15:147]: Set LastUsedIndex to: 1.
MSI (s) (C0:08) [10:11:15:147]: SOURCEMGMT: Resolved source to: 'C:\Windows\ccmcache\9a\'
MSI (s) (C0:08) [10:11:15:155]: SRSetRestorePoint skipped for this transaction.
MSI (s) (C0:08) [10:11:15:157]: File will have security applied from OpCode.
MSI (s) (C0:08) [10:11:15:171]: SOFTWARE RESTRICTION POLICY: Verifying package --> 'C:\Windows\ccmcache\9i\Genetec_Omnicast_Client_4_8_2201_19_B2.msi' against software restriction policy
MSI (s) (C0:08) [10:11:15:171]: SOFTWARE RESTRICTION POLICY: C:\Windows\ccmcache\9i\Genetec_Omnicast_Client_4_8_2201_19_B2.msi has a digital signature
MSI (s) (C0:08) [10:11:15:171]: SOFTWARE RESTRICTION POLICY: C:\Windows\ccmcache\9i\Genetec_Omnicast_Client_4_8_2201_19_B2.msi is permitted to run because the user token authorizes execution (system or service token).
MSI (s) (C0:08) [10:11:15:171]: End dialog not enabled
MSI (s) (C0:08) [10:11:15:171]: Original package ==> C:\Windows\ccmcache\9a\Genetec_Omnicast_Client_4_8_2201_19_B2.msi
MSI (s) (C0:08) [10:11:15:171]: Package we're running from ==> C:\WINDOWS\Installer\1e7f0.msi
MSI (s) (C0:08) [10:11:15:179]: APPCOMPAT: looking for appcompat database entry with ProductCode '{410ED13C-DBAD-4228-9A77-D90AF1CB6B07}'.
MSI (s) (C0:08) [10:11:15:180]: APPCOMPAT: no matching ProductCode found in database.
MSI (s) (C0:08) [10:11:15:181]: MSCOREE not loaded loading copy from system32
MSI (s) (C0:08) [10:11:15:183]: Machine policy value 'DisablePatch' is 0
MSI (s) (C0:08) [10:11:15:183]: Machine policy value 'AllowLockdownPatch' is 0
MSI (s) (C0:08) [10:11:15:183]: Machine policy value 'DisableLUAPatching' is 0
MSI (s) (C0:08) [10:11:15:183]: Machine policy value 'DisableFlyWeightPatching' is 0
MSI (s) (C0:08) [10:11:15:186]: SHELL32::SHGetFolderPath returned: C:\WINDOWS\system32\config\systemprofile\AppData\Roaming
MSI (s) (C0:08) [10:11:15:186]: Looking for file transform in shell folder: C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\Microsoft\Installer\{410ED13C-DBAD-4228-9A77-D90AF1CB6B07}\Genetec_Omnicast_Client_4_8_2201_19_B2.mst
MSI (s) (C0:08) [10:11:15:186]: Note: 1: 2262 2: Patch 3: -2147287038
MSI (s) (C0:08) [10:11:15:186]: Note: 1: 2205 2: 3: PatchPackage
MSI (s) (C0:08) [10:11:15:187]: Note: 1: 2262 2: Media 3: -2147287038
MSI (s) (C0:08) [10:11:15:187]: Note: 1: 2262 2: File 3: -2147287038
MSI (s) (C0:08) [10:11:15:187]: TRANSFORM: 'PatchPackage' table is missing or empty. No pre-transform fixup necessary.
MSI (s) (C0:08) [10:11:15:187]: TRANSFORM: Applying regular transform to database.
MSI (s) (C0:08) [10:11:15:187]: Note: 1: 2262 2: ActionText 3: -2147287038
MSI (s) (C0:08) [10:11:15:187]: Note: 1: 2262 2: AdminExecuteSequence 3: -2147287038
MSI (s) (C0:08) [10:11:15:187]: Note: 1: 2262 2: Condition 3: -2147287038
MSI (s) (C0:08) [10:11:15:187]: Note: 1: 2262 2: AdminUISequence 3: -2147287038
MSI (s) (C0:08) [10:11:15:187]: Note: 1: 2262 2: AdvtExecuteSequence 3: -2147287038
MSI (s) (C0:08) [10:11:15:187]: Note: 1: 2262 2: AdvtUISequence 3: -2147287038
MSI (s) (C0:08) [10:11:15:187]: Note: 1: 2262 2: AppId 3: -2147287038
MSI (s) (C0:08) [10:11:15:187]: Note: 1: 2262 2: AppSearch 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: BindImage 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: File 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: CheckBox 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: Class 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: Icon 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ProgId 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ComboBox 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: Dialog 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ControlCondition 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ControlEvent 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ModuleExclusion 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ModuleSignature 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: Error 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: EventMapping 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: Extension 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: Font 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: IniFile 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: InstallUISequence 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: LaunchCondition 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ListBox 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ListView 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: LockPermissions 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: Media 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ModuleComponents 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: MsiAssembly 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: MsiAssemblyName 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ModuleDependency 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: MsiFileHash 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ODBCDataSource 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ODBCSourceAttribute 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: Patch 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: PublishComponent 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: RadioButton 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: RegLocator 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: RemoveFile 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: SelfReg 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: Shortcut 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: Signature 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: TextStyle 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: TypeLib 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: UIText 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: Upgrade 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: Verb 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ISComponentExtended 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ISCustomActionReference 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ISSQLConnection 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ISSQLConnectionDBServer 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ISSQLDBMetaData 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ISSQLConnectionScript 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: ISSQLScriptFile 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: LangDll 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: SeagateCondition 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: SeagateIPService 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: SeagateSourcePath 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: SeagateStreamFiles 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: SxsMsmGenComponents 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: MsiSFCBypass 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: HelpPlugin 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: HelpNamespace 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: HelpFileToNamespace 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: HelpFile 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: HelpFilter 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: HelpFilterToNamespace 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: _MsiPatchTransformView 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: #_BaselineCost 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: #_BaselineFile 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: #_BaselineData 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: Note: 1: 2262 2: #_PatchCache 3: -2147287038
MSI (s) (C0:08) [10:11:15:188]: APPCOMPAT: looking for appcompat database entry with ProductCode '{410ED13C-DBAD-4228-9A77-D90AF1CB6B07}'.
MSI (s) (C0:08) [10:11:15:188]: APPCOMPAT: no matching ProductCode found in database.
MSI (s) (C0:08) [10:11:15:188]: Transforms are not secure.
MSI (s) (C0:08) [10:11:15:189]: Transforming table Property.
MSI (s) (C0:08) [10:11:15:189]: PROPERTY CHANGE: Adding MsiLogFileLocation property. Its value is 'c:\temp\Genetec_Omnicast_Client_4_8_2201_19_B2.log'.
MSI (s) (C0:08) [10:11:15:189]: Command Line: TRANSFORMS=Genetec_Omnicast_Client_4_8_2201_19_B2.mst CURRENTDIRECTORY=C:\Windows\ccmcache\9i CLIENTUILEVEL=3 CLIENTPROCESSID=2900
MSI (s) (C0:08) [10:11:15:189]: PROPERTY CHANGE: Adding PackageCode property. Its value is '{AA766C40-990C-4B24-8E72-068FFF4D646D}'.
MSI (s) (C0:08) [10:11:15:189]: PROPERTY CHANGE: Adding TRANSFORMS property. Its value is '*26*Microsoft\Installer\{410ED13C-DBAD-4228-9A77-D90AF1CB6B07}\Genetec_Omnicast_Client_4_8_2201_19_B2.mst'.
MSI (s) (C0:08) [10:11:15:189]: Product Code passed to Engine.Initialize: '{410ED13C-DBAD-4228-9A77-D90AF1CB6B07}'
MSI (s) (C0:08) [10:11:15:189]: Product Code from property table before transforms: '{410ED13C-DBAD-4228-9A77-D90AF1CB6B07}'
MSI (s) (C0:08) [10:11:15:189]: Product Code from property table after transforms: '{410ED13C-DBAD-4228-9A77-D90AF1CB6B07}'
MSI (s) (C0:08) [10:11:15:189]: Product not registered: beginning first-time install
MSI (s) (C0:08) [10:11:15:189]: Determined that existing product (either this product or the product being upgraded with a patch) is installed per-user.
MSI (s) (C0:08) [10:11:15:189]: PROPERTY CHANGE: Deleting ALLUSERS property. Its current value is '1'.
MSI (s) (C0:08) [10:11:15:189]: Product {410ED13C-DBAD-4228-9A77-D90AF1CB6B07} is admin assigned: LocalSystem owns the publish key.
MSI (s) (C0:08) [10:11:15:189]: Product {410ED13C-DBAD-4228-9A77-D90AF1CB6B07} is managed.
MSI (s) (C0:08) [10:11:15:189]: MSI_LUA: Credential prompt not required, user is an admin
MSI (s) (C0:08) [10:11:15:189]: PROPERTY CHANGE: Adding ProductState property. Its value is '1'.
MSI (s) (C0:08) [10:11:15:189]: Entering CMsiConfigurationManager::SetLastUsedSource.
MSI (s) (C0:08) [10:11:15:189]: Specifed source is already in a list.
MSI (s) (C0:08) [10:11:15:189]: User policy value 'SearchOrder' is 'nmu'
MSI (s) (C0:08) [10:11:15:190]: Adding new sources is allowed.
MSI (s) (C0:08) [10:11:15:190]: Package name retrieved from configuration data: 'Genetec_Omnicast_Client_4_8_2201_19_B2.msi'
MSI (s) (C0:08) [10:11:15:190]: Note: 1: 2262 2: AdminProperties 3: -2147287038
MSI (s) (C0:08) [10:11:15:190]: Machine policy value 'DisableMsi' is 0
MSI (s) (C0:08) [10:11:15:190]: Machine policy value 'AlwaysInstallElevated' is 0
MSI (s) (C0:08) [10:11:15:190]: User policy value 'AlwaysInstallElevated' is 0
MSI (s) (C0:08) [10:11:15:190]: Product {410ED13C-DBAD-4228-9A77-D90AF1CB6B07} is admin assigned: LocalSystem owns the publish key.
MSI (s) (C0:08) [10:11:15:190]: Product {410ED13C-DBAD-4228-9A77-D90AF1CB6B07} is managed.
MSI (s) (C0:08) [10:11:15:190]: Running product '{410ED13C-DBAD-4228-9A77-D90AF1CB6B07}' with elevated privileges: Product is assigned.
MSI (s) (C0:08) [10:11:15:190]: PROPERTY CHANGE: Modifying TRANSFORMS property. Its current value is '*26*Microsoft\Installer\{410ED13C-DBAD-4228-9A77-D90AF1CB6B07}\Genetec_Omnicast_Client_4_8_2201_19_B2.mst'. Its new value: 'Genetec_Omnicast_Client_4_8_2201_19_B2.mst'.
MSI (s) (C0:08) [10:11:15:190]: PROPERTY CHANGE: Adding CURRENTDIRECTORY property. Its value is 'C:\Windows\ccmcache\9i'.
MSI (s) (C0:08) [10:11:15:190]: PROPERTY CHANGE: Adding CLIENTUILEVEL property. Its value is '3'.
MSI (s) (C0:08) [10:11:15:190]: PROPERTY CHANGE: Adding CLIENTPROCESSID property. Its value is '2900'.
MSI (s) (C0:08) [10:11:15:190]: Machine policy value 'DisableAutomaticApplicationShutdown' is 0
MSI (s) (C0:08) [10:11:15:191]: PROPERTY CHANGE: Adding MsiRestartManagerSessionKey property. Its value is '518597794e277e41aa15fee636fef8fd'.
MSI (s) (C0:08) [10:11:15:191]: RESTART MANAGER: Session opened.
MSI (s) (C0:08) [10:11:15:191]: PROPERTY CHANGE: Modifying TRANSFORMS property. Its current value is 'Genetec_Omnicast_Client_4_8_2201_19_B2.mst'. Its new value: '*26*Microsoft\Installer\{410ED13C-DBAD-4228-9A77-D90AF1CB6B07}\Genetec_Omnicast_Client_4_8_2201_19_B2.mst'.
MSI (s) (C0:08) [10:11:15:191]: TRANSFORMS property is now: *26*Microsoft\Installer\{410ED13C-DBAD-4228-9A77-D90AF1CB6B07}\Genetec_O
Property(S): DisplayNameCustom = Custom
Property(S): DisplayNameMinimal = Minimal
Property(S): DisplayNameTypical = Typical
Property(S): ErrorDialog = SetupError
Property(S): FIREWALLEXCEPTIONLIST = [INSTALLDIR]ConfigTool.exe;[INSTALLDIR]LiveViewer.exe;[INSTALLDIR]ArchivePlayer.exe
Property(S): FIXEDRIVEFOUND = no
Property(S): INSTALLLEVEL = 100
Property(S): ISSCRIPT_VERSION_MISSING = The InstallScript engine is missing from this machine. If available, please run ISScript.msi, or contact your support personnel for further assistance.
Property(S): ISVROOT_PORT_NO = 0
Property(S): IS_PROGMSG_XML_COSTING = Costing XML files...
Property(S): IS_PROGMSG_XML_CREATE_FILE = Creating XML file %s...
Property(S): IS_PROGMSG_XML_FILES = Performing XML file changes...
Property(S): IS_PROGMSG_XML_REMOVE_FILE = Removing XML file %s...
Property(S): IS_PROGMSG_XML_ROLLBACK_FILES = Rolling back XML file changes...
Property(S): IS_PROGMSG_XML_UPDATE_FILE = Updating XML file %s...
Property(S): IS_SQLSERVER_DIALOG = 0
Property(S): InstallChoice = AR
Property(S): Manufacturer = Genetec Inc.
Property(S): MsiLogging = voicewarmupx
Property(S): NET_FRAMEWORK_WIN7_MSG = Microsoft .Net Framework 3.5 SP1 must be turned on in order to continue with the installation. For information on how to do this, please see your Omnicast Installation and Upgrade Guide.
Property(S): NumOfLanguages = 0
Property(S): OMNICAST_REGISTRY_ROOT = SOFTWARE\Genetec\Genetec Omnicast4.8
Property(S): PIDTemplate = 12345<###-%%%%%%%>@@@@@
Property(S): PROGMSG_IIS_CREATEAPPPOOL = Creating application pool %s
Property(S): PROGMSG_IIS_CREATEAPPPOOLS = Creating application Pools...
Property(S): PROGMSG_IIS_CREATEVROOT = Creating IIS virtual directory %s
Property(S): PROGMSG_IIS_CREATEVROOTS = Creating IIS virtual directories...
Property(S): PROGMSG_IIS_CREATEWEBSERVICEEXTENSION = Creating web service extension
Property(S): PROGMSG_IIS_CREATEWEBSERVICEEXTENSIONS = Creating web service extensions...
Property(S): PROGMSG_IIS_EXTRACT = Extracting information for IIS virtual directories...
Property(S): PROGMSG_IIS_EXTRACTDONE = Extracted information for IIS virtual directories...
Property(S): PROGMSG_IIS_REMOVEAPPPOOL = Removing application pool
Property(S): PROGMSG_IIS_REMOVEAPPPOOLS = Removing application pools...
Property(S): PROGMSG_IIS_REMOVESITE = Removing web site at port %d
Property(S): PROGMSG_IIS_REMOVEVROOT = Removing IIS virtual directory %s
Property(S): PROGMSG_IIS_REMOVEVROOTS = Removing IIS virtual directories...
Property(S): PROGMSG_IIS_REMOVEWEBSERVICEEXTENSION = Removing web service extension
Property(S): PROGMSG_IIS_REMOVEWEBSERVICEEXTENSIONS = Removing web service extensions...
Property(S): PROGMSG_IIS_ROLLBACKAPPPOOLS = Rolling back application pools...
Property(S): PROGMSG_IIS_ROLLBACKVROOTS = Rolling back virtual directory and web site changes...
Property(S): PROGMSG_IIS_ROLLBACKWEBSERVICEEXTENSIONS = Rolling back web service extensions...
Property(S): ProductID = none
Property(S): ProductLanguage = 1033
Property(S): REBOOT = ReallySuppress
Property(S): ProductName = Genetec_Omnicast_Client_4_8_2201_19_B2
Property(S): ProgressType0 = install
Property(S): ProgressType1 = Installing
Property(S): ProgressType2 = installed
Property(S): ProgressType3 = installs
Property(S): RebootYesNo = No
Property(S): ReinstallModeText = omus
Property(S): SHOWLAUNCHPROGRAM = 0
Property(S): MSIFASTINSTALL = 2
Property(S): SecureCustomProperties = OLDVERDETECTED;SUPPORTDIR;OLDSAMEVERSIONDETECTED;CREATE_FIREWALL_RULES;INSTALLDIR
Property(S): ISReleaseFlags = GENETEC,NoFlag
Property(S): ARPINSTALLLOCATION = C:\Program Files (x86)\Genetec Omnicast Client 4.8\
Property(S): WindowsBuild = 7601
Property(S): VersionNT64 = 601
Property(S): VersionMsi = 5.00
Property(S): AdminUser = 1
Property(S): VersionDatabase = 110
Property(S): CLIENTPROCESSID = 2900
Property(S): CLIENTUILEVEL = 3
Property(S): PRODUCTLANGUAGE = 0
Property(S): LIMITUI = True
Property(S): COMPANYNAME = Yarra Trams
Property(S): ARPNOREMOVE = 1
Property(S): USERNAME = Yarra Trams
Property(S): ROOTDRIVE = C:\
Property(S): PackageCode = {AA766C40-990C-4B24-8E72-068FFF4D646D}
Property(S): TRANSFORMS = *26*Microsoft\Installer\{410ED13C-DBAD-4228-9A77-D90AF1CB6B07}\Genetec_Omnicast_Client_4_8_2201_19_B2.mst
Property(S): CURRENTDIRECTORY = C:\Windows\ccmcache\9i
Property(S): ProductState = 1
Property(S): MsiLogFileLocation = c:\temp\Genetec_Omnicast_Client_4_8_2201_19_B2.log
Property(S): ARPNOMODIFY = 1
MSI (s) (C0:08) [10:11:16:176]: Deferring clean up of packages/files, if any exist
MSI (s) (C0:08) [10:11:16:176]: MainEngineThread is returning 1603
MSI (s) (C0:E0) [10:11:16:178]: RESTART MANAGER: Session closed.
MSI (s) (C0:E0) [10:11:16:178]: No System Restore sequence number for this installation.
=== Logging stopped: 12/03/2015 10:11:16 ===
MSI (s) (C0:E0) [10:11:16:185]: User policy value 'DisableRollback' is 0
MSI (s) (C0:E0) [10:11:16:185]: Machine policy value 'DisableRollback' is 0
MSI (s) (C0:E0) [10:11:16:185]: Incrementing counter to disable shutdown. Counter after increment: 0
MSI (s) (C0:E0) [10:11:16:185]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (C0:E0) [10:11:16:186]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (C0:E0) [10:11:16:186]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1
MSI (s) (C0:E0) [10:11:16:187]: Restoring environment variables
MSI (s) (C0:E0) [10:11:16:187]: Destroying RemoteAPI object.
MSI (s) (C0:00) [10:11:16:187]: Custom Action Manager thread ending.
MSI (c) (54:B8) [10:11:16:188]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1
MSI (c) (54:B8) [10:11:16:188]: MainEngineThread is returning 1603
=== Verbose logging stopped: 12/03/2015 10:11:16 ===
MSI (s) (C0!24) [10:11:16:100]: Note: 1: 2715 2: notescfg.dll.DA2174F6_7851_4AC9_8758_F2A803F82287
MSI (s) (C0!24) [10:11:16:100]: Note: 1: 2711 2: wcsdsapi.dll.413A0FA5_373A_11D4_91AE_009027A76C22
SaveTableToIniFile: Table SeagateWebMimeType doesn't exist
Couldn't get component state for component "wcsdsapi.dll.413A0FA5_373A_11D4_91AE_009027A76C22".uReturn 1607
MSI (s) (C0:08) [10:11:16:101]: Doing action: ISSQLServerRollback
Action ended 10:11:16: GetWebInfo.A95D0BB4_0582_442D_B456_D295EAEB7628. Return value 1.
MSI (s) (C0:08) [10:11:16:102]: Transforming table CustomAction.
MSI (s) (C0:08) [10:11:16:102]: Note: 1: 2235 2: 3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'ISSQLServerRollback'
MSI (s) (C0:08) [10:11:16:103]: Transforming table CustomAction.
MSI (s) (C0:08) [10:11:16:103]: Transforming table Binary.
Action start 10:11:16: ISSQLServerRollback.
MSI (s) (C0:08) [10:11:16:107]: Doing action: SxsInstallCA
Action ended 10:11:16: ISSQLServerRollback. Return value 1.
MSI (s) (C0:08) [10:11:16:108]: Transforming table CustomAction.
MSI (s) (C0:08) [10:11:16:108]: Note: 1: 2235 2: 3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'SxsInstallCA'
MSI (s) (C0:08) [10:11:16:109]: Transforming table CustomAction.
MSI (s) (C0:08) [10:11:16:110]: Transforming table Binary.
MSI (s) (C0:3C) [10:11:16:119]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSIBBCF.tmp, Entrypoint: CustomAction_SxsMsmInstall
Action start 10:11:16: SxsInstallCA.
1: sxsdelca 2: traceop 3: 1262 4: 0
1: sxsdelca 2: traceop 3: 1263 4: 0
1: sxsdelca 2: traceop 3: 1264 4: 0
1: sxsdelca 2: traceop 3: 1269 4: 0
MSI (s) (C0!60) [10:11:16:123]: Product: Genetec_Omnicast_Client_4_8_2201_19_B2 -- 1: ALLUSERS property is not 1 - this MSM cannot be used for a per-user or fallback-to-per-user install 2:
1: ALLUSERS property is not 1 - this MSM cannot be used for a per-user or fallback-to-per-user install
1: sxsdelca 2: SxsMsmInstall completed 3: 0 4: -2147467263
CustomAction SxsInstallCA returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
MSI (s) (C0:08) [10:11:16:133]: Machine policy value 'DisableRollback' is 0
MSI (s) (C0:08) [10:11:16:133]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
Action ended 10:11:16: SxsInstallCA. Return value 3.
MSI (s) (C0:08) [10:11:16:134]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (C0:08) [10:11:16:134]: No System Restore sequence number for this installation.
MSI (s) (C0:08) [10:11:16:134]: Unlocking Server
MSI (s) (C0:08) [10:11:16:141]: Transforming table InstallExecuteSequence.
Action ended 10:11:16: INSTALL. Return value 3.
SCCM Deployment Technician -
OSD HTA and Task Sequence Variable
Have a unusual issue that I cannot seem to find a answer anywhere or if it's even possible. I'm am very aware on how to setup a HTA to pass variables to the Task Sequence but there is a point where I want the HTA to display the current value of a TS Variable(s).
It's a custom variable that is set on a prior step via a VB script. Anyone know of a simple way to call and display the value in HTML/HTA.The variables are available using the same COM Object that you use to set them: Microsoft.SMS.TSEnvironment. The below VBScript will dump every variable to the screen. You can take this and just add it something you've displayed in your HTA like a static
control or text box.
Set env = CreateObject("Microsoft.SMS.TSEnvironment")
Wscript.echo "Dump of All Task Sequence Variables"
For Each TSvar In env.GetVariables
Wscript.echo "Variable " & TSvar & " = " & env(TSvar)
Next
Jason | http://blog.configmgrftw.com | @jasonsandys -
SCCM OSD Task sequence variables via Powershell.
Hi,
I am trying to come up with a genernic function to read
SCCM 2012 OSD task sequence variables where
I can pass a varibale name:
Is this the correct way of doing it below?
Thanks,
Ward
# fnRead_SCCM_Variable
function fnRead_SCCM_Variable($sccm_variable)
$tsenv = New-Object -COMObject Microsoft.SMS.TSEnvironment
$data = $tsenv.Value($sccm_variable)
return $data
$log_path = fnRead_SCCM_Variable "_SMSTSLogPath"That should do the trick. For a nice blog post about the usage of task sequence variables in PowerShell, see:
http://blogs.technet.com/b/mniehaus/archive/2009/09/22/running-powershell-scripts-as-part-of-a-task-sequence.aspx
My Blog: http://www.petervanderwoude.nl/
Follow me on twitter: pvanderwoude -
UDI Wizard - Task Sequence Variables.
Quick question :-)
How are the variables defined in UDI applied during an OS installation ?
And does it take precedence over Collection variables ?
Thx
RgdsNot sure what you about "how they are applied"? Variables, aren't "applied", they are set. Variables simply contain a value and typically "something" uses the value of the variable. Now, what that "something" is depends
upon the variable itself (if anything -- just because a variable has a value doesn't mean anything actually uses that value). And what that "something" does with the value is up to that "something".
Many -- not all task sequence variables -- are used by the various processes/exes that correspond to the various steps in the task sequence. In fact, all the task sequence editor does is set a bunch of variables that are in turn used by the steps in your
task sequence (the task itself is represented by a variable).
Thus, any values you set in the TS editor are set at "design" time and passed to the TS engine when it starts on a target client. Any values set during the execution of the TS are "run" time variables and will over write the value of
any like named variables created before they are set including design time variables since they were set at the beginning of the TS.
Collection variables, like design time variables, are set at the start of the TS execution and thus are over-written by any subsequent setting of the same variable within the execution of the TS.
Jason | http://blog.configmgrftw.com | @jasonsandys -
AD Search plus access to task sequence variables via powershell.
Hi,
I would like to an Active Directory search in a SCCM task sequence.
Now there are two ways I can do this run the powershell script
as a domain user - in the task sequence step.
Or do something fancy in the script itself so the task sequence step
runs as system then does a kind of connect as to do the AD search.
The reason I am asking this is I want to know if the task sequence
variables are available of I run the powershell script as user
account from the task sequence UI.
Or can I only get at them if I am running them as the system context.
Thanks,
WardFirst, answer to your question: if you run an action as a different user in a task sequence (which can only be done after you leave WinPE), you lose the ability to read the task sequence variables. You'll get empty strings for every variable you query.
Now there are several ways of getting this accomplished and it all depends on what stage of the task sequence you want to invoke something like this/what you want to do in AD.
If just want to query AD then, by default, you don't need any special rights as any domain user can do it.
If you want to modify something in AD then you need to be a bit more creative.
1. If you want to run this script after the computer has joined the domain, you don't need to mess around with permissions, as any network actions will be run using the computer object on the network. As far as AD is concerned it will use ComputerName$
account. Though obviously you'll only have read rights.
2. Use the network access account credentials, the username/password for the account are saved onto task sequence variables so you can easily read it. The script itself would still run under the system context, but when you establish a connection
to AD you pass the username/password of the user to connect as. Again, you'd only have read rights.
3. If you want to modify something in AD and the task sequence has already left WinPE, then you can use the 'run as a different user' option in the 'run command' action in the SCCM task sequence. This will force the whole script to run under the context
of the user you specified, which obviously gives you whatever rights you want, including ability to modify something in AD, but you completely lose access to task sequence variables. If you try to query any of them you just get an empty string. A way around
this is to make the variables you know you will need as part of your script in parameters. So for example you call your script as: MyScript.ps1 -MP %_SMSTSMP% to pass the variable _SMSTSMP to your script as a parameter. You can only specify 'run as a different
user' if the task sequence is not in WinPE though.
4. You could use a slight variation of option 2 if you need to modify AD. Instead of using the NAA account use the username/password of an account you specify. The action still runs under system context, but the connection to AD runs with the account
you specify. As a result, this also works in WinPE, and you have no problems accessing task sequence variables. The only problem with this one though... is how to safely pass the credentials over, and that's a big tricky problem.
As you can see, there's several ways of getting things done, but they all have caveats :)
Hope this helps. -
How does a script know its in a task sequence?
I want to pass a variable back to a task sequence from a script. This script is in a package, and could be run as an advert or from the TS. If I try to enable Microsoft.SMS.TSEnvironment and I'm not in a TS, it will generate an error.
Is there a way I can KNOW that I'm in a TS prior to doing so?The only definitive test that I know of and use in my code is to try and create the COM object and if it fails, I know the script is not being executed in a TS -- you simply need to handle the COM object creation failure gracefully.
Jason | http://blog.configmgrftw.com -
This is the first time i have encountered a laptop straight from OEM with two physical SATA disks (Disk 0 = 256gb SSD, disk 1 = 750GB HDD). [this might not be relevant, but as all other machines are working fine with this TS+WIM, i will mention it.]
During the task sequence, after the WIM is applied and the device reboots, the Windows setup fails and displays a general Unattend error (stating the specialized pass has failed) There is no unattend.xml specified in the apply operating system image step,
so the only unattend.xml is the one generated by the task sequence.
When looking at the C:\Windows\Panther\Unattend\Unattend.xml everything seems OK to me.
Here is the end of the setupact.log
2015-03-10 16:21:07, Info [setup.exe] [Action Queue] : Command Line = C:\WINDOWS\SYSTEM32\RUNDLL32.EXE / arguments = shsetup.dll,SHUnattendedSetup / pass = specialize / manifest path = C:\WINDOWS\Winsxs\Manifests\amd64_microsoft-windows-shell-setup_31bf3856ad364e35_6.1.7601.17514_none_3080d81b003fb8dd.manifest
2015-03-10 16:21:07, Info [setup.exe] [Action Queue] : Command Line = C:\WINDOWS\SYSTEM32\DJOIN.EXE / arguments = / pass = specialize / manifest path = C:\WINDOWS\Winsxs\Manifests\amd64_microsoft-windows-unattendedjoin_31bf3856ad364e35_6.1.7601.17514_none_113aea0e8374286d.manifest
2015-03-10 16:21:07, Info [setup.exe] [Action Queue] : Command Line = C:\WINDOWS\SYSTEM32\SETUPUGC.EXE / arguments = / pass = specialize / manifest path = C:\WINDOWS\Winsxs\Manifests\amd64_microsoft-windows-deployment_31bf3856ad364e35_6.1.7600.16385_none_57e3e87206ff08ca.manifest
2015-03-10 16:21:07, Info [setup.exe] [Action Queue] : Executing command "C:\WINDOWS\SYSTEM32\RUNDLL32.EXE" shsetup.dll,SHUnattendedSetup specialize
2015-03-10 16:21:07, Info [setup.exe] [Action Queue] : process exit code = 4
2015-03-10 16:21:07, Error [setup.exe] [Action Queue] : Unattend action failed with exit code 4
2015-03-10 16:21:07, Info [setup.exe] [Action Queue] : ProcessActionQueue finish (hr = 0x1f2000)
2015-03-10 16:21:07, Error [setup.exe] Execution of unattend GCs failed; hr = 0x0; pResults->hrResult = 0x8030000b
2015-03-10 16:21:07, Info [0x0606cc] IBS Flushing registry to disk...
2015-03-10 16:21:07, Info [0x0606cc] IBS Flush took 46 ms.
2015-03-10 16:21:07, Warning IBS Callback_Unattend_InitiatePass: Runtime error occurred while applying unattend answer file; hrResult = 0x8030000b
2015-03-10 16:21:07, Info IBS UnattendErrorFromResults: Hit an unattend error; dumping any info we have about the failure...
2015-03-10 16:21:07, Info IBS UnattendDumpSetting: ------Unattend setting error / warning------
2015-03-10 16:21:07, Info IBS UnattendDumpSetting: Error code = 0x8030000b
2015-03-10 16:21:07, Info IBS UnattendDumpSetting: Pass = specialize
2015-03-10 16:21:07, Info IBS UnattendDumpSetting: Component name = [Microsoft-Windows-Shell-Setup]
2015-03-10 16:21:07, Info IBS UnattendDumpSetting: --------------------------------------------
2015-03-10 16:21:07, Info IBS UnattendErrorFromResults: Error text = Windows could not parse or process the unattend answer file for pass [specialize]. The settings specified in the answer file cannot be applied. The error was detected while processing settings for component [Microsoft-Windows-Shell-Setup].
2015-03-10 16:21:07, Info IBSLIB PublishCriticalError: Publishing critical error message [Windows could not parse or process the unattend answer file for pass [specialize]. The settings specified in the answer file cannot be applied. The error was detected while processing settings for component [Microsoft-Windows-Shell-Setup].]
2015-03-10 16:22:18, Info [0x070042] DIAG CallBack_DiagnosticDataSend: Called with notification for Error published by ErrorHandler
2015-03-10 16:22:18, Info DIAG CallBack_DiagnosticDataSend: Setup was started from Phase 4. Disabling Diagnostics [DiagnosticDataSend] in this scenario
2015-03-10 16:22:18, Info [0x090095] PANTHR WdsExitImmediate called! Execution will stop, and the queue won't be saved.
2015-03-10 16:22:18, Info [0x09008c] PANTHR SeqExecute -- stopping, since WdsExitImmediate() was called
2015-03-10 16:22:18, Info [0x090086] PANTHR pWorkerThreadFunc -- Stopping
2015-03-10 16:22:18, Info [0x090086] PANTHR pWorkerThreadFunc -- Stopping
2015-03-10 16:22:18, Info [0x090086] PANTHR pWorkerThreadFunc -- Stopping
2015-03-10 16:22:18, Info PANTHR DeleteCriticalSection for pExecQueue->csLock;
2015-03-10 16:22:18, Info [0x0605a6] IBS Requested UI to hide the language and locale selection pages.
2015-03-10 16:22:18, Info [0x090081] PANTHR Destroying any unreferenced modules! (SEQ6)
2015-03-10 16:22:18, Info [0x0601d7] IBS InstallWindows:Error Type = 3211266
2015-03-10 16:22:18, Info [0x090009] PANTHR CBlackboard::Close: c:\windows\panther\setupinfo.
The error code 0x8030000b is not recognised by cmtrace
Can anyone offer any ideas as to the cause of this?Here is the latest failure, i think it is still identical:
2015-03-18 15:19:48, Info [setup.exe] [Action Queue] : Executing command "C:\WINDOWS\SYSTEM32\RUNDLL32.EXE" shsetup.dll,SHUnattendedSetup specialize
2015-03-18 15:19:48, Info [setup.exe] [Action Queue] : process exit code = 4
2015-03-18 15:19:48, Error [setup.exe] [Action Queue] : Unattend action failed with exit code 4
2015-03-18 15:19:48, Info [setup.exe] [Action Queue] : ProcessActionQueue finish (hr = 0x1f2000)
2015-03-18 15:19:48, Error [setup.exe] Execution of unattend GCs failed; hr = 0x0; pResults->hrResult = 0x8030000b
2015-03-18 15:19:48, Info [0x0606cc] IBS Flushing registry to disk...
2015-03-18 15:19:48, Info [0x0606cc] IBS Flush took 110 ms.
2015-03-18 15:19:48, Warning IBS Callback_Unattend_InitiatePass: Runtime error occurred while applying unattend answer file; hrResult = 0x8030000b
2015-03-18 15:19:48, Info IBS UnattendErrorFromResults: Hit an unattend error; dumping any info we have about the failure...
2015-03-18 15:19:48, Info IBS UnattendDumpSetting: ------Unattend setting error / warning------
2015-03-18 15:19:48, Info IBS UnattendDumpSetting: Error code = 0x8030000b
2015-03-18 15:19:48, Info IBS UnattendDumpSetting: Pass = specialize
2015-03-18 15:19:48, Info IBS UnattendDumpSetting: Component name = [Microsoft-Windows-Shell-Setup]
2015-03-18 15:19:48, Info IBS UnattendDumpSetting: --------------------------------------------
2015-03-18 15:19:48, Info IBS UnattendErrorFromResults: Error text = Windows could not parse or process the unattend answer file for pass [specialize]. The settings specified in the answer file cannot be applied. The error was detected while processing settings for component [Microsoft-Windows-Shell-Setup].
2015-03-18 15:19:48, Info IBSLIB PublishCriticalError: Publishing critical error message [Windows could not parse or process the unattend answer file for pass [specialize]. The settings specified in the answer file cannot be applied. The error was detected while processing settings for component [Microsoft-Windows-Shell-Setup].]
2015-03-18 15:55:52, Info [0x070042] DIAG CallBack_DiagnosticDataSend: Called with notification for Error published by ErrorHandler
2015-03-18 15:55:52, Info DIAG CallBack_DiagnosticDataSend: Setup was started from Phase 4. Disabling Diagnostics [DiagnosticDataSend] in this scenario
2015-03-18 15:55:52, Info [0x090095] PANTHR WdsExitImmediate called! Execution will stop, and the queue won't be saved.
2015-03-18 15:55:52, Info [0x09008c] PANTHR SeqExecute -- stopping, since WdsExitImmediate() was called
2015-03-18 15:55:52, Info [0x090086] PANTHR pWorkerThreadFunc -- Stopping
2015-03-18 15:55:52, Info [0x090086] PANTHR pWorkerThreadFunc -- Stopping
2015-03-18 15:55:52, Info [0x090086] PANTHR pWorkerThreadFunc -- Stopping
2015-03-18 15:55:52, Info PANTHR DeleteCriticalSection for pExecQueue->csLock;
2015-03-18 15:55:52, Info [0x0605a6] IBS Requested UI to hide the language and locale selection pages.
2015-03-18 15:55:52, Info [0x090081] PANTHR Destroying any unreferenced modules! (SEQ6)
2015-03-18 15:55:52, Info [0x0601d7] IBS InstallWindows:Error Type = 3211266
2015-03-18 15:55:52, Info [0x090009] PANTHR CBlackboard::Close: c:\windows\panther\setupinfo. -
Fully automated Post OS Task Sequence
I'm trying to find a way to deploy a base OS VM from template and then call MDT to finish the config by running a post os task sequence. I'd like to be able to do this by either passing in paramaters or setting environment variables. I'd rather not get into
the mess of using a database or having lots of sections in the customsettings.ini because this will be pretty dynamic. Is there any way to call a specific task sequence after an OS is on a system without using a database or customsettings.ini?
Thanks,
RichYou have missed this thread:
Is there any way to launch a specific task sequence from
the command prompt?
And then I quote Johan Arwidmark's answer:
"Sure, all rules can also be added to the commandline, they are just formatted a little bit differently ( : instead of = for the values) ...
\\MDT01\MDTProduction$\Scripts\litetouch.vbs /TaskSequenceID:<whateverID>
/ Johan"
So you can create a vbs or cmd that calls the task sequence
If this post is helpful please click "Mark for answer", thanks! Kind regards -
Task Sequence If Statement for chosen DomainOUs ?
In my CustomSettings.ini I have five different "DomainOUs" lines which prompt whoever is running the Task Sequence to select an Org Unit while they're putting in the Computer Name.
To keep things as simple as possible, I'd like a single Task Sequence that includes multiple "Install Application" packages which get installed based on which OU the machine is in. Can
I use the "Options" tab of my various "Install Application" packages with
an "If Statement" that applies it based on which "DomainOUs" was
chosen earlier?
I know I can make five separate Task Sequences for each OU and have the five different "Install Application" packages in them, but I'd like to avoid that as when I go to
update a common app, I'd have to do that in all five Task Sequences as opposed to one.You can add an XML file with only the Language settings, that will bypass the language selection prompt.
Bear in mind that when you create the answer file with Windows System Image Manager, you have to use the same architecture (64 or 32) as the target image.
http://www.scconfigmgr.com/2014/01/30/create-an-answer-file-for-language-settings-during-osd-with-configmgr/
Please take a moment to Vote as Helpful and/or Mark as Answer where applicable. Thanks.
Maybe you are looking for
-
Error while connecting to external SQL table using BCS identity in SharePoint 2010
Hi all, I am working on SharePoint Foundation 2010. I have a stand alone setup. Now I am trying to connect to a SQL table in another server. I have used SharePoint Designer to connect using BCS. I have selected "BCS Identity" for authenticating with
-
Adobe Media Encoder - Random Coding Interrupts?
Greetings all - I've been a long time reader to this forum and thought I would bring a recent issue to the brilliant guys that Adobe seems to attract. First the details: Win 7 64bit AMD Athlon X2 250 ATI Radeon 5770 (1GB GDDR5) 3 gig RAM Standard iss
-
I have just taken delivery of my very first MacBook Pro so I am new to all that goes on under the cover. Can anyone tell me how I open the pre-installed programmes which are compatible with Word, Excel and Powerpoint? Thanks
-
Hello, When I try to join an custom game in Warcraft 3 TFT, the screen freezes and warcraft quits all of a sudden. this is happening with several people on mac. any ideas? Im on the latest ver of snow leopard, Imac core i7 27" thx
-
I am unable to synch my son's shuffle with his iTunes library - which we previously could do with older PC running XP2. Background New Dell machine with Vista, iTunes is installed (latest available version). Ported all songs from older machine via th