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 Technician

    Hi 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
    Rgds

    Not 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,
    Ward

    First, 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

  • Device Fails Task Sequence at the Windows Setup Unattend Step, but No Unattend.xml is Specified

    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,
    Rich

    You 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