Windows 10 – Windows Updates troubleshooting

If you experience problems with Windows Updates and need to debug on the actual process, WindowsUpdates.log has always been a good place to start……… but not on Windows 10

According to Microsoft these steps are relevant only for the January Tech Preview of Windows 10.

Windows Update uses Event Tracing for Windows (ETW) to generate diagnostic logs. This method improves performance and reduces disk space usage. However, the logs are not immediately readable as written. To decode the resulting ETL files and create a log that you can read, follow these steps.

  1. Download the public symbols by following the directions here. Install these symbols to a directory such as C:\symbols.
  2. Download the Tracefmt.exe tool by following the instructions here.
  3. Open a command prompt with administrative rights.
  4. Create a temporary folder, such as %systemdrive%\WULogs.
  5. Locate the directory that contains Tracefmt.exe, as downloaded and installed in step 2. Then, copy Tracefmt.exe to %systemdrive%\WULogs.
  6. Run the following commands at a command prompt, in the order presented:
    • cd /d %systemdrive%\WULogs
    • copy %windir%\Logs\WindowsUpdate\* %systemdrive%\WULogs\
    • tracefmt.exe -o windowsupate.log <each windows update log delimited by space> -r c:\Symbols

For example, the last line might resemble the following:

tracefmt.exe -o windowsupate.log Windowsupdate.103937.1.etl Windowsupdate.103937.10.etl -r c:\Symbols

Lucky for us, we don’t always need to dig deep – there is a deprecated logfile we can use for now (January Tech Preview) WindowsUpdate_AU_deprecated.log

How To: Debug missing Drivers in MDT

