June, 2012

  • Two Minute Drill: Win32_QuickFixEngineering – No instances available

    Hello AskPerf! Michael Smith here with a quick post on what can cause Win32_QuickFixEngineering to return "No Instances Available". A captured Procmon log while running WMIC QFE or Enumerating Instances with WBEMTEST might reveal something similar to the below picture:


    Here it appears that WMI calls into the Servicing stack to get information about installed updates, which makes sense. So what happened? We can see TrustedInstaller could not find the mum file for KB2618444 and it started writing to the CBS.log. Since this seems to indicate a problem with Servicing we should run the System Update Readiness Tool, aka CheckSUR, and check the following logs:



    NOTE Sometimes simply running CheckSUR can resolve some of servicing issues it detects. In this particular case, CheckSUR could not find the mum files either.

    Let's take a look at the CheckSUR.persist.log below:

    Checking System Update Readiness.

    Binary Version 6.1.7601.21645

    Package Version 14.0

    2012-03-07 11:10

    Checking Windows Servicing Packages

    Checking Package Manifests and Catalogs

    Checking Package Watchlist

    Checking Component Watchlist

    Checking Packages

    (f) CBS MUM Missing 0x00000002 servicing\Packages\Package_for_KB2618444~31bf3856ad364e35~amd64~~

    (f) CBS MUM Missing 0x00000002 servicing\Packages\Package_for_KB2618451_RTM~31bf3856ad364e35~amd64~~

    Checking Component Store


    Seconds executed: 169

    Found 2 errors

    CBS MUM Missing Total count: 2

    Unavailable repair files:





    Here we can see that CheckSUR could not find these two mum files. So what do we do now? Fortunately, my colleague Joseph Conway, has a great blog on how to troubleshoot this issue. All we need to do is manually download the updates for KB2618444 and KB2618451 and copy the .msu files over to “%windir%\CheckSUR\Packages” (you will need to create this directory) and then run CheckSUR again which will take care of the rest!

    After repairing the Servicing issue, WMI was able to return instances from Win32_QuickFixEngineering:

    C:\>wmic path win32_quickfixengineering get HotFixID,InstalledOn /format:list




    … (Truncated for brevity)

    Hope you enjoyed this two minute drill.

    -Michael Smith

  • What Did Storport Do With My I/O?

    In a previous article I showed how to track an I/O request from the filesystem, through the class driver, and to the storage driver.  In that article I concluded with " From this data we can usually assume that the request has been sent to the ...read more
  • Keeping backups of Cluster Logs

    In a previous blog, Understanding the Cluster Debug Log in 2008, you were given the information on how Cluster logging in Windows 2008 Failover Clustering and beyond has changed from the earlier versions. In this blog, you were shown how the size of the log can be manipulated in order to keep a recommended 72 hours’ worth of data. Just to recap:

    It is generally recommended that your CLUSTER.LOG have at least 72 hours’ worth of continuous data retention. This is so that if you have a failure occur after you went home on Friday, you still have the data you need to troubleshoot the issue on Monday morning’

    What if you wanted to get information from further back (i.e. a week, a month, etc)? One of the ways you could do this is to increase the size of the log with the /SIZE: switch. However, increasing the size for say a month could get you into gigabytes of space being used and text files being massive and hard to go through. Have you ever tried to open a 1 gigabyte text file with Notepad?

    Here is a way that you can keep the file at a smaller size and keep backups that can be referred back to at any time. First, you must determine what size is needed to hold 24 hours’ worth of data. This way, you can have a Cluster Log generated for every day. The next thing to consider is where you want to store the files, local or network share. What if you wanted to do this for multiple Clusters? Let’s say that you figured that you need the log size to be at 200meg and you are going to put it on a server (JOHNMARLIN).

    The previous blog mentioned will have you run the command Cluster Log /Size:200 to set the proper size based on the data needed. I do this for all my Clusters. I then go out to my JOHNMARLIN server and create a share for each Cluster (TXCLUSTER, NCCLUSTER, etc). Now I just have to go to one node in each of the Clusters to set things up.

    On the node you doing the task on, go into Control Panel - Region and Language and change the Short date to yyyy-MM-dd.


    On this node, you could create a CLUSTERLOG folder off the root of Drive C:. In this C:\CLUSTERLOG directory, create a batch file called Get-Logs.bat that has the following commands:

    Net use j: /d
    Net use j: \\johnmarlin\txcluster
    Md j:\%date%
    Cluster log /gen /copy:"c:\clusterlog"
    Copy c:\clusterlog\*.log j:\%date%\*.log
    Net use j: /d

    I used Drive Letter J:, but you can use any available letter. So what the batch file will do when run today (June 18, 2012) is: 

    1. It will create a folder on the share named by the date

    a. 2012-06-18

    2. It will generate the Cluster on every node

    3. It will copy the cluster logs from all nodes to the local c:\clusterlog folder and tag the Node Name as part of the filename

    a. TXCLUSTER-node1_cluster.log
    b. TXCLUSTER-node2_cluster.log
    c. TXCLUSTER-node3_cluster.log
    d. TXCLUSTER-node4_cluster.log

    4. It will copy the cluster logs from this c:\logs folder to the share folder with the date and keeping the same name

    a. \2012-06-18\TXCLUSTER-node1_cluster.log
    b. \2012-06-18\TXCLUSTER-node2_cluster.log
    c. \2012-06-18\TXCLUSTER-node3_cluster.log
    d. \2012-06-18\TXCLUSTER-node4_cluster.log

    When it runs the next day:

    1. It will create a folder on the share named by the date

    a. 2012-06-19

    2. It will generate the Cluster on every node

    3. It will copy the cluster logs from all nodes to the local c:\clusterlog folder and tag the Node Name as part of the filename

    a. TXCLUSTER-node1_cluster.log
    b. TXCLUSTER-node2_cluster.log
    c. TXCLUSTER-node3_cluster.log
    d. TXCLUSTER-node4_cluster.log

    4. It will copy the cluster logs from this c:\clusterlog folder to the share folder with the date keeping the same name

    a. \2012-06-19\TXCLUSTER-node1_cluster.log
    b. \2012-06-19\TXCLUSTER-node2_cluster.log
    c. \2012-06-19\TXCLUSTER-node3_cluster.log
    d. \2012-06-19\TXCLUSTER-node4_cluster.log

    It runs the next day, it creates the next dated folder and files. This way, you have an easily sorted folder structure that you can go to any day you want and get the file you need from whichever node you need.

    The next thing to do is set up a Scheduled Task to run each day so it creates the files for you. This way, you do not have to remember to do it. From the Administrative Tools, open up Task Scheduler and select Create Task. You can then use the below information to create the task.

    A. General Tab

    i. For the Name, call it something like Cluster Daily Log Backups
    ii. make sure use an account that has admin rights to this node, to the Cluster, and the network share
    iii. select Run whether user is logged in or not


    B. Triggers Tab

    i. Set whatever time you want it to run.  One thing to keep in mind is that the Cluster Log is in GMT time, so account for it when deciding when to have them created
    ii. Select it to run daily and recur for 352 days
    iii. Make sure is Enabled


    C. Actions Tab

    i. Program/Script will be CMD.EXE
    ii. Add Arguments will be /C C:\Logs\Get-Logs.bat


    D. Conditions Tab

    i. Don't really need change anything unless want to

    E. Settings Tab

    i. Check Allow task to be run on demand
    ii. Check Run task as soon as possible after scheduled start is missed


    So now you have your task that will do this for you. You can now just sit back and relax knowing that you will have a Cluster Log generated for every node every day.

    There are a couple caveats to this that you must take into consideration. If the account you are using has its password changed on the domain, you will have to change it on the task as well.  It will stop running after 352 days, so if you want more, you would have to create it again.  But you will have a year's worth of Cluster Logs when it is done. 

    There are other ways of doing this. You could use scripting and the PowerShell command:

    Get-ClusterLog –Destination

    You could also use other methods than the batch file. This is just one of the ways of doing it.


    Happy Clustering !!!

    John Marlin
    Senior Support Escalation Engineer
    Microsoft Enterprise Platforms Support

  • How to display a certain type of Mouse Cursor in a Terminal Server Session

    Hello everyone! This is Harshad Joshi from the Performance Team at Microsoft. In today’s post, I am going discuss an interesting feature of Remote Desktop Services configured for users via Group Policy Preferences. Recently, I had a request from a customer to change the mouse pointer for a set of users, but only within a Remote Desktop Session. What they wanted was a particular Mouse Pointer scheme shown whenever a particular set of users remote to any server in the infrastructure.  The scheme name in Mouse Properties window under control panel is “Windows Black (extra-large) (system scheme)”. The primary mouse cursor in this scheme looks like this:


    Now, it’s fairly easily to change the mouse scheme for a user account when the user is logging onto the computer locally; but to assign a particular Mouse pointer scheme only in a Remote Desktop Session (RDP), we’ll need to make use of the Group Policy Preferences (GPP). Given that GPP is an Active Directory Domain policy, we can do this for Domain Accounts.  Additionally, GPP is only available if the domain has at least one Domain Controller running Windows Server 2008 or Windows Server 2008 R2 as its operating system. GPP was not available on Windows Server 2003 or earlier operating systems.

    These are the steps of how to modify a domain users’ mouse scheme using Group Policy Preferences.

    1. Create a group of users for which you want to change the mouse pointer in a Remote Desktop Services session. It’s best if you create this group under a separate Organizational Unit (OU) so that you can link a GPO to this OU.

    2. Open Group Policy Management Console (gpmc.msc) and locate the concerned OU.

    3. Right Click and select option, “Create a GPO I this domain, and link it here…”.

    4. Give it a name which can help you in identifying the reason behind this GPO and click Ok.

    5. Once the GPO is shown under the OU, right click on it and click Edit…

    6. Group Policy Management Editor will open.

    7. In the Group Policy Management editor, navigate to User configuration > Preferences> Windows Settings> Registry. Refer to below screenshot:


    Before creating or updating any registry item, you should review the existing registry values that are already present and update those. The screenshot below shows the registry keys along with their values which are already present for the “Windows Aero (system scheme)” :


    Since this is the default cursor scheme you will see in windows 7, all you need to do is update these registry keys instead of creating new items.

    Below screenshot shows one of the registry keys as an example:


    For registry keys which are not already present, you need to choose create option under Action. An example screenshot of create item option is show below:


    Below table shows what registry values need to be created for changing the default Mouse cursor to the Windows Black using GPP for domain accounts:






    HKEY_CURRENT_USER\Control Panel\Cursors\


    Windows Black (Extra Large)


    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\



    Scheme Source

    HKEY_CURRENT_USER\Control Panel\Cursors\


    0x00000002 (2)


    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\




    HKEY_CURRENT_USER\Control Panel\Cursors\



    This is how you can see the registry items after created defined using GPP:


    Note down the color difference in the icons for registry items. Yellow ones are the Updated registry keys whereas Green ones are the Created registry keys. Link this GPO to the OU on which you need to apply.

    Additional References

    - Harshad Joshi

  • Terminal Server and PTEs

    Good morning AskPerf! One of our large call generators that we still see is with PTE depletions on Windows Server 2003 Terminal Servers (x86). Scaling your W2K3 Terminal Server can be challenging as the load increases with additional users and the limits of the x86 Memory Architecture. Often Terminal Servers run out of kernel resources due to load instead of any type of memory leak. One of those resources is depleting System PTEs (Page Table Entries). So, what are System PTEs?

    System PTEs are a kernel memory structure used to map the following:

    • I/O Space
    • Kernel Stacks
    • Memory Descriptor Lists (MDLs)

    Other operating system internals that use PTEs:

    • Paged Pool Memory
    • Non-Paged Pool Memory
    • PFN Database
    • File Cache
    • Drivers
    • Sessions

    NOTE The normal range of PTE’s are as follows (can vary from these values):

    • ~60,000 free at boot – 4GB or less memory system with /3GB and no /userva setting in the boot.ini
    • ~170,000 free at boot - 2GB (or 4GB – 16GB) system with multiple NIC’s and HBA’s with default settings
    • ~260,000 free at boot – 4GB system on simple hardware (VM’s for example with show high total PTE’s because the hardware is very simple)

    Free System PTE’s can be viewed by adding the counter “Memory\Free System Page Table Entries” in Perfmon. Free System PTE’s should be kept above 10,000.

    When a system starts running low on free PTEs, < 5000 , unusual things can start occurring on the server with little to no warnings. First, applications or drivers may get memory denied type errors. Secondly, applications or the Server itself might hang if threads cannot be created. Another symptom could be errors in the event logs, similar to the following:

    Event Type: Information
    Event Source: dmio
    Event Category: None
    Event ID: 29
    Date: MM/DD/YYYY
    Time: HH:MM:SS AM/PM
    User: N/A
    Computer: Computer_Name
    dmio: Harddisk9 read error at block 445136247: status 0xC000009A

    Event Type: Information
    Event Source: dmio
    Event Category: None
    Event ID: 30
    Date: MM/DD/YYYY
    Time: HH:MM:SS AM/PM
    User: N/A
    Computer: Computer_Name
    dmio: Harddisk2 write error at block 411779656: status 0xC000009A

    0xC000009A is a Windows status code that translates to STATUS_INSUFFICIENT_RESOURCES.

    A program is composed of 1 or more threads. Each of those threads has a stack (the kernel mode part of a user mode program) and each of the threads use some PTE’s. Normal threads use 4 while UI threads (threads related to displaying info on the screen) use 16. Those can end up using a majority of the PTE’s on a system. Let’s consider the following example:

    Customer was previously able to have 50 logged on users to their terminal servers. Now, they are only able to have ~35 users before new users start receiving errors when connecting to the TS.

    Let’s look at the relevant data to determine the cause of the problem. Perfmon data captured for several hours shows how load and memory resources vary.

    The screenshot below highlights the number of sessions on the system. We start with 36 sessions and get as high as 38 sessions until the end, where we fall down to 5 user sessions.


    Now let’s look at free PTEs. Free System PTEs start at 22,000 and get as low as 4000 as more users log in. As users start logging off, we shoot up to ~145,000 free System PTEs. The fact that Free System PTEs increase shows that this is a load issue and not a Memory leak.


    Finally, we see threads that have an inverse pattern of Free System PTEs. When we get above 11,000 threads, PTEs decrease. We saw a maximum of 948 processes running at the time of this capture.

    Note Most Windows 2003 32 bit systems will only get to 11,000 – 14,000 threads before PTE’s are depleted

    11962 threads / 948 processes = 12 threads per process is a normal number (this can vary with different types of applications)

    11962 threads / 38 sessions = 314 threads per user session


    How do we troubleshoot this type of problem? Glad you asked!

    First, we need to determine what the number of free PTEs at boot. I gave ranges above, but in general we should look for at least 170,000 free PTEs when the machine starts up. If your server is not around this number, then the following could be at play here:

    The Server has greater than 16 GB of memory. I have never seen a 32 bit terminal server that could use more than 16 GB of memory before running out of some type of kernel memory resource. Having more memory takes additional kernel memory for the PFN database which is used to map physical memory addresses. Either physically remove the memory or use /maxmem=16200 in the boot.ini file to limit memory to 16 GB.

    The Server is using the /3GB switch in the boot.ini. Using /3GB (4Gig tuning) on a terminal server will not work well. Do not try to run programs that need 3GB of memory on a terminal server. Move them to another server. While you can increase the amount of PTE’s by using /USERVA=3030 (or a value down to 2800) in the boot.ini, other kernel memory pools will be limited and the system will not scale.

    Complex hardware including multiple NIC’s and HBA’s (reserves addresses at boot). Some NICs and HBAs can reserve a lot of virtual addresses. This will reduce the amount of kernel memory including PTEs. Disable or remove any unneeded hardware from the system.

    If the number of free PTEs at boot look normal, then decline with load, the following should be reviewed:

    How many processes is each user running? Lite users may only be running 4 while heavy users may be running 20 or more. A few heavy users can make the difference between getting 50+ users on a system and only getting 30 users.

    Are there any programs that can be removed? It is not uncommon for new programs to get added but old programs are still installed. Try removing those that are not needed.

    Is there an individual program that is creating a lot of threads? Threads per process can be viewed by adding the thread column in task manager. I had one customer that had a custom program that was creating over 350 threads per instance - almost all of them UI threads (350 threads * 16 PTE’s = 5600 PTE’s per instance of this program).

    Note On average ½ of threads will be UI threads. So on a system with 10000 threads they will use the following:

    5,000 threads * 4 PTE’s + 5,000 threads * 16 PTE’s = 100,000 PTE’s used just for thread stacks

    After looking at both the number of the PTEs being created at boot and removing any unneeded processes, then you will have optimized the number of Free System PTEs. If free PTEs continue to decrease into the danger area, then the Server load will need to be reduced by limiting the number of logged on users. If you still experience issues, then an x64 OS could be in your future.

    -Leonard Severt

  • Incorrect file versions getting restored on removing patches

    Hello. My name is Digvijay Nath, and I’m a Technical Lead with the Windows Performance team at Microsoft. This is a short blog on installation and removal of updates and hotfixes and its effects.

    Consider the following scenario –

    We have a system binary with the version 5.2.3790.4043. You install an update, say KB2507938 - which updated this dll to version 5.2.3790.4860. Later you install another update KB2567680 which updated the same dll to version 5.2.3790.4877

    For some reason you want to remove these 2 updates.

    Scenario 1:

    You remove the patches in “first in, first out” (FIFO) order. You first uninstall KB2507938, it prompts that KB2567680 (which supersedes this update) will not work. You remove the patch and reboot the server. After the reboot, the version of the file changes to 5.2.3790.4043.

    You then remove the KB2567680, and after the reboot, the version of the file changes to 5.2.3790.4860

    Scenario 2:

    You remove the patches in “last in, first out” (LIFO) order, first KB2567680, the version of the file changes to 5.2.3790.4860 and then KB2507938 and reboot. Now the file version changed to 5.2.3790.4043.

    More Information:

    The version of the file restored after removing a patch would depend on the version of the file present when *that* particular update was installed. When a patch is installed, Update.exe backs up the present file in the $NTUninstallKBxxxxxx$ so that it can restore the same file if we uninstall that patch.

    So, if you remove an intermediary patch, the file version would be changed to the one that was present when the intermediary patch was installed, even when you have a newer patch that supersedes the intermediary patch installed on the server.

    A  -->  B  -->  C

    So, removing patch B would restore the file version to A which was currently at C.

    Since the copy/replacement of the file updated by a patch happens only after the reboot (as the files may be in use when the patch was installed/un-installed) during the session startup by the Session Manager, there is no control of the System File Protection mechanism to prevent the overwriting of a newer version file by an older version. Hence there could be situations of older files being replaced even when you have newer version of the fix installed.


    Microsoft does not have any policy or makes any recommendation to remove security patches/hotfixes. Microsoft releases patches to address vulnerabilities exposed and fixes issues with the OS. If there is any need to remove patches, you should follow LIFO method so that correct file versions are restored.

    Please also note that the above information is more relevant to Windows XP/2003. I will be following this blog up with another one which talks about the behavior in Windows Vista/Windows 7 as servicing stack has been completely revamped in these operating systems.

    For More information, please review the following:

    GDR, QFE, LDR... WTH?

    Description of the contents of Windows XP Service Pack 2 and Windows Server 2003 software update packages

    What is the difference between general distribution and limited distribution releases?

    Digvijay Nath
    Technical Lead
    Windows Performance team

  • Windows 2012 Release Candidate now available !!

    May 31st marked a special day for Microsoft and our customers worldwide. Our Windows team announced the release of our latest preview of Windows 2012 - Windows 2012 Release Preview (RP).  This includes Windows 2012, Internet Explorer 10, new Windows 2012 apps for Hotmail, SkyDrive, and Messenger (and many more) – plus hundreds of new apps in the Windows Store.  Additionally, Windows 2012 RP is available for download in 14 languages. 

    In the broad announcement today we noted that Windows 8 delivers a fast, fluid, no-compromise experience and shared updates that are available in Windows 8 RP, including (but not limited to):

    • New Metro style Bing Travel, News and Sports apps.
    • Gaming and Music Xbox apps that integrate with your Zune pass.
    • Improvements to the Mail, Photos, and People apps that initially debuted with the Windows 8 Consumer Preview.

    You can download it from here.


    It’s important to note that the Windows 8 Release Preview incorporates feedback from people all over the world, including our strong Microsoft self-host community. With our last preview of Windows 8 (Windows 8 Consumer Preview), Windows 8 has become the most deeply-tested and broadly vetted Windows release ever. 

    Our book “Introducing Windows Server 2012” is now available for download as a FREE .pdf ebook on the Microsoft Server and Cloud Platform home page at http://www.microsoft.com/en-us/server-cloud/new.aspx.  Just look at the right under Find Training and Certification.

    Also, the Release Preview build of Convert-WindowsImage.ps1 is now available for download.


    Convert-WindowsImage is the new version of WIM2VHD designed specifically for Windows 8. Completely rewritten in PowerShell, the Convert-WindowsImage command-line tool allows you to create sysprepped VHD and VHDX images from any official build of Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 8. 
    Images created by Convert-WindowsImage will boot directly to the Out Of Box Experience, ready for your first-use customizations. You can also use these images for automation by supplying your own unattend.xml file, making the possibilities limitless. Fresh squeezed, organically grown, free-range VHDs - just like Mom used to make - that work with Virtual PC (Windows 7 only), Virtual Server (Windows 7 only), Microsoft Hyper-V, or Windows' Native VHD-Boot functionality!

  • FREE CLASS: Windows Server 2012: Preparing for the Datacenter Evolution.


    Windows Server 2012 provides a dynamic, highly available and cost-effective server platform for the modern datacenter and the cloud. Its impact scales from a few servers all the way to multitenant-aware, multisite environments in the largest organizations. Windows Server 2012 is one of the most significant releases of Windows Server to date, and there is a vast number of new features in this release that will enable you to Cloud-Optimize your IT.

    Leveraging the popular “Jump Start” virtual classroom approach, Microsoft Senior Technical Evangelist Rick Claus and Microsoft Partner Corey Hynes will walk you through their personal favorite feature sets while answering why and how each one will have a positive impact on improving your day-to-day IT environment. These accelerated, engaging and demo-heavy sessions are guaranteed to get you excited and ready to try them yourself. 

    Windows Server 2012 Jump Start Details

    • Course: “Windows Server 2012: Preparing for the Datacenter Evolution”
    • Date/Time: June 20-21, 2012 from 9:00am – 4:00pm PST
    • Where: Live virtual classroom (online from wherever you are)
    • Cost: FREE!
    • Target audience: IT Professionals and IT Decision Makers 


    Register online Now !!


    Day 1 Morning: Beyond Virtualization

    • Learn about the game changers in the next release of the Hyper-V role on Windows Server 2012
      - Scale, CPU, RAM, Cores, etc.
      - Networking Switch (recorded demo hopefully)
      - NUMA and performance
      - Hyper-V over SMB and Hyper-V over RDMA
      - Replication
      - Shared Nothing Live Migration
      - Live Storage Migration
      - Moving VM from test to a production cluster without downtime
    • Massive scale increases, networking improvements, replication and disaster recovery is all in the box
      - IP Address Virtualization
      - IP Address Virtualization with SCVMM 2012 SP1

    Day 1 Afternoon: Manageability

    • Learn about how you can manage a few systems up to a hundred systems – all from one console
      - Server Manager
      - DAC… and related topics
      - Installing roles in offline VHDs
    • Server Core installs scaring you off? Learn about all your installation and management options
      - Moving from Core-MiniShell-Full UI and back again
    • Windows PowerShell automation and management at scale – all with built in tools
      - PowerShell ISE and command simplification
      - PowerShell new features and new PowerShell replacements for common commands
      - Automating OS level tasks, IP addresses, etc.
    • Clustering—Cluster-aware updating
    • Networking
      - Network Teaming and network configuration
      - SMB MultiChannel and RDMA

    Day 2 Morning: Storage

    • Learn how Continuous Availability of File Services improves workload reliability and performance
      - Setup HA File Server; SMB Failover
      - Running SQL over SMB; Running Hyper-V over SMB
    • Storage groups, disk provisioning, iSCSI and SAN integration
      - Storage Spaces
      - Built-in ISCSI; Boot from ISCSI
      - DeDup
      - Windows Online Backup

    Day 2 Afternoon: Remote Users

    • Remote connectivity options for your workforce
      - DA; Offline Domain Join and DA
      - DA simplified Setup; Possible DA Multi-Site
    • VDI and Remote Desktop Services deployment and changes
      - User level disks
      - Pooled / Private VDI Setup
      - VDI Quick Setup
      - Multi-Touch RDP

  • Windows 8 Release Preview now available!

    Good day AskPerf!  Last Thursday we announced the availability of the Windows 8 Release Preview (a little late on the blog posting I know).  If you’ve been living under a rock, then this is new news to you.  If not, then I’m sure you may have already downloaded it and stated playing around with it.  With that said, here are some links to get you started:

    Windows 8 Release Preview (main page)

    Delivering the Windows 8 Release Preview (blog post by Steven Sinofsky)

    Download page

    -Blake Morrison

  • Setup cannot continue because one or more prerequisites required to install KB2686509 failed (0x8007F0F4)

    Today’s blog is going to cover some issues regarding the installation of MS12-034 (2686509).  When installing this update you may encounter the following error message:

    Setup cannot continue because one or more prerequisites required to install KB2686509 failed (0x8007F0F4)

    The existence of %windir%\FaultyKeyboard.log indicates that we found a keyboard layout registered on the computer but the files do not exist in the %Windir%\System32 folder. 

    If you encounter the error and a FaultyKeyboard.log is not created there is some other possible causes and solutions.  The following KB article is being updated on regular basis to list out possible solutions so you should always check it for updated information

    MS12-034: Description of the security update for CVE-2012-0181 in Windows XP and Windows Server 2003: May 8, 2012

    Thanks and I hope this helps
    Scott McArthur
    Senior Support Escalation Engineer