Came across this great post by Keith Garner (http://ow.ly/JeHHD) on Microsoft Social forum

Its the most thorough debugging guide I’ve seen on drivers in MDT

How to debug Network Driver Problems

One of the earliest hurdles an MDT administrator will come across is the management of device drivers, specifically networking drivers. With most other drivers, like Audio, printer, and video drivers, a quick call to Windows Update or install over the network will resolve the Installation. However unless the Network (and storage) Drivers are installed into Windows from the start, it will be much more difficult to install the rest of the system.

This post should help you get started if you find a machine that did not install a device driver properly, and you want to know how to find and import the correct drivers.

Installing network drivers in the full OS

  • Step 1 – Try network connection again
    It’s possible that you might get a DHCP error from MDT, but when you try again later to connect the Deployment Share it works! This may be caused by a slow or malfunctioning DHCP server in your network. Re-check your DHCP servers, ensure that PortFast is enabled on your routers. If all else fails get your network administrators to document the DHCP delay. A long delay in modern networks is unnecessary.
  • Step 2 – Verify connectivity
    You may not have a driver problem but a network problem. Check the physical connection on the computer (Network installs on MDT *REQUIRE* a wired network connection, no Wi-Fi). Open a web browser. Check the IP Address (ipconfig.exe /all). Ping the Deployment Server, manually connect to the Deployment Share. IF you can’t connect to the Deployment Share, neither can MDT.
  • Step 3 – Find the Correct Driver Package
    Before you load the driver into MDT, first verify that you have the correct driver. There are scenarios where you may *think* you have the correct driver, but the driver will never run because the package is designed for a different OS/SKU/Platform/whatever. Install the driver package by:
    ○ Open the Device Manager (devmgmt.msc).
    ○ Find the network device in the list (ensure this is the wired device, not the wireless device)
    ○ Right click on “Properties” and click on the “Details” tab.
    ○ From the “Details” tab, select the property “Hardware Ids” select all the values, and copy to the clipboard, it would be a good idea to save for later. Should look something like:
    PCI\VEN_8086&DEV_1502&SUBSYS_21F317AA&REV_04
    PCI\VEN_8086&DEV_1502&SUBSYS_21F317AA
    PCI\VEN_8086&DEV_1502&CC_020000
    PCI\VEN_8086&DEV_1502&CC_0200
    ○ From the “Driver” tab, click on “Update Driver…”, click on “Browse my computer for driver software” locate the driver package on the local machine or USB Drive, and install the package.
    ○ You should get a confirmation that the driver package was installed.
    ○ IF you do not get confirmation, MDT driver installation may not work.

Windows will install the driver starting with the *.inf install package, and will typically include a *.sys (binary) and a *.cat (digital Signature). If the driver package has been re-packaged into a *.cab, *.zip, or other compressed *.exe file, the package must be extracted first. This is a hard requirement for any driver used by MDT and/or SCCM. All driver packages that are signed by Microsoft (WHQL) will be installed from the *.inf file, and you should only use devices that have the Microsoft WHQL Logo as a sign of quality.

If you need a help on where to find driver packages for your devices, the 3 largest Computer OEM manufacturers supply drivers grouped by Make and Model that are easily imported into MDT and SCCM. See: http://deploymentbunny.com/2014/07/08/back-to-basicwhere-to-find-drivers-for-servers-and-clients/

  • Step 4 – Load driver into MDT
    If you have more than 20 driver packages, or if you anticipate you will have more than 20 drivers, you should start grouping your drivers in sub-folders for organization. One popular method is to group by Computer Make and Model. Ensure that you are using the correct Driver Selection Profile in your task sequence. If you are unsure, disable any selection profile(s) to ensure the driver is installed correctly.
  • Step 5 – Run the full MDT installation
    During installation MDT will perform the following:
    ○ Run the PNPEnum.exe utility and capture output to PnPEnum.xml. The VEN_Xxxx and DEV_Yyyy from the “HardwareIDs” property above must be present in this list. Otherwise we won’t have a match.
    ○ Search through the %DeployRoot%\control\drivers.xml file looking for a match for the HardwareID. MDT may filter the search based on the folder search type.
    ○ MDT will copy each matching driver to the local c:\drivers directory using the xcopy.exe command. You can search (grep) for the string “xcopy” in the ZTIDrivers.log file, that will get you list of all driver packages matched by MDT.
    ○ MDT will allow the machine to boot into the NEW OS, and Driver Installation will begin in the OS. IF there are multiple drivers found and copied locally, the Windows (not MDT) will determine the best one. The c:\windows\inf\SetupAPI.*.log files will detail which drivers copied locally were installed (or *not* installed).

Installing Network Drivers in WinPE

  • Step 6 – Try the network connection again
    (See above
  • Step 7 – Verify Connectivity from within WinPE
    Verifying network connectivity will be a bit more difficult in WinPE, since we have a limited User Interface, so all investigation must be done in the debugging mode (Press F8) cmd.exe
    ○ Try connecting to the Deployment Share:
    c:\> net use * \\MDT\DeploymentShare$ /u:UserDomain\UserName *
    ○ Try pinging the Deployment Server:
    c:\> Ping.exe MDT.Corp.contoso.com
    ○ Verify that you have an IP address ( ipconfig /all ) If you have an AutoConfiguration address – Driver OK – WinPE can’t reach the DHCP server. If you have “Media Disconnected” – Driver OK – Physical adapter not plugged to network. If no devices are listed – Driver bad – Driver not installed.
    ○ Check the x:\windows\system32\WpeInit.log – This log will show the network driver (if found) being installed.
  • Step 8 – Verify driver packages are getting included into WinPE
    Firstly, verify the correct driver package from within the full OS above. By default MDT will import *all* Storage and Networking drivers into your WinPE image. However it is possible to change the subset of files copied via “Selection Profile” or other method. Cross check your WinPE Driver Settings.
    ○ From within the MDT console, right click on the root of your Deployment Share and select properties.
    ○ Click on the “Windows PE” tab, and the “Drivers and Patches” sub tab for both x86 and x64.
    ○ Your Network Drivers package must be in the “Selection Profile” if enabled.Finally verify that the correct Network Driver package is being copied to WinPE. If necessary this may include setting up a debugger to watch the MDT Provider build the WinPE Image from scratch. My preference is to use the SysInternals  http://live.sysinternals.com/Dbgview.exe tool.
    ○ Open up the MDT console.
    ○ Download and run the DbgView.exe tool.
    ○ Update the deployment share in question.
    ○ The DbgView tool should show what drivers were copied to each WinPE Image.

Other

  • Whenever you add a driver into the MDT console, you must update the deployment share for that drivers to be added to your WinPE Image. If you are unsure, select “Completely regenerate the boot images.” to ensure the drivers is imported. Additionally, you must copy the updated LitetouchPE_x??.wim and *.iso files to the other consumers of the WinPE image like WDS/PXE and or any USB offline media.
  • Note that some Broadcom NetXtreme class of drivers have a multi-function driver architecture that may have difficulty loading in WinPE. Ensure that you load the “RIS” class of drivers from Broadcom in your MDT environment.
  • Note that by default MDT does *NOT* support the installation of Windows over Wireless network devices (Wi-Fi). The MDT installation sources must either be available through wired networking, or offline (USB Flash) media.
  • This post does not discuss origination of drivers within MDT ( Chaos vs. Total Control ), that is a different topic. http://www.deploymentresearch.com/Research/tabid/62/EntryId/112/MDT-2013-Lite-Touch-Driver-Management.aspx

Further Help

If you are still having problems with drivers in via MDT, ask the experts in the MDT Technet Forum:

  • Include a short description of the problem. Including the Make/Mode if necessary.
  • Include the HardwareIDs from the Device Manager (Devmgmt.msc) into the post (from above).
  • Copy your known good driver package (step 3 above) to OneDrive.
  • Copy the following log files to a public site like OneDrive and include the link:
    ○ PnpEnum.xml (from Client)
    ○ Bdd.log (From Client) – or at least the ZTIDrivers.log file.
    ○ c:\windows\inf\SetupAPI.*.log (from client)
    ○ %DeployRoot%\control\Driver*.xml
    ○ %DeployRoot%\control\SelectionProfile*.xml
    ○ %DeployRoot%\control\settings.xml (if problems in WinPE)
    ○ x:\windows\System32\WpeInit.log (if problems in WinPE)
    ○ If the MDT server is not including your driver package in WinPE include the DBGView log.

Advanced Installer

For many years I’ve been working with Wise Package Studio, the best tool ever for application repackaging projects. Since Wise Package Studio is End of life – announced in December 2011. Now seemed like a good time to find a new tool, Flexera Admin Studio seemed like the obvious choice, but is rather expensive (still a great tool)

In some cases Orca (http://www.technipages.com/download-orca-msi-editor) would get the job done, but still would take a long time

I remembered coming across Advanced Installer at TechEd NA, so decide to have a look at the tool

There is a free trial from the website and also a free version: http://www.advancedinstaller.com/download.html

Advanced Installer comes in multiple versions, I choose to test the Architect version, mainly because it had the following features highlighted

  • Repacker
  • App-V
  • SCCM
  • MSI Quick-Edit

My test of the product was a great success !

Today I will recommend this product to my customers looking to repackage or edit MSI’s, it has a nice and intuitive interface, much like Wise Package Studio had 😉

Have a look at some of the videos from Advanced Installer on YouTube: https://www.youtube.com/channel/UCIPx2SPC1K7_DoPdVeFHoNg

 

 

Application repackaging – Active Setup & Windows Installer Repair

If you repackage or deploy applications you need to know about Active Setup and Windows Installer Repair

The best methods are documented first, but also other alternative ways.

Method I

Active Setup Method:

This is one of the best practices in MSI Packaging which uses the native Active Setup behavior of Windows and Windows Installer HKCU keys repair techniques.

One should follow these specific steps while using this method:

  1. Make sure all HKCU keys in the MSI Package that we are creating are under structured component names like CurrentUser, CurrentUser1, etc.
  2. The Package author should be able to judge and set the key path for that Component properly.
  3. As per Microsoft Component guidelines, make sure the components containing HKCU keys are as few in count as possible, for example only one component (CurrentUser) with all HKCU keys with best key path set is the best practice.
  4. Create the following registry keys under the main hive:
  1. HKLMSoftwareMicrosoftActive SetupInstalled Components{GUID of the MSI}
  2. ComponentID=PackageName_ComponentName
  3. StubPath=[SystemFolder]msiexec.exe /fu {Product Code of the MSI} /q
  4. Version=ProductVersion

The principle of Active Setup behavior is when a new user logs on for the first time, then the Active Setup will perform a checksum between HKLMSoftwareMicrosoftActive SetupInstalled Components{GUID of the MSI} and HKCUSoftwareMicrosoftActive SetupInstalled Components{GUID of the MSI}; and if the GUID is not present under HKCU, then it performs all actions which are under that main hive (StubPath, Version) and populates the GUID under HKCU. The main Advantage of Active Setup is it performs an action only once per User with the Checksum behavior by matching the entries under HKLM and HKCU.

Method II

Active Setup Method:

This method can be used for both MSIs and Non-MSIs

Create a silent SMS script or Wise Script (for eg:-Script.exe) which will create the needed HKCU registry entries for the application. Then place that EXE in the Application [INSTALLDIR] in your MSI Pkg or Executable binary memory.

Then create the following additional registry entries in the MSI Package or within the Script whichever is applicable:

HKLMSoftwareMicrosoftActive SetupInstalled Components{GUID or AppName}

ComponentID=PackageName_ComponentName

StubPath=”[INSTALLDIR]Script.exe”

Version=ProductVersion

 

The Active Setup performs the regular checksum (comparison of entries under) HKLM and HKCU and if the respective unique GUID or AppName is not present under HKCU hive, then it will perform all actions (StubPath, Version) and populates the GUID or AppName under HKCU hive too. This is only once per user — for the first time — to populate HKCU hive.

Method I and method II use the Active Setup feature, and One should understand the advantages of one over the other. Method I requires source resiliency to populate HKCU keys, where as method II does not require this as the Script.exe does everything.

Method I and method II can be used in any scenarios like if Advertised entry points are present or NOT present.

Method III

Windows Installer repair method

Typically the body of the script will be;

Check for the existence of a Flag key under
HKCUSoftwareCompany NameApplications{ProductName][productversion]
Installed=True

If the key exists then quit else initiate the Windows Installer repair to populate HKCU keys:

Msiexec /fu {Product Code of the MSI} /q

 

And edit and create registry key (Basically a Flag Key which can be any key which your firm adopts)
HKCUSoftwareXYZ*Applications{ProductName][productversion]
Installed=True
End
* XYZ= Name of the organization Company
And keep this script exe in HKLMSoftwareMicrosoftWindowsCurrentVersionRun.

One should keep in mind that the /p switch can also be used to repair files (populate) user-specific data (Profile data) with the following syntax:

Msiexec /fup {Product Code Of the MSI) /q

 

Method IV

Silent empty exe with valid shortcut:

Create a silent empty exe and its Advertised shortcut and place both of them in the Application [INSTALLDIR]. And use them as entry points to trigger healing to populate HKCU keys.

Microsoft System Center 2012 R2 Configuration Manager – Clients for Additional Operating Systems has been updated

The Clients for Additional Operating Systems allow you to manage Apple Mac, UNIX and Linux computers using System Center 2012 R2 Configuration Manager

Version:
Date Published:
1.0.0.7020 10/23/2013
File name:
File size:
ConfigMgr Clients for Linux.exe 46.7 MB
ConfigMgr Clients for AIX.exe 115.7 MB
ConfigMgr Clients for HP-UX.exe 49.0 MB
ConfigMgr Clients for Solaris.exe 57.2 MB
ConfigmgrMacClient.msi 5.4 MB

Microsoft System Center 2012 R2 Configuration Manager supports the management of Apple Mac clients. The client for Mac computers allows you to discover Mac OS X devices, collect inventory, manage settings, and deploy applications and patches using your Configuration Manager environment.
Microsoft System Center 2012 R2 Configuration Manager supports the management of UNIX and Linux servers. The clients for UNIX and Linux extends the scope of your Configuration Manager environment to collect inventory, deploy software, and run reports about UNIX and Linux servers in your enterprise. The client operates as a workgroup client that is managed by Configuration Manager.
Mac Client: The following Mac versions are supported in this release:

  • Mac OS X 10.6 (Snow Leopard)
  • Mac OS X 10.7 (Lion)
  • Mac OS X 10.8 (Mountain Lion)

The following scenarios are supported through the Mac client in Microsoft System Center 2012 R2 Configuration Manager Preview:

  • Discovery – Discovers Mac OS X system in Active Directory and through network discovery
  • Hardware Inventory – Provides hardware inventory and auditing of computers running Mac OS X, including a list of installed software similar to add/remove programs for Windows systems.
  • Settings Management – Ensures computers running Mac OS X comply with company policies using scripts and preference list management.
  • Application Deployment – Distributes required software via app model.
  • Software Updates Management – Distributes patches utilizing Software Distribution and Settings management features.

UNIX/Linux Client: The following UNIX and Linux versions are supported in this release.

  • AIX Version 7.1, 6.1, 5.3
  • Solaris Version 11, 10, 9
  • HP-UX Version 11iv2 , 11iv3
  • RHEL Version 6 , 5, 4
  • SLES Version 11, 10, 9
  • CentOS Version 6, 5
  • Debian Version 6, 5
  • Ubuntu Version 12.4 LTS, 10.4 LTS
  • Oracle Linux 6, 5

The following scenarios are supported by the UNIX and Linux clients:

  • Hardware Inventory – Hardware inventory can be viewed through Resource Explorer and can be used to create collections of UNIX and Linux computers.
  • Software Inventory – Through hardware inventory the list of natively installed software can be gathered from the UNIX and Linux computers – similar to add/remove programs for Windows systems.
  • Software Distribution – Deploy new software, update existing software and apply OS patches to collections of UNIX/Linux computers (using a package and program). Run arbitrary maintenance scripts on a collection of UNIX/Linux servers.
  • Secure and Authenticated Communications
  • Consolidated Reports

http://www.microsoft.com/en-us/download/details.aspx?id=39360

 

Task Sequence Fails in Configuration Manager if Software Updates Require Multiple Reboots

 

If a Configuration Manager Task Sequence that leverages the Install Software Updates step installs a software update that triggers multiple reboots, after successfully running the Install Software Updates task, the task sequence can fail with the following error message:

“Task Sequence environment not found”
To resolve this issue, we recommend that you apply any updates that require dual restarts by using the usual Software Updates feature of Configuration Manager instead of using task sequences. The following software updates were reported as requiring multiple restarts. This article will be updated as more updates are reported.
2862330

(http://support.microsoft.com/kb/2862330/ )

MS13-081: Description of the security update for 2862330: October 8, 2013

2771431

(http://support.microsoft.com/kb/2771431)

A servicing stack update is available for Windows 8 and Windows Server 2012

2871777

(http://support.microsoft.com/kb/2871777)

A servicing stack update is available for Windows RT, Windows 8, and Windows Server 2012: September 2013

2821895

(http://support.microsoft.com/kb/2821895)

A servicing stack update is available for Windows RT and Windows 8: June 2013

2545698

(http://support.microsoft.com/kb/2545698/ )

Text in some core fonts appears blurred in Internet Explorer 9 on a computer that is running Windows Vista, Windows Server 2008, Windows 7, or Windows Server 2008 R2

2529073

(http://support.microsoft.com/kb/2529073/ )

Binary files in some USB drivers are not updated after you install Windows 7 SP1 or Windows Server 2008 R2 SP1

Read the full article: http://support.microsoft.com/kb/2894518

 

 

Download the Windows Assessment and Deployment Kit (ADK) for Windows 8.1

The Windows Assessment and Deployment Kit (Windows ADK) is a collection of tools that you can use to customize, assess, and deploy Windows operating systems to new computers.

Supported Operating System

To install the Windows ADK, your computer must be running one of the following operating systems:

• Windows 8.1
• Windows 8
• Windows 7
• Windows Server 2012 R2
• Windows Server 2012
• Windows Server 2008 R2

Direct Download Link: http://download.microsoft.com/download/6/A/E/6AEA92B0-A412-4622-983E-5B305D2EBE56/adk/adksetup.exe

After installing IE10, sysprep fail with error: SYSPRP LaunchDll:Could not load DLL C:WindowsSysWOW64iesysprep.dll[gle=0x000000c1]

This took me quite some time to figure out.

When running a build and capture task sequece from ConfigMgr, it won’t give any errors

Even after the image is captured and ready for re-deployment, the error appears when trying to run Setup Windows and Configmgr from a deployment task sequence. It would just break/stop right in the middel of that process, leaving your with pretty mush a useless deployment

Solution:

Set permission for group Administrators ( Full Control ) to

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSetupSysprepCleanup

Value Name

{EC9FE15D-99DD-4FB9-90D5-5B56E42A0F80}

Value Data

C:WindowsSysWOW64iesysprep.dll,Sysprep_Cleanup_IE

replace with

C:WindowsSystem32iesysprep.dll,Sysprep_Cleanup_IE

Set permission for group Administrators ( Full Control ) to

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSetupSysprepGeneralize

Value Name

{EC9FE15D-99DD-4FB9-90D5-CE53C91AB9A1}

Value Data

C:WindowsSysWOW64iesysprep.dll,Sysprep_Generalize_IE

replace with

C:WindowsSystem32iesysprep.dll,Sysprep_Cleanup_IE

Set permission for group Administrators ( Full Control ) to

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSetupSysprepSpecialize

Value Name

{EC9FE15D-99DD-4FB9-90D5-676C338DC1DA}

Value Data

C:WindowsSysWOW64iesysprep.dll,Sysprep_Cleanup_IE

replace with

C:WindowsSystem32iesysprep.dll,Sysprep_Cleanup_IE

setting this from a batch file:

IEhotfix.cmd:

regini -m \%computername% iesysprep.dll.txt  reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionSetupSysprepCleanup /v {EC9FE15D-99DD-4FB9-90D5-5B56E42A0F80} /t REG_SZ /d “C:WindowsSystem32iesysprep.dll,Sysprep_Cleanup_IE” /f  reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionSetupSysprepGeneralize /v {EC9FE15D-99DD-4FB9-90D5-CE53C91AB9A1} /t REG_SZ /d “C:WindowsSystem32iesysprep.dll,Sysprep_Cleanup_IE” /f  reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionSetupSysprepSpecialize /v {EC9FE15D-99DD-4FB9-90D5-676C338DC1DA} /t REG_SZ /d “C:WindowsSystem32iesysprep.dll,Sysprep_Cleanup_IE” /f

iesysprep.dll.txt

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSetupSysprepCleanup [1] HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSetupSysprepGeneralize [1] HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionSetupSysprepSpecialize [1]

Microsoft Deployment Toolkit 2013 Preview Now Available

MDT 2013 Preview includes:

  • Support for the Windows Assessment and Deployment Kit (ADK) for Windows 8.1 Preview. (The Windows ADK for Windows 8.1 Preview is available on the Microsoft Download Center.)´
  • Support for deployment of Windows 8.1 Preview and Windows Server 2012 R2 Preview, as well as Windows 7 and Windows 8 families of operating systems.
  • Support for zero-touch integration (ZTI) with System Center 2012 R2 Configuration Manager Preview.

Dont forget to sign up for the Client Management program on Connect in the MDT group.

 

http://connect.microsoft.com/ConfigurationManagervnext/Downloads/DownloadDetails.aspx?DownloadID=50082