SupportingWindows

  • What’s New in Windows Servicing: Service Stack Improvements: Part 3

    Servicing Stack improvements in KB2821895 for Windows 8, and How its assists the upgrade to 8.1?

    My name is Aditya and I am a Sr. Support Escalation Engineer for Microsoft on the Windows Core Team. This blog is a continuation of the previous Servicing Part 1. So to understand this blog better, it is recommended that one reads the previous blog post.  As mentioned in the previous, this is a 4 part Blog series on Windows Servicing.

    What’s New in Windows Servicing: Part 1
    What’s New in Windows Servicing: Reduction of Windows Footprint : Part 2
    What’s New in Windows Servicing: Service Stack Improvements: Part 3

    This feature will back port Windows 8.1 features that reduce the disk footprint of the component store. Any freed space will be reserved for system use in upgrading to Windows 8.1.

    As from the last blog, we discussed about the hard work put in by our Core Deployment Platform (CDP) team in terms of reducing the amount of free disk space required for small footprint devices. Even with these reductions, an upgrade requires at least 5 GB of free space.

    To further reduce the perceived amount of space required, a Servicing Stack Update (SSU) for Windows 8 has been created that back ports Windows 8.1 Component Store Footprint Reduction features. It also introduces the maintenance task for controlling the footprint reductions and a set of Deep Clean operations. Any space freed by the maintenance task will be reserved for use by the Windows 8.1 upgrade process.

    The below features were targeted for the down-level port:

    1. Delta compression of the Component Store

    2. Deep Clean, uninstall of superseded GDR packages

    The features are used by the maintenance task to scavenge disk space. In addition to back porting these features, the servicing stack update must reserve free space for upgrade to Windows 8.1 Client. As we do not encourage upgrades of Windows Server 2012, this feature cannot reserve space on server SKUs, it is only for the Client SKU’s.

    When we install Windows 8 (32bit), on a machine, and the check the size of the WINSXS, folder, we should see something like as shown in figure 1:

    image

    When we perform Windows Update for the first time, on the machine via the Control Panel Applet, we should have about 84 updates, which come up to about 515mb, as shown in figure 2:

    image

    After the reboot of the machine the WINSXS, folder sees a little growth in size, which is about 2gb, as shown in Figure 3:

    image

    Looking at the amount of space that has been taken up, after applying Windows Update, we should download and apply the update KB2821895.

    image

    After the update is installed, a maintenance task will run weekly and continue to reclaim disk space up to the time the machine is upgraded to Windows 8.1. It creates a temporary file equal to size of space saved by delta compression during the reduction of the footprint. This file is hidden and marked as OS file so, that it is not easily visible.

    Location of reserve file is:
    %windir%\winsxs\reserve.tmp
    clip_image006

    The size of this file is saved to registry key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Configuration\[reserve]”.This value is used to determine if the reserve file was created on machine and then deleted.

    clip_image008

    Note: Only Windows 8 SKUs that are capable of being upgraded through the Microsoft Store will have space reserved in the temp file.

    During the Windows 8.1 store upgrade process, this file is deleted and the reclaimed disk space becomes free space which should ensure a successful upgrade to Windows 8.1.

    New to WIN8.1 and Windows Server 2012 R2

    Smart Pending Logic

    This feature allows updates that do not require reboot to install immediately and does not require them to merge with updates being installed that require a reboot. It also decrease the time it takes to install updates during reboot since only the updates that require a reboot would be installed at that time.

    Currently, when multiple updates are being applied to a system and one or more of the updates requires a reboot, all updates after the “first update that requires reboot” are installed during the reboot process.

    In the current servicing stack design, Windows Servicing Stack passes a flag to the Servicing Infrastructure to pend the installation of a package if:

    • Any package is already pended
    • Pending.xml exists
    • PendingRequired flag is set in the Servicing Infrastructure store

    The limitations with this design are:

    • After the packages are merged together and installation is attempted during reboot, failure caused by any one of those updates causes a failure for all other updates.
    • Our teams that design their components for reboot-less updating cannot gain any benefit of their design because of limitation in stack itself.
    • Because all pended updates are installed during machine reboot, the number of updates pended determines the non-interactive user time while installing the updates.

    The current design that we have in Windows 8 and Server 2012, looks something like this:

    image

    With this new feature, Windows Servicing Stack would not check to see if a reboot is pending and will always try to install the update completely. The operational flow of the new design looks like this:

    image

     

    In Windows 8.1 and Server 2012 R2, updates that don’t require a reboot would be completely installed and only those that require a reboot are pended for installation during reboot. Smart pending logic applies to online servicing operations only.

    Smart Pending exceptions:

    The following types of packages are not going to be smart pended due to performance and reliability reasons:

    • Large packages, such as a service pack or language pack.
    • Special packages that cannot be merged with other packages.
    • Servicing stack updates.

    Below diagram describes

    image

    I hope this blog would have helped in understanding the changes made to Windows 8 OS and the new features added to the Windows 8.1 OS, especially with the Smart Logic put in to make sure that we save more drive space.

    The next blog in the series we would be discussing about the automated maintenance tasks to check for system file corruption, file system health, cleaning up unused drivers etc.?? Till then happy reading….

    Aditya
    Senior Support Escalation Engineer
    Microsoft Platforms Support

  • An Update about the Windows 8.1 Update

    Hi everyone, David here. Today over at the Springboard series blog we announced some important news that applies to anyone who has been trying to roll out the Windows 8.1 update in an enterprise environment. We don’t usually do announcements about ...read more
  • Managing the Store app pin to the Taskbar added in the Windows 8.1 Update

    Warren here, posting with more news regarding the Windows 8.1 Update. Among the many features added by Windows 8.1 Update is that the Store icon will be pinned to the users taskbar when users first logon after updating their PC with Windows 8.1 Update ...read more
  • What's New in the Windows 8.1 Update

    Hello AskPerf Readers! Henry Chen here from the Devices & Deployment team. Today, I would like to spend some time highlighting some of the user experience changes in the shell for Windows 8.1 Update.

    Windows 8.1 Update introduces numerous enhancements to the Desktop experience for mouse and keyboard users.

    Start Screen

    For mouse users, when right clicking anywhere on the Start Screen, a context menu will now appear in replacement of the command bar. The context menu provides the same options as what the command bar. Some of these commands are tile resizing, enable/disable live tile, and uninstall the application.

    For devices with a screen larger than 8.5" and are not connected standby capable, Power and search controls can now accessible from the Start screen. For other devices, only the search control is available.

    clip_image004

    Pin Apps to Taskbar

    Users can now pin modern apps to the taskbar with the exception of modern Internet Explorer. Users can block this setting by unselecting "Show Windows Store apps on the taskbar" from the Taskbar and Navigation properties.

     clip_image006

    Access taskbar from anywhere

    When you are using a mouse, you can see the taskbar from any screen, including Start or a Windows Store app. Move your mouse pointer below the bottom edge of the screen to show the taskbar and then click an app to open or switch to it.

    clip_image009

    Modern App User Interface (UI)

    Your mouse works more consistently anywhere in Windows. When moving the mouse to the top of the screen, the close and minimize buttons will appear from within Windows Store apps.

    For devices that are touch enabled, users will continue to use the close gesture (From top edge, tap and hold dragging to bottom of the screen for a few seconds).

    clip_image012

    These are just some of the user experience changes available in Windows 8.1 Update. Let us know what you think or if you have any questions regarding these changes.

    Enjoy!

    For more information and to view the complete list of new features, check the following links:

    What’s new in Windows 8.1 Update and Windows RT 8.1 Update?

    Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2 Update April, 2014

    -Henry

  • Options for Managing Go to Desktop or Start after Sign in in Windows 8.1

    Hi, David here. Over the past year we’ve gotten a lot of feedback from our customers about the pain of changing from older versions of Windows over to Windows 8 and Windows 8.1. While it’s a great OS with a lot of compelling features, it’s ...read more
  • What’s New in Windows Servicing: Reduction of Windows Footprint : Part 2

    My name is Aditya and I am a Sr. Support Escalation Engineer for Microsoft on the Windows Core Team. This blog is a continuation of the previous Servicing Part 1. So to understand this blog better, it is recommended that one reads the previous blog post.  As mentioned in the previous, this is a 4 part Blog series on Windows Servicing.

    What’s New in Windows Servicing: Part 1
    What’s New in Windows Servicing: Reduction of Windows Footprint : Part 2

    Before we dive into Single Instancing and Delta Compression, I thought it would be a good idea, to talk about why this was introduced and how it worked in the previous Operating Systems. The reason for both Single Instancing and Delta Compression was to reduce the Windows (Windows 8.1 and Windows Server 2012 R2) footprint. Here is how and why:

    Windows Footprint Reduction Features:The disk footprint of a Windows directly affects end-users, as it reduces the amount of available space for music, videos, pictures, and all other content. Even as we shift more user content to the cloud, factors such as high-resolution photos and videos, limited and costly bandwidth, and safety/security concerns over cloud storage mean that local storage requirements would remain constant for the next few years.

    The disk footprint of Windows also directly affects our OEM partners. Available storage is one of the most important metrics, that an end-user looks at when purchasing a system, and OEMs are pushed to provide higher storage capacity. The current trend is that many of the OEM’s are shifting to SSD storage, due to its small footprint (enabling smaller, sleeker devices), low power consumption, low noise, and improved performance. Unfortunately, SSD storage can cost as much as 10x the price of conventional spindle based storage, which means that OEMs can only add limited storage to their systems before the cost becomes too great.

    If Windows consumes less of the available disk footprint, while still providing a great end-user experience, this provides end-users with more disk space for their content, without requiring the OEM to spend more on storage, thus reducing the price of PCs.

    For rollback purposes, the previous versions of Windows Components are sometimes kept in WinSxS store after installation of new updates through Windows Updates. The MUM Servicing feature which was introduced in Windows 7 and Windows Server 2008 R2 ensures that the disk space growth due to GDR installations can be reclaimed after a Service Pack (SP) installation by running Disk Cleanup Utility manually.

    Windows strives to constrain servicing footprint growth, which are due to GDR installations either before or after a SP installation. The feature also focuses on enabling the servicing footprint reduction support at the Component Based Servicing technology level that targets for the following scenarios:

    1. Consumers opt in for automatic updates on their Windows 8 devices, and notice that the WinSxS store footprint no longer grows significantly over time.

    2. Consumers notice that the WinSxS store footprint has grown due to update installations over time, and then run Disk Cleanup Utility to reduce the WinSxS store footprint and reclaim disk space on their devices.

    3. OEMs service their golden images in technician labs over time to keep them up-to-date and secured. Before the image is delivered to ODM for deployment at factory floor, they clean up the image by running DISM to scavenge away all the superseded components and recapture the smaller sized image.

    4. Similarly, IT Admins service master images in their image libraries to keep them up-to-date and secured. Before the image is ready for deployment to Client machines, they clean up the image by running DISM to scavenge away all the superseded components and recapture the smaller sized image.

    The feature to reduce the disk space used by Windows with the focus on Windows Components. Windows Update routinely installs patches on released Windows machines but does not always remove previous content that is replaced by the patches and which are not in use anymore. The purpose of this feature is to reduce disk footprint growth over time and also to provide a means by which power-users can reduce the original disk footprint of Windows.

    This feature reduces disk footprint grown over time by uninstall and deletion of content that can be removed from the system and compression of unused content that may not be removable from the system

    Reducing the footprint of Windows also improves deployment performance, which benefits consumers, Enterprise, and OEMs.

    1. Single Instancing Catalogs: This feature contributes to the component store footprint reduction by single-instancing catalogs across the CATROOT, and Windows Servicing Stack stores. 

    Term

    Definition

    Catroot

    %windir%\system32\catroot

    Servicing Stack Packages

    %windir%\servicing\packages

    Servicing Stack Catalogs

    %windir%\winsxs\catalogs

     The redundant catalogs are single-instanced by hard-linking them across the three stores, nullifying the Windows Servicing Stack footprint overhead. To minimize impact to other catalog clients, changes were scoped to just those catalogs installed by the Servicing Stack.

    More information on how hard-linking affects and works in the Windows Servicing Stack, one can refer to this TechNet article:

    Manage the Component Store

    2. Delta Compression of Superseded Components: This feature contributes to the component store footprint reduction by significantly reducing the size of files that have been superseded by later updates, yet they remain on the computer in case the user needs to uninstall a recent update. 

    Term

    Definition

    Component

    The smallest serviceable unit that includes files, registry data, meta-data, and etc., that describes how to service that set of files, and etc.

    Installed component - winner

    This is the ‘winning’ version of a component in a component family. This is the payload that is projected into System32 (or whichever location is specified in the component manifest).

    Installed component - superseded

    These components are installed, but are older versions than the winning component. The payload exists in the component store, but does not get projected to System32. If the winning component is uninstalled, the highest versioned remaining component becomes the new winner.

    Latent component

    These components are available for installation under the proper circumstances, but are not currently installed. The most common form of a latent component is a component that belongs to an optional feature that is currently disabled.

    Superseded components are kept in the component storein case a user uninstalls the winning component (by uninstalling an update, for example). End-users infrequently uninstall updates, making those updates a prime target for reclaiming space. This feature uses a type of compression known as delta compression to dramatically reduce the size of superseded and latent components.

    Delta compressionis a technology based on the differencing of two similar files. One version is used as a baseline and another versions is expressed as baseline + deltas.

    The delta compression is performed against the winner component at the time of compression. This means the deltas for a specific component is different from machine to machine, depending on which winner was available at the time of compression.

    Let me explain this by use of the following diagram Figure 1, in which V1, V2, and V3are all installed components prior to compression. During compression, V1 and V2 are compared against V3, the current winner, to create the necessary deltas.

    clip_image002

    Figure 1

    In the next example, refer Figure 2 below, where V1 and V2 are installed, with V2 being the winner. After compression, V1 delta is created using V2 as the basis. Subsequently, V3 is installed. After the next compression, V2 delta is created using V3 as the basis.

    Figure 2

    Decompression or Rehydration:If the winning component is uninstalled, Windows Servicing Stack decompresses any components that are using the uninstalled version as their baseline, and makes the next highest versioned component the new winner. The uninstalled version is marked for deletion, and later when the Servicing Stack’s maintenance task runs, the uninstalled version is deleted, and any remaining superseded files are compressed against the new winner. For example refer to figure 3 below.

    Figure 3

    There may be cases where a file needs to be decompressed, but its basis file is also compressed. In these case, the Windows Servicing Stack would decompress the full chain of files necessary to decompress the final winning file.

    Figure 4

    At this point the big question that comes to mind is When Do We Delta Compress Components? The answer is pretty simple, Delta compression of superseded and latent content in the component store happens as part of the Servicing Stacks maintenance task. This process can be triggered either manually, or automatically.

    Manual maintenance:Manually triggered by dism.exe.

    Dism /online /cleanup-image /startcomponentcleanup

    Automatic maintenance: Triggered by a scheduled maintenance task when the system is idle.

    Task Scheduler Library  -->  Microsoft  -->  Windows  -->  Servicing

    The automatic case is interruptible and resume-able. It automatically stops when the computer is no longer idle, and resumes when it becomes idle again.

    For more detailed information, please refer to What’s New in Windows Servicing: Part 1.

    Definitions:

    Term

    Definition

    Delta compression

    Compressing a file by capturing a diff of the file against a basis file. Requires the basis file to decompress.

    Backup directory

    Directory containing copies of boot critical files that are used to repair corruption

    Manifest

    Files describing the contents of a component. Windows is essentially defined by component manifests, approximately 15,000 of them (on amd64).

    I hope this blog would have helped in understanding the efforts, put in the background by all the Windows team, in order to reduce the size of WINSXS considerably in Windows 8.1 and Windows Server 2012 R2.

    The next blog in the series we would be discussing about the Servicing Stack improvements in KB2821895for Windows 8, and why it will assist your upgrade to 8.1?? Till then happy reading….

    Aditya
    Senior Support Escalation Engineer
    Microsoft Platforms Support

  • Failover Clustering and Active Directory Integration

    My name is Ram Malkani and I am a Support Escalation Engineer on Microsoft’s Windows Core team. I am writing to discuss how Failover Clustering is integrated with Active Directory on Windows Servers.

    Windows Server Failover Clustering, has always had a very strong and cohesive attachment with the Active Directory. We made considerable changes to how Failover Clustering integrates with AD DS, as we made progression to new versions of Clusters running on Windows Servers. Let us see the story so far:

    Window Server 2003 and previous version.

    Windows Server 2008, 2008 R2

    Windows Server 2012

    We needed a Cluster Service Account (CSA). A domain user, whose credentials were used for the Cluster service and the Clustered resources. This had its problems, changing the password for the account, rotating the passwords, etc. Later, we did add support for Windows Clusters on 2003 to use Kerberos Authentication which created objects in Active Directory.

    We moved away from CSA, and instead, the Cluster started the use of Active Directory computer objects associated with the Cluster Name resource (CNO) and Virtual Computer Objects (VCOs) for other network names in the cluster. When cluster is created, the logged on user needed permissions to create the computer objects in AD DS, or you would ask the Active Directory administrator to pre-stage the computer object(s) in AD DS. Cluster communications between nodes also uses AD authentication.

    The same information provided for Windows 2008 and 2008R2 applies, however, we included a feature improvement to allow Cluster nodes to come up when AD is unavailable for authentication and allow Cluster Shared Volumes (CSVs) to become available and the VMs (potentially Domain Controllers) on it to start. This was a major issue as otherwise we had to have at least one available Domain Controller outside the cluster before the Cluster Service could start.

     

    What’s new with Clustering in Windows Server 2012 R2

    We have introduced, a new mode to create a Failover Cluster on Windows Server 2012 R2, known as Active Directory detached Cluster. Using this mode, you would not only no longer need to pre-stage these objects but also stop worrying about the management and maintenance of these objects. Cluster Administrators would no longer need to be wary about accidental deletions of the CNO or the Virtual Computer Objects (VCOs). The CNOs and VCOs are now instead created in Domain Name System (DNS).

    This feature provides greater flexibility when creating a Failover Cluster and enables you to choose to install Clusters with or without AD integration. It also improves the overall resiliency of cluster by reducing the dependencies on CNO and VCOs, thereby reducing the points of failure on the cluster.

    The intra-cluster communication would continue to use Kerberos for authentication, however, the authentication of the CNO would be done using NT LM authentication. Thus, you need to remember that for all Cluster roles that need Kerberos Authentication use of AD-detached cluster is not recommended.

     

    Installing Active Directory detached Cluster

    First, you should make sure that the nodes, running Windows Server 2012 R2 that you are intending to add to the cluster are part of the same domain, and proceed to install the Failover-Cluster feature on them. This is very similar to conventional Cluster installs running on Windows Servers. To install the feature, you can use the Server Manager to complete the installation.

    Server Manager can be used to install the Failover Clustering feature:

    Introducing Server Manager in Windows Server 2012
    http://blogs.technet.com/b/askcore/archive/2012/11/04/introducing-server-manager-in-windows-server-2012.aspx

    We can alternatively use PowerShell (Admin) to install the Failover Clustering feature on the nodes.

    Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools

    An important point to note is that PowerShell Cmdlet ‘Add-WindowsFeature’ is being replaced by ‘Install-WindowsFeature’ in Windows Server 2012 R2. PowerShell does not install the management tools for the feature requested unless you specify  ‘-IncludeManagementTools’ as part of your command. 

    image

     

    BONUS READ:
    The Cluster Command line tool (CLUSTER.EXE) has been deprecated; but, if you still want to install it, it is available under:
    Remote Server Administration Tools --> Feature Administration Tools --> Failover Clustering Tools --> Failover Cluster Command Interface in the Server Manager

    image

    The PowerShell (Admin) equivalent to install it:

    Install-WindowsFeature -Name RSAT-Clustering-CmdInterface

    Now that we have Failover Clustering feature installed on our nodes. Ensure that all connected hardware to the nodes passes the Cluster Validation tests. Let us now go on to create our cluster. You cannot create an AD detached clustering from Cluster Administrator and the only way to create the AD-Detached Cluster is by using PowerShell.

    New-Cluster MyCluster -Node My2012R2-N1,My2012R2-N2 -StaticAddress 192.168.1.15 -NoStorage -AdministrativeAccessPoint DNS

    image

    NOTE:
    In my example above, I am using static IP Addresses, so one would need to be specified.  If you are using DHCP for addresses, the switch “-StaticAddress 192.168.1.15 ” would be excluded from the command.


    Once we have executed the command, we would have a new cluster created with the name “MyCluster” with two nodes “My2012R2-N1” and “My2012R2-N2”. When you look Active Directory, there will not be a computer object created for the Cluster “MyCluster”; however, you would see the record as the Access Point in DNS.

    image

     

    For details on cluster roles that are not recommended or unsupported for AD detached Clusters, please read:

    Deploy an Active Directory-Detached Cluster
    http://technet.microsoft.com/en-us/library/dn265970.aspx

    That’s it! Thank you for your time.

    Ram Malkani
    Support Escalation Engineer
    Windows Core Team

  • Windows XP support ending April 8, 2014

    I’m sure you already know this, but if you don’t, XP Support Ends on April 8th, 2014.  That is 21 days from this post.  Below are a couple of links that will give you more information on moving forward:

    image

    <SNIP from the second link above>

    As a result, after April 8, 2014, technical assistance for Windows XP will no longer be available, including automatic updates that help protect your PC. Microsoft will also stop providing Microsoft Security Essentialsfor download on Windows XP on this date. (If you already have Microsoft Security Essentials installed, you will continue to receive antimalware signature updates for a limited time, but this does not mean that your PC will be secure because Microsoft will no longer be providing security updates to help protect your PC.)

    If you continue to use Windows XP after support ends, your computer will still work but it might become more vulnerable to security risks and viruses. Also, as more software and hardware manufacturers continue to optimize for more recent versions of Windows, you can expect to encounter greater numbers of apps and devices that do not work with Windows XP.

    </END SNIP>

    Windows main page

    John Marlin
    Senior Support Escalation Engineer
    Microsoft Global Business Support

  • Timestamp difference in Windows Explorer FTP folder view

    Good morning AskPerf! Anshuman here with a quick post on timestamp differences in Windows Explorer when accessing FTP sites.

    Scenario

    On Windows 7(SP1), Windows 8, and Windows 8.1, you access a folder using ftp by opening an explorer window and typing in the FQDN FTP URL in the address bar. In the FTP folder view, if you access the properties of a file, you may notice that the Modified time in the properties of the file may not match the Date modified time stamp displayed in the detailed view in explorer.  See screenshot below:

    image

    This behavior can be observed if the local time set on the machine from where you access the FTP folder in explorer view is set to a Time Zone other that the UTC time. In this case you will see that the Timestamp of the item, when its property is accessed is displayed as UTC, while the timestamp that we see under the Date modified column for the same file is shown as per the Time Zone that’s set on the machine.

    Please note that both the timestamps are correct. The difference is due to the Time Zone bias added or subtracted from the UTC time.

    Additional Resources

    -Anshuman Ghosh

  • XP Support coming to an End soon…

    Hello AskPerf!  I’m sure you already know this, but if you don’t, XP Support Ends on April 8th, 2014.  That is 21 days from this post.  Below are a couple of links that will give you more information on moving forward:

    image

    <SNIP from the second link above>

    As a result, after April 8, 2014, technical assistance for Windows XP will no longer be available, including automatic updates that help protect your PC. Microsoft will also stop providing Microsoft Security Essentials for download on Windows XP on this date. (If you already have Microsoft Security Essentials installed, you will continue to receive antimalware signature updates for a limited time, but this does not mean that your PC will be secure because Microsoft will no longer be providing security updates to help protect your PC.)

    If you continue to use Windows XP after support ends, your computer will still work but it might become more vulnerable to security risks and viruses. Also, as more software and hardware manufacturers continue to optimize for more recent versions of Windows, you can expect to encounter greater numbers of apps and devices that do not work with Windows XP.

    </END SNIP>

    Windows main landing page

    -Blake Morrison

  • What’s New in Windows Servicing: Part 1

    My name is Aditya and I am a Senior Support Escalation Engineer for Microsoft on the Windows Core Team. I am writing today to shed some light on a the new changes that have been made to the Windows Servicing Stack in Windows 8.1 and Windows Server 2012 R2. This is a 4 part series and this is the first one:

    Windows 8.1 brings in a lot of new features to improve stability, reduce space usage and keep your machine up to date. This blog series will talk about each of these new features in detail and talk about some of the troubleshooting steps you will follow when you run into a servicing issue.

    What is Servicing and The Servicing Stack: Windows Vista onwards use a mechanism called Servicing to manage operating system components, rather than the INF-based installation methods used by previous Windows versions. With Windows Vista and Windows Server 2008, component-based builds use images to deploy component stores to the target machine rather than individual files. This design allows installation of additional features and fixes without prompting for media, enables building different operating system versions quickly and easily, and streamlines all operating system servicing.

    Within the servicing model, the update process for Vista+ Operating systems represents a significant advance over the update.exe model used in previous operating systems. Although update.exe had many positive features, it also had numerous issues, the foremost of which was the requirement to ship update.exe engine with each package.

    Servicing is simplified by including the update engine, in the form of the servicing stack, as part of the operating system. The servicing stack files are located in the C:\Windows\WINSxs folder.

    image

    This folder can grow very large on Windows 2008 and Windows 2008 R2 system and more information can be found at why this happens at :

    What is the WINSXS directory in Windows 2008 and Windows Vista and why is it so large?
    http://blogs.technet.com/b/askcore/archive/2008/09/17/what-is-the-winsxs-directory-in-windows-2008-and-windows-vista-and-why-is-it-so-large.aspx

    What’s new in Windows 8.1 and Server 2012 R2:

    1. Component Store Analysis Tool:

    A new feature has been added to the DISM command that will allow users to get detailed information on the contents of the Component Store (WinSxS folder).

    There have been many users, mainly power users and IT Admins of Windows, who have raised concerns around the size of the WinSxS store and why it occupies so much space on the system. These users also have complaints about the size of WinSxS growing in size over time and are curious to know how its size can be reduced. A lot of users have questioned what happens if the WinSxS store is deleted completely. There have been multiple attempts in the past to explain what the WinSxS store contains and what the actual size of the WinSxS store is. For this OS release, a reporting tool has been created that a power user can run to find out the actual size of the WinSxS store as well as get more information about the contents of the Store. This is in addition to the article we will be publishing for users to understand how the WinSxS is structured, and what the actual size is as compared to the perceived size of this store.

    The purpose of this feature is two-fold. First, is to educate power users and IT Admins of Windows about what WinSxS is, what it contains and its importance to the overall functioning of the OS. Second, this feature will deliver a tool via the DISM functionality to analyze and report a specific set of information about the WinSxS store for power users.

    From various forums and blog posts, there seem to be two main questions that users have:

    · Why is WinSxS so massive?

    · Is it possible to delete WinSxS in part or completely?

    In addition to this, OEMs do have questions about how they can clean up unwanted package store, servicing logs, etc. from the image.

    Based on these questions, we felt that the most important metric for our tool would be the actual size of WinSxS. Secondly, it would be good to report packages that are reclaimable so that a user can startcomponentcleanup to scavenge them. Lastly, for devices like the Microsoft Surface, which remain on connected standby, it may be possible that the system never scavenged the image. In that case, considering that these tablets have small disk sizes, it becomes important to let users know when it was last scavenged and whether scavenging is recommended for their device.

    We expect the amount of time for completion of the analysis to be somewhere between 40 and 90 seconds on a live system. In this scenario, there needs to be some indication of progress made visible to the user. We will use the existing progress UI of DISM to indicate the % of analysis completed to the user. The user will also get the option to cancel out of the operation through the progress UI.

    The following steps describe the end to end flow of using the component store analysis tool:

    · The user launches an elevated command prompt by typing Command Prompt on the Start screen.

    · The user types in the DISM command:

    Dism.exe /Online /Cleanup-image /AnalyzeComponentStore

    At the end of the scan, the user gets a report of the results like this:

    image

    2. Component Store Cleanup:

    The Component Store Cleanup functionality is one of several features aimed at reducing the overall footprint and footprint growth of the servicing stack. Reducing the footprint of Windows is important for many reasons, including providing end users more available disk capacity for their own files, and improving performance for deployment scenarios.

    Component Store Cleanup in Windows 8 was integrated into the Disk Cleanup Wizard. It performs a number of tasks, including removing update packages that contain only superseded components, and compressing un-projected files (such as optional components, servicing stack components, etc.). For Windows 8.1, we will add the capability to perform deep clean operations without requiring a reboot.

    Today, Component Store Cleanup must be triggered manually by an end-user, either by running DISM, or by using the Disk Cleanup Wizard. In order to make Component Store Cleanup more useful for the average end-user, it will be added into a maintenance task, automatically saving disk space for end-users. To enable this, a change will be made to allow uninstallation of superseded inbox drivers without requiring a reboot (today, all driver installs/uninstalls done by CBS require a reboot).

    The superseded package removal feature of deep clean attempts to maintain foot print parity between a computer that has been serviced regularly over time vs. a computer that has been clean installed and updated.

    2.1. How can Component Store Cleanup be initiated?

    Component Store Cleanup will support being initiated in the below 3 ways:

    1. Dism.exe /online /Cleanup-Image /StartComponentCleanup

    clip_image002

    2. Disk cleanup wizard :

    a. To open Disk Cleanup from the desktop, swipe in from the right edge of the screen, tap Settings (or if you're using a mouse, point to the lower-right corner of the screen, move the mouse pointer up, and then click Settings), tap or click Control Panel, type Admin in the Search box, tap or click Administrative Tools, and then double-tap or double-click Disk Cleanup.

    b. In the Drives list, choose the drive you want to clean, and then tap or click OK.

    c. In the Disk Cleanup dialog, select the checkboxes for the file types that you want to delete, tap or click OK, and then tap or click Delete files.

    d. To delete system files:

    i. In the Drives list, tap or click the drive that you want to clean up, and then tap or click OK.

    ii. In the Disk Cleanup dialog box, tap or click Clean up system files. clip_image003 You might be asked for an admin password or to confirm your choice.

    clip_image005

    c. In the Drives list, choose the drive you want to clean, and then tap or click OK.

    d. In the Disk Cleanup dialog box, select the checkboxes for the file types you want to delete, tap or click OK, and then tap or click Delete files.

    clip_image006

    e. Automatic from a scheduled task:

    i. If Task Scheduler is not open, start the Task Scheduler. For more information, see Start Task Scheduler.

    ii. Expand the console tree and navigate to Task Scheduler Library\Microsoft\Windows\Servicing\StartComponentCleanup.

    iii. Under Selected Item, click Run

    clip_image008

    The StartComponentCleanup task can also be started from the command line:

    schtasks.exe /Run /TN "\Microsoft\Windows\Servicing\StartComponentCleanup"

    For all three methods, an automatic scavenge will be performed after the disk cleanup in order to immediately reduce the disk footprint. When scavenge is performed for option 1, NTFS compression will not be used since it has a negative impact on capture and apply times, but Delta Compression will be used since it will help with both capture and apply. When run automatically for option 3, deep clean and the scavenge operation will be interruptible in order to maintain system responsiveness.

    2.2. What does Component Store Cleanup do?

    During automatic Component Store Cleanup, packages will be removed if the following criteria apply:

    § All components in package are in superseded state

    § Packages are not of an excluded class (permanent, LP, SP, foundation)

    § Package is older than defined age threshold

    · Only packages that have been superseded for a specified number of days (default of 30 days) will be removed by the automated deep clean task. In order maintain user responsiveness automatic Component Store Cleanup will perform package uninstall operations one at a time, checking to see if a stop has been requested in between each package.

    · The Component Store Cleanup maintenance task will be incorporated into the component platform scavenging maintenance task. This task runs every 1 week, with a deadline of 2 weeks. This ensures that scavenging and deep clean processing happens relatively quickly after patches are released on patch Tuesday.

    Manual Component Store Cleanup

    During manual Component Store Cleanup, packages will be removed if the following criteria apply:

    · All components in package are in superseded state

    · Packages are not of an excluded class (permanent, LP, SP, foundation)

    The functionality for manual Component Store Cleanup largely already exists in Win8. To improve performance, manual deep clean will perform all package uninstall operations in a single KTM transaction, and is not interruptible. Superseded packages are not subject to an age limit. Instead they are removed immediately.

    The next blog in the series we will discuss more about Delta Compression & Single Instancing…

    Aditya
    Senior Support Escalation Engineer
    Microsoft Platforms Support

  • Windows Dynamic Cache Service Updated

    Good morning AskPerf! This is a quick blog to inform you that you no longer have to contact Microsoft Technical Support to obtain the Dynamic Cache Service for Windows Server 2008 R2. It is now freely available to download from the following link:

    Microsoft Windows Dynamic Cache Service

    image

    Additional Resources

    -Blake

  • Configuring Windows Failover Cluster Networks

    In this blog, I will discuss the overall general practices to be considered when configuring networks in Failover Clusters.

    Avoid single points of failure:

    Identifying single points of failure and configuring redundancy at every point in the network is very critical to maintain high availability. Redundancy can be maintained by using multiple independent networks or by using NIC Teaming. Several ways of achieving this would be:

    · Use multiple physical network adapter cards. Multiple ports of the same multiport card or backplane used for networks introduces a single point of failure.

    · Connect network adapter cards to different independent switches. Multiple Vlans patched into a single switch introduces a single point of failure.

    · Use of NIC teaming for non-redundant networks, such as client connection, intra-cluster communication, CSV, and Live Migration. In the event of a failure of the current active network card will have the communication move over to the other card in the team.

    · Using different types of network adapters eliminates affecting connectivity across all network adapters at the same time if there is an issue with the NIC driver.

    · Ensure upstream network resiliency to eliminate a single point of failure between multiple networks.

    · The Failover Clustering network driver detects networks on the system by their logical subnet. It is not recommended to assign more than one network adapter per subnet, including IPV6 Link local, as only one card would be used by Cluster and the other ignored.

    Network Binding Order:

    The Adapters and Bindingstab lists the connections in the order in which the connections are accessed by network services. The order of these connections reflects the order in which generic TCP/IP calls/packets are sent on to the wire.

    How to change the binding order of network adapters

    1. Click Start, click Run, type ncpa.cpl, and then click OK. You can see the available connections in the LAN and High-Speed Internet section of the Network Connections window.
    2. On the Advanced menu, click Advanced Settings, and then click the Adapters and Bindings tab.
    3. In the Connections area, select the connection that you want to move higher in the list. Use the arrow buttons to move the connection. As a general rule, the card that talks to the network (domain connectivity, routing to other networks, etc should the first bound (top of the list) card.

    Cluster nodes are multi-homed systems.  Network priority affects DNS Client for outbound network connectivity.  Network adapters used for client communication should be at the top in the binding order.  Non-routed networks can be placed at lower priority.  In Windows Server 2012/2012R2, the Cluster Network Driver (NETFT.SYS) adapter is automatically placed at the bottom in the binding order list.

    Cluster Network Roles:

    Cluster networks are automatically created for all logical subnets connected to all nodes in the Cluster.  Each network adapter card connected to a common subnet will be listed in Failover Cluster Manager.  Cluster networks can be configured for different uses.

     

    Name

    Value

    Description

    Disabled for Cluster Communication

    0

    No cluster communication of any kind sent over this network

    Enabled for Cluster Communication only

    1

    Internal cluster communication and CSV traffic can be sent over this network

    Enabled for client and cluster communication

    3

    Cluster IP Address resources can be created on this network for clients to connect to. Internal and CSV traffic can be sent over this network

    Automatic configuration

    The Network roles are automatically configured during cluster creation. The above table describes the networks that are configured in a cluster.

    Networks used for ISCSI communication with ISCSI software initiators is automatically disabled for Cluster communication (Do not allow cluster network communication on this network).

    Networks configured without default gateway is automatically enabled for cluster communication only (Allow cluster network communication on this network).

    Network configured with default gateway is automatically enabled for client and cluster communication (Allow cluster network communication on this network, Allow clients to connect through this network).

    Manual configuration

    Though the cluster networks are automatically configured while creating the cluster as described above, they can also be manually configured based on the requirements in the environment.

    To modify the network settings for a Failover Cluster:

    · Open Failover Cluster Manager

    · Expand Networks.

    · Right-click the network that you want to modify settings for, and then click Properties.

    · If needed, change the name of the network.

    · Select one of the following options:

    o Allow cluster network communication on this network.  If you select this option and you want the network to be used by the nodes only (not clients), clear Allow clients to connect through this network. Otherwise, make sure it is selected.

    o Do not allow cluster network communication on this network.  Select this option if you are using a network only for iSCSI (communication with storage) or only for backup. (These are among the most common reasons for selecting this option.)

    Cluster network roles can also be changed using PowerShell command, Get-ClusterNetwork.

    For example:

    (Get-Cluster Network “Cluster Network 1”). Role =3

    This configures “Cluster Network 1” to be enabled for client and cluster communication.

    Configuring Quality of Service Policies in Windows 2012/2012R2:

    To achieve Quality of Service, we can either have multiple network cards or used, QoS policies with multiple VLANs can be created.

    QoS Prioritization is recommended to configure on all cluster deployments. Heartbeats and Intra-cluster communication are sensitive to latency and configuring a QoS Priority Flow Control policy helps reduce the latency.

    An example of setting cluster heartbeating and intra-node communication to be the highest priority traffic would be:

    New-NetQosPolicy “Cluster”-Cluster –Priority 6
    New-NetQosPolicy “SMB” –SMB –Priority 5
    New-NetQosPolicy “Live Migration” –LiveMigration –Priority 3

    Note:

    Available values are 0 – 6

    Must be enabled on all the nodes in the cluster and the physical network switch

    Undefined traffic is of priority 0

    Bandwidth Allocation:

    It is recommended to configure Relative Minimum Bandwidth SMB policy on CSV deployments

    Example of setting minimum policy of cluster for 30%, Live migration for 20%, and SMB Traffic for 50% of the total bandwidth.

    New-NetQosPolicy “Cluster”-Cluster –Priority 6
    New-NetQosPolicy “SMB” –SMB –Priority 5
    New-NetQosPolicy “Live Migration” –LiveMigration –Priority 3

    Multi-Subnet Clusters:

    Failover Clustering supports having nodes reside in different IP Subnets. Cluster Shared Volumes (CSV) in Windows Server 2012 as well as SQL Server 2012 support multi-subnet Clusters.

    Typically, the general rule has been to have one network per role it will provide. Cluster networks would be configured with the following in mind.

    Client connectivity

    Client connectivity is used for the applications running on the cluster nodes to communicate with the client systems. This network can be configured with statically assigned IPv4, IPv6 or DHCP assigned IP addresses. APIPA addresses should not be used as will be ignored networks as the Cluster Virtual Network Adapter will be on those address schemes. IPV6 Stateless address auto configuration can be used, but keep in mind that DHCPv6 addresses are not supported for clustered IP address resources. These networks are also typically a routable network with a Default Gateway.

    CSV Network for Storage I/O Redirection.

    You would want this network if using as a Hyper-V Cluster and highly available virtual machines. This network is used for the NTFS Metadata Updates to a Cluster Shared Volume (CSV) file system. These should be lightweight and infrequent unless there are communication related events getting to the storage.

    In the case of CSV I/O redirection, latency on this network can slow down the storage I/O performance. Quality of Service is important for this network. In case of failure in a storage path between any nodes or the storage, all I/O will be redirected over the network to a node that still has the connectivity for it to commit the data. All I/O is forwarded, via SMB, over the network which is why network bandwidth is important.

    Client for Microsoft Networks and File and Printer Sharing for Microsoft Networks need to be enabled to support Server Message Block (SMB) which is required for CSV. Configuring this network not to register with DNS is recommended as it will not use any name resolution. The CSV Network will use NTLM Authentication for its connectivity between the nodes.

    CSV communication will take advantage of the SMB 3.0 features such as SMB multi-channel and SMB Direct to allow streaming of traffic across multiple networks to deliver improved I/O performance for its I/O redirection.

    By default, the cluster will automatically choose the NIC to be used for CSV for manual configuration refer the following article.

    Designating a Preferred Network for Cluster Shared Volumes Communication
    http://technet.microsoft.com/en-us/library/ff182335(WS.10).aspx

    This network should be configured for Cluster Communications

    Live Migration Network

    As with the CSV network, you would want this network if using as a Hyper-V Cluster and highly available virtual machines. The Live Migration network is used for live migrating Virtual machines between cluster nodes. Configure this network as Cluster communications only network. By default, Cluster will automatically choose the NIC for Live migration.

    Multiple networks can be selected for live migration depending on the workload and performance. It will take advantage of the SMB 3.0 feature SMB Direct to allow migrations of virtual machines to be done at a much quicker pace.

    ISCSI Network:

    If you are using ISCSI Storage and using the network to get to it, it is recommended that the iSCSI Storage fabric have a dedicated and isolated network. This network should be disabled for Cluster communications so that the network is dedicated to only storage related traffic.

    This prevents intra-cluster communication as well as CSV traffic from flowing over same network. During the creation of the Cluster, ISCSI traffic will be detected and the network will be disabled from Cluster use. This network should set to lowest in the binding order.

    As with all storage networks, you should configure multiple cards to allow the redundancy with MPIO. Using the Microsoft provided in-box teaming drivers, network card teaming is now supported in Win2012 with iSCSI.

    Heartbeat communication and Intra-Cluster communication

    Heartbeat communication is used for the Health monitoring between the nodes to detect node failures. Heartbeat packets are Lightweight (134 bytes) in nature and sensitive to latency. If the cluster heartbeats are delayed by a Saturated NIC, blocked due to firewalls, etc, it could cause the cluster node to be removed from Cluster membership.

    Intra-Cluster communication is executed to update the cluster database across all the nodes any cluster state changes. Clustering is a distributed synchronous system. Latency in this network could slow down cluster state changes.

    IPv6 is the preferred network as it is more reliable and faster than IPv4. IPv6 linklocal (fe80) works for this network.

    In Windows Clusters, Heartbeat thresholds are increased as a default for Hyper-V Clusters.

    The default value changes when the first VM is clustered.

     

    Cluster Property

    Default

    Hyper-V Default

    SameSubnetThreshold

    5

    10

    CrossSubnetThreshold

    5

    20

     

    Generally, heartbeat thresholds are modified after the Cluster creation. If there is a requirement to increase the threshold values, this can be done in production times and will take effect immediately.

    Configuring full mesh heartbeat

    The Cluster Virtual Network Driver (NetFT.SYS) builds routes between the nodes based on the Cluster property PlumbAllCrossSubnetRoutes.

    Value Description

    0     Do not attempt to find cross subnet routes if local routes are found

    1     Always attempt to find routes that cross subnets

    2     Disable the cluster service from attempting to discover cross subnet routes after node successfully joins.

    To make a change to this property, you can use the command:

    (Get-Cluster). PlumbAllCrossSubnetRoutes = 1

    References for configuring Networks for Exchange 2013 and SQL 2012 on Failover Clusters.

    Exchange server 2013 Configuring DAG Networks.
    http://technet.microsoft.com/en-us/library/dd298065(v=exchg.150).aspx

    Before Installing Failover Clustering for SQL Server 2012
    http://msdn.microsoft.com/en-us/library/ms189910.aspx

    At TechEd North America 2013, there was a session that Elden Christensen (Failover Cluster Program Manager) did that was entitled Failover Cluster Networking Essentials that goes over a lot of configurations, best practices etc.

    Failover Cluster Networking Essentials
    http://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/MDC-B337#fbid=ZpvM0cLRvyX

    S. Jayaprakash
    Senior Support Escalation Engineer
    Microsoft India GTSC

  • Network Isolation of Windows Modern Apps – How Apps work with Akamai Internet Caching Servers in Windows 8/8.1

    Good morning AskPerf! Mario Liu here from the Windows 8/8.1 Support Team. Today I’d like to discuss a Windows Modern App connectivity issue I’ve worked over the past few months.

    We have several Enterprise customers who have deployed Windows 8 and 8.1 in their environments. However, after joining the machine to the domain, we discovered that numerous Windows Modern Apps could not display the contents correctly. For example, if we launched the Weather App, we saw the message “This page failed to load”:

    clip_image001

    On the surface, this looks like a network connectivity issue, however other network related programs ran fine. A Network Trace was captured, but we could not find any dropped packets.

    After further troubleshooting, we found that the same Windows 8/8.1 machines worked if they were outside of their corporate network. This gave us a clue that something inside their environment is causing the issue. In one step, we noticed that if the Firewall was disabled, the Modern App ran fine. Obviously turning the firewall off is not recommended.

    After lots of additional troubleshooting steps were done, we discovered that the Akamai Internet Caching Servers had a hand in this issue. The Windows Firewall Service blocked the traffic to Akamai devices, but why would it do this? Why would a Modern App have network connectivity issues to Akamai devices?

    To answer this question, first we need understand what Akamai Internet Caching Server is. It is a widely used content management solution worldwide. The main purpose of it is to save the web contents (mostly static) as the cache on the server. So next time a client machine tries to reach the same website, it actually reaches the cache on the local Akamai Server instead of taking longer time to reach the real contents on the remote web server. By doing this, we save a lot network traffic and speed up the contents delivery. So, the Akamai Internet Caching Server plays a similar role as an Internet Proxy Server, but from a web content management perspective. It basically delivers the contents to Windows clients on behalf of real/live web server.

    OK, so now that we understand Akamai’s role, let’s switch back to the Windows Modern App. In Windows, there is an important feature called Windows Store App Network Isolation. Modern Apps are network isolated depending on the network capabilities the app developer chooses. An enterprise private network is protected and only available to those apps that declare the privateNetworkClientServer capability in the app manifest. There are very few Modern Apps in the Microsoft store that work on a private network. Even though users can very easily download and install any kind of app, the app cannot talk to the enterprise network because the app can only talk to the public network. In most cases, what is a private / public internet network is automatically detected, which means the Modern App knows to reach public internet even when a Windows 8/8.1 machine is running in a corporate (private) environment. But what happens if we bring the Akamai Internet Caching Server into this scene? Instead of letting Modern App reach the real contents on the remote web server via public internet, the Modern App is forced to talk to the Akamai device which is on the corporate (private) network. Remember, very few Modern Apps are approved to work on a private network ONLY. If the apps try to reach private network, the firewall will block it. Here is a way you can check to see if your machine is hitting this problem:

    1. Enable WFP (Windows Filtering Platform) auditing by running the following command via elevated command prompt:

    auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable

    2. Reproduce the issue.

    3. Go to event viewer -> Windows Logs -> Security. You should see some event ID 5152 which means Filtering Platform Packet Drop.

    4. Look at one of these events and you should find this similar information. Note: 192.168.0.10 is Akamai server’s address in this example.

    The Windows Filtering Platform has blocked a packet.

    Application Information:

    Process ID: 2712

    Application Name: \device\harddiskvolume2\windows\system32\wwahost.exe

    Network Information:

    Direction: Outbound

    Source Address: 192.168.0.30

    Source Port: 50571

    Destination Address: 192.168.0.10

    Destination Port: 80

    Protocol: 6

    Filter Information:

    Filter Run-Time ID: 71620

    Layer Name: Connect

    Layer Run-Time ID: 48

    Wwahost.exe is the Modern App process. As you can see, WFP blocked this traffic with Filter ID 71620 because it tried to reach a private IP address. This filter is called Block Outbound Default Rule. If you want to know how I can tell this filter’s name, you can do netsh.exe wfp capture start via elevated command prompt when you reproduce the issue. This will generate a wfpdiag.cab file and in this cab you can see wfpdiag.xml. Now open this xml file to correlate the filter name and ID.

    So, at this point, we now know that Akamai is filtering the cached Internet traffic. That internet cache however is hosted in the private network. Akamai internet cache is essentially the internet network and needs to be deployed as such.

    There are several solutions. But they can be essentially classified in two types:

    Type 1: Either the Akamai servers must be deployed outside of the private network, or

    Type 2: The Akamai servers must be declared explicitly as proxies who live in the private network

    Microsoft’s recommendation is Type 1 as the enterprise cannot control much of what the Akamai devices do. So, putting the device just outside of the corporate firewall on a different address space or outside of enterprise subnet would appear to be a better solution. However, if this requires a fundamental change of your infrastructure, the Type 2 solution can also be guaranteed to work.

    Below we cover some solutions of how the Akamai Servers can be deployed.

    Solution 1 – Akamai servers on their own IP space.

    Akamai servers are deployed outside of the DMZ and they are given an address space different from the one provided to the company. In this scenario the ISP might participate or even the company can simply not provision the subnet given to Akamai anywhere else.

    Solution 2 – Akamai servers are outside of AD sites and Subnets.

    Akamai servers are given an IP address space that is not one included in the AD sites and Subnets configuration of active directory. In theory it should be a security issue that an external device not belonging to the corporation is included in the AD sites and subnets as it providing it with access that the enterprise does not want to provide. Hence this approach is not only an appropriate deployment of network isolation but an appropriate deployment of AD in general and a good tightening of the network.

    Solution 3 – Akamai servers are removed manually from the private network by using the Network isolation Group Policy controls to override the private network.

    Network Isolation Group Policy controls allows Group Policy admins to add private network subnets. It also allows them to completely override the private network definitions in AD sites and subnets and hence carve out any IP space that shouldn’t be considered part of the private network of the enterprise.

    Let’s assume your corporate IP address space ranges from 192.168.0.1 to 192.168.0.255 and you have two Akamai servers with IP 192.168.0.10 and 192.168.0.11.

    Here is the example to implement this solution:

    1. Open the Group Policy Management snap-in (gpmc.msc) and edit the Default Domain Policy.
    2. From the Group Policy Management Editor, expand Computer Configuration, expand Policies, expand Administrative Templates, expand Network, and click Network Isolation.
    3. In the right pane, double-click Private network ranges for apps.
    4. In the Private network ranges for apps dialog box, click Enabled. In the Private subnets text box, type the private subnets for your intranet, and remove Akamai servers.

    In this example the values are 192.168.0.1-192.168.0.9; 192.168.0.12-192.168.0.255 in the Private subnets text box. Note we have excluded 192.168.0.10 and 192.168.0.11 since they are Akamai’s.

    5.Double-click Subnet definitions are authoritative, click Enabled.

    Solution 4 – Akamai servers are configured as proxies by using the Network Isolation Group Policy controls to declare them as proxies.

    The Network Isolation GP controls also allow admins to add internet proxies. It can also be used to completely override the proxy discovery mechanisms provided by default with a preferred proxy definition.

    The enterprise admin can easily use the network isolation GP internet proxy controls to add the Akamai servers as internet content proxies.

    Here is the example to implement this solution:

    1. Open the Group Policy Management snap-in (gpmc.msc) and edit the Default Domain Policy.
    2. From the Group Policy Management Editor, expand Computer Configuration, expand Policies, expand Administrative Templates, expand Network, and click Network Isolation.
    3. Double-click Internet proxy servers for apps. Click Enabled, and then in the Domain Proxies text box, type the IP addresses of your Internet proxy servers, separated by semicolons. In this example the values are 192.168.0.10; 192.168.0.11
    4. Double-click Proxy definitions are authoritative. Ensure that the Not Configured default value is selected to add these proxies to other discovered http proxies.

    For more information about the feature of Network Isolation of Windows Modern Apps, please refer to:

    Isolating Windows Store Apps on Your Network

    How to set network capabilities

    -Mario

  • LIVE: Microsoft Virtual Federal Forum

    For the first time, the 2014 Virtual Federal Forum, will be streamed LIVE from the Reagan Center in Washington, DC! This online digital experience will be completely hybrid, focused on Real Impact for a Lean and Modern Federal Governmentand will showcase innovative and cost effective solutions to unleash greater capabilities within agencies, while helping simplify and modernize processes. The Virtual Federal Forum is designed exclusively for the Federal government community providing the opportunity to hear from Microsoft executives, thought leaders, and strategic partners.  Virtual attendees get bonus material not available to the in-person audience and have the ability to download related session materials, take live polls and surveys, share ideas and ask questions to experts and executives through Chat, Twitter and Q&A sessions.

    Date: Tuesday, March 4th
    Time: 8am EST – 2:30pm EST

    Agenda Highlights:

    · Keynote speaker, The Honorable Tom Ridge Former Secretary of the U.S. Department of Homeland Security, will be speaking on The Global Mission to Secure Cyberspace and will be available to virtual attendees for Live Q&A.

    · Hear from top government agencies in a special customer panel; Veteran Affairs, the U.S. Navy and the Environmental Protection Agency discuss real world lessons learned and technology innovations.

    · Learn how to leverage a next generation mobile workforce for a 21st Century government with live demos and best practices from Jane Boulware, VP US Windows.

    · Senior Director of Microsoft’s Institute for Advanced Technology in Governments talks “Rethinking cyber defense…lessons learned from Microsoft’s own experience.

    Other featured speakers would include:

    Greg Myers - Vice President: Federal
    Walter Puschner - Vice President: User Experience IT
    Vaughn Noga - Acting Principal Deputy Assistant Administrator for Environmental Information
    Captain Scott Langley - USN, MCSE CEH CISSP, Commander Navy Reserve Forces Command N6/CTO
    Maureen Ellenberger - Veterans Relationship Management, Program Manager, Veteran Affairs
    Dave Aucsmith - Microsoft’s Institute for Advanced Technology in Government

    Register for this event using this unique URL.

    Thank you in advance and we look forward to your participation at the Virtual Federal Forum!

  • What's New in Defrag for Windows Server 2012/2012R2

    Hello everyone, I am Palash Acharyya, Support Escalation Engineer with the Microsoft Platforms Core team. In the past decade, we have come a long way from Windows Server 2003 to all the way to Windows Server 2012R2. There has been a sea-change in the overall Operating System as a whole, and we have added/modified a lot of features. One of these is Disk Defragmentation and I am going to talk about it today.

    Do I need Defrag?

    To put this short and simple, defragmentation is a housekeeping job done at the file system level to curtail the constant growth of file system fragmentation. We have come a long way from Windows XP/2003 days when there used to be a GUI for defragmentation and it used to show fragmentation on a volume. Disk fragmentation is a slow and ongoing phenomena which occurs when a file is broken up into pieces to fit on a volume. Since files are constantly being written, deleted and resized, moved from one location to another etc., hence fragmentation is a natural occurrence. When a file is spread out over several locations, it takes longer for a disk to complete a read or a write IO. So, from a disk IO standpoint is defrag necessary for getting a better throughput? For example, when Windows server backup (or even a 3rd party backup solution which uses VSS) is used, it needs a Minimum Differential Area or MinDiffArea to prepare a snapshot. You can query this area using vssadmin list shadowstorage command (For details, read here). The catch is, there needs to be a chunk of contiguous free space without file fragmentation. The minimum requirement regarding the MinDiffArea is mentioned in the article quoted before.

    Q. So, do I need to run defrag on my machine?

    A. You can use a Sysinternal tool Contig.exe to check the fragmentation level before deciding to defrag. The tool is available here. Below is an example of the output which we can get:

    clip_image001

    There are 13,486 fragments in all, so should I be bothered about it? Well, the answer is NO. Why?

    Here you can clearly observe that I have 96GB free space in C: volume, out of which Largest free space block or Largest Contiguous free space blockis approximately 54GB. So, my data is not scattered across the entire disk. In other words, my disk is not getting hammered during a read/write IO operation and running defrag here will be useless.

    Q. Again, coming back to the previous question, is defrag at all necessary?

    A. Well, it depends. We can only justify the need for defrag if it is causing some serious performance issues, else it is not worth the cost. We need to understand that file fragmentation is not always or solely responsible for poor performance. For example, there could be many files on a volume that are fragmented, but are not accessed frequently. The only way someone can tell if they need defrag is to measure their workload to see if fragmentation is causing slower and slower performance over time. If you determine that fragmentation is a problem, then you need to think about how effective it will be to run defrag for an extended period of time or the overall cost in running it. The word cost figuratively means the amount of effort which has gone behind running this task from an Operating System’s standpoint.  In other words, any improvement that you see will be at the cost of defrag running for a period of time and how it might interrupt production workloads. Regarding the situation where you need to run defrag to unblock backup, our prescriptive guidance should be to run defrag if a user encounters this error due to unavailability of contiguous free space. I wouldn’t recommend running defrag on a schedule unless the backups are critical and consistently failing for the same reason.

    A look at Windows Server 2008R2:

    Defragmentation used to run in Windows Server 2008/2008R2 as a weekly once scheduled task. This is how it used to look like:

    clip_image003

    The default options:

    clip_image005

    What changed in Server 2012:

    There have been some major enhancements and modifications in the functionality of defrag in Windows server 2012. The additional parameters which have been added are:

    /D     Perform traditional defrag (this is the default).

    /K     Perform slab consolidation on the specified volumes.

    /L     Perform retrim on the specified volumes.

    /O     Perform the proper optimization for each media type.

    The default scheduled task which used to run in Windows Server 2008R2 was defrag.exe –c which is doing a defragmentation in all volumes. This was again volume specific, which means the physical aspects of the storage (whether it’s a SCSI disk, or a RAID or a thin provisioned LUN etc.) are not taken into consideration. This has significantly changed in Windows server 2012. Here the default scheduled task is defrag.exe –c –h –k which means it is doing a slab consolidation of all the volumes with a normal priority level (default being Low). To explain Slab Consolidation, you need to understand Storage Optimization enhancements in Windows Server 2012 which has been explained in this blog.

    So what does Storage Optimizer do?

    The Storage Optimizer in Windows 8/Server 2012 , also takes care of maintenance activities like compacting data and compaction of file system allocation for enabling capacity reclamation on thinly provisioned disks. This is again platform specific, so if your storage platform supports it, Storage Optimizer will consolidate lightly used ‘slabs’ of storage and release those freed storage ‘slabs’ back to your storage pool for use by other Spaces or LUNs. This activity is done on a periodic basis i.e., without any user intervention and completes the scheduled task provided it is not interrupted by the user. I am not getting into storage spaces and storage pools as this will further lengthen this topic, you can refer TechNet regarding Storage Spaces overviewfor details.

    This is how Storage Optimizer looks like:

    clip_image006

    This is how it looks like after I click Analyze

    clip_image007

    For a thin-provisioned storage, this is how it looks like:

    clip_image008

    The fragmentation percentage showing above is file level fragmentation, NOT to be confused with storage optimization. In other words, if I click on the Optimize option, it will do storage optimization depending on the media type. In Fig 5., you might observe fragmentation on volume E: and F: (I manually created file system fragmentation). If I manually run a defrag.exe –d (Traditional defrag) in addition with the default –o (Perform optimization), they won’t contradict each other as Storage Optimization and Slab Consolidation doesn’t work at a file system level like the traditional defrag used to do. These options actually show their potential in hybrid storage environments consisting of Storage spaces, pools, tiered storage etc. Hence, in brief the default scheduled task for running Defrag in Server 2012 and Server 2012 R2 does not do a traditional defrag job (defragmentation at a file system level) which used to happen in Windows Server 2008/2008R2. To do the traditional defragmentation of these volumes, one needs to run defrag.exe –d and before you do that, ensure that if it will be at all required or not.

    Q. So why did we stop the default file system defragmentation or defrag.exe -d?

    A. Simple, it didn’t justify the cost and effort to run a traditional file system defragmentation as a scheduled task once every week. When we talk about storage solutions having terabytes of data, running a traditional defrag (default file system defragmentation) involves a long time and also affects the server’s overall performance.

    What changed in Server 2012 R2:

    The only addition in Windows Server 2012R2 is the below switch:

    /G     Optimize the storage tiers on the specified volumes.

    Storage Tiers allow for use of SSD and hard drive storage within the same storage pool as a new feature in Windows Server 2012 R2. This new switch allows optimization in a tiered layout. To read more about Tiered Storage and how it is implemented, please refer to these articles:

    Storage Spaces: How to configure Storage Tiers with Windows Server 2012 R2
    http://blogs.technet.com/b/askpfeplat/archive/2013/10/21/storage-spaces-how-to-configure-storage-tiers-with-windows-server-2012-r2.aspx

    What's New in Storage Spaces in Windows Server 2012 R2
    http://technet.microsoft.com/en-us/library/dn387076.aspx

    Summary:

    In brief, we need to keep these things in mind:

    1. The default scheduled task for defrag is as follows:

    Ø Windows Server 2008R2: defrag.exe –c

    Ø Windows Server 2012: defrag.exe –c –h –k

    Ø Windows Server 2012 R2: defrag.exe –c –h –k –g

    On a client machine it will be Windows –c –h –ohowever, if there is a thin provisioned media present, defrag will do slab consolidation as well.

    2. The command line –c –h –k (for 2012) and –c –h –k –g (for 2012R2) for the defrag task will perform storage optimization and slab consolidation on thin provisioned media as well. Different virtualization platforms may report things differently, like Hyper-V shows the Media Type as Thin Provisioned, but VMware shows it as a Hard disk drive. The fragmentation percentage shown in the defrag UI has nothing to do with slab consolidation. It refers to the file fragmentation of the volume.  If you want to address file fragmentation you must run defrag with –d(already mentioned before)

    3. If you are planning to deploy a PowerShell script to achieve the same, the command is simple.

    PS C:\> Optimize-Volume -DriveLetter <drive letter name> -Defrag -Verbose

    Details of all PowerShell cmdlets can be found here.

    That’s all for today, till next time.

    Palash Acharyya
    Support Escalation Engineer
    Microsoft Platforms Support

  • Our UK Windows Directory Services Escalation Team is Hiring – Support Escalation Engineers.

    Hi! Its Linda Taylor here again from the Directory Services Escalation team in the UK. In this post, I want to tell you – We are hiring in the UK!! Would you like to join the UK Escalation Team and work on the most technically challenging and ...read more
  • Adding shortcuts on desktop using Group Policy Preferences in Windows 8 and Windows 8.1

    Hi All! My name is Saurabh Koshta and I am with the Core Team at Microsoft. Currently I work in the client space so supporting all aspects of Windows 8 and Windows 8.1 is my primary role. We very often get calls from customers who are evaluating ...read more
  • RAP as a Service (RaaS) from Microsoft Services Premier Support

    In this post, I’m excited to discuss a new Premier Support offering called Risk Assessment Program (RAP) as a Service (or RaaS for short).

    For those that are not familiar with RAP, it is a Microsoft Services Premier Support offering that helps prevent serious issues from occurring by analyzing the health and risks present in your current environment.

    For example: if you haven’t done a WDRAP (Windows Desktop RAP) and your end-users are suffering slow boot times, slow logon times, slow file copy, hung applications, and applications crashing, it could help! A WDRAP assesses your current environment and recommends changes which improve the Windows user experience.

    Our new RAP as a Service offering helps accelerate the process of diagnosis and reporting, using our RaaS online service.

    Q: So what is Microsoft RAP as a Service (RaaS)?
    A:  RaaS is an evolution of the Risk Assessment Program offering.

    • RaaS is a way of staying healthy, proactively.
    • It’s secure and private.
    • The data is collected remotely.
    • We analyze against best practices established by knowledge obtained from Microsoft IT, and over 20,000 customer assessments.
    • It enables you to view your results immediately.

    You can also take a look at this video describing RAP as a Service:

     

    Microsoft RAP as a Service


    Q:  What are the benefits of RaaS over a RAP?
    A:  The benefits are:

    • Online delivery with a Microsoft accredited engineer.
    • A modern best-practices toolset that allows you to assess your environment at any time and includes ongoing updates for a full year.
    • You get immediate on-line feedback on your environment.  Just run the straightforward toolset and you’ll garner instant insight into your environment.
    • Easily share results with your IT staff and others in your organization.
    • You can reassess your environment to track remediation and improvement progress.
    • Reduced resource overhead requirements.  There’s no need to take your people away from their other work for multiple days, nor do they need to travel to the location where the work is being performed.
    • Better scheduling flexibility.  Due to the agile structure of the RaaS service offering, turnaround times to get a Microsoft accredited engineer to review your environment are much shorter.
    • Better security.  While both offerings are highly secure, RaaS has the added benefit of including no intermediary steps in the assessment process.
    • RaaS includes remediation planning, which helps you understand what’s required to get your environment optimally healthy.
    • A broader toolset that is continually enhanced.   For example, RaaS for Active Directory includes assessment checks that were previously available as two separate service offerings: an Active Directory RAP and Active Directory Upgrade Assessment Health Check.  These are combined in the Active Directory RaaS. RaaS also includes additional new tests such as support for Windows Server 2012.

    Q:  What technologies can be assessed using RaaS?

    … and others coming soon, such as Hyper-V and more.  Please contact your Microsoft Premier Support Technical Account Manager for further info on availability.

    Q:  I can’t wait until the releases of the other technologies!
    A:  In the meantime, you can still request a RAP for those technologies until these are released with RaaS.

    Q:  Is RaaS currently available for non-Premier Support customers?
    A:  Not at this time. To find out more about Premier Support, please visit Microsoft Services Premier Support  

    Q:  Do I use the RaaS service for my environment before or after going into production?
    A:  Both. We highly recommend you test your environment before going live using RaaS.  We also recommend using RaaS after you go in production, because changes between test and production are inevitable.

    Q:  What are the system requirements for a RaaS?
    A:  The Microsoft Download Center has a detailed description of RAP as a Service (RaaS) Prerequisites.

    Q:  How do I schedule a RaaS?
    A:  Talk to your Microsoft Premier Support Technical Account Manager (TAM) or Application Developer Manager (ADM), and they can schedule the RaaS.

    Q:  Where would I go to sign-in for the RaaS?
    A:  You browse to the Microsoft Premier Proactive Assessment Services site and enter your credentials. The packages will be waiting for you to download and start running.

    Q:  I’m in a secure environment; we cannot access external websites.
    A:  It’s alright! We have a portable version for your needs.

    Q:  Does it take a lot of ramp-up time to get familiar with the toolset?
    A:  No, the package is wizard-driven for ease of use.

    Q:  Do I need to have any down time?
    A:  No, the data collection is non-invasive, so no scheduled downtime is required. Collect the data on your own schedule.

    Q:  OK, I collected the data, now what are my next steps?
    A:  Once data collection is complete, you can submit the data privately and securely to the Microsoft Premier Proactive Assessment Services site for analysis.

    Q:  When do I get to see my results?
    A:  We (the accredited Microsoft engineers) will analyze and annotate the report for your specific environment.  Once you receive the report back, we will set up a conference call to go over the findings with your staff.

    Q:  How long is the report available for us?
    A:  The report is available online for twelve months so you can continue remediating any issues/problems.

    Q:  Can I re-run the RaaS toolset?
    A:  Yes, you get to re-collect the data, submit the data again and get the detailed analysis back for a whole year, as a Premier customer.

    Q:  Can I still have Microsoft Premier Field Engineers come on-site?
    A:  Yes, we still have that option available to assist you! Regular RAPs are still available.

    Thank you and I hope you found this useful and something you can take advantage of.

    John Marlin
    Senior Support Escalation Engineer
    Microsoft Global Business Support

  • FREE online event: Virtualizing Your Data Center with Hyper-V and System Center

    Virtualizing Your Data Center with Hyper-V and System Center
    Free online event with live Q&A: http://aka.ms/virtDC
    Wednesday, February 19th from 9am – 5pm PST

    What: Fast-paced live virtual session 
    Cost: Free
    Audience: IT Pro
    Prerequisites: For IT pros new to virtualization or with some experience and looking for best practices.

    If you're new to virtualization, or if you have some experience and want to see the latest R2 features of Windows Server 2012 Hyper-V or Virtual Machine Manager, join us for a day of free online training with live Q&A to get all your questions answered. Learn how to build your infrastructure from the ground up on the Microsoft stack, using System Center to provide powerful management capabilities. Microsoft virtualization experts Symon Perriman and Matt McSpirit (who are also VMware Certified Professionals) demonstrate how you can help your business consolidate workloads and improve server utilization, while reducing costs. Learn the differences between the platforms, and explore how System Center can be used to manage a multi-hypervisor environment, looking at VMware vSphere 5.5 management, monitoring, automation, and migration. Even if you cannot attend the live event, register today anyway and you will get an email once we release the videos for on-demand replay! 

    Topics include:

    • Introduction to Microsoft Virtualization
    • Host Configuration
    • Virtual Machine Clustering and Resiliency
    • Virtual Machine Configuration
    • Virtual Machine Mobility
    • Virtual Machine Replication and Protection
    • Network Virtualization
    • Virtual Machine and Service Templates
    • Private Clouds and User Roles
    • System Center 2012 R2 Data Center
    • Virtualization with the Hybrid Cloud
    • VMware Management, Integration, and Migration

    Register here: http://aka.ms/virtDC

    Also check out the www.MicrosoftVirtualAcademy.com for other free training and live events.

    John Marlin
    Senior Support Escalation Engineer
    Microsoft Global Business Support

  • Top Tips from “Tip of the Day”

    The following links are for the top four tips from the 'Tip of the Day' blog during the month of January.

    http://blogs.technet.com/b/tip_of_the_day/archive/2014/01/25/tip-of-the-day-validating-a-single-disk-in-cluster.aspx

    http://blogs.technet.com/b/tip_of_the_day/archive/2014/01/21/tip-of-the-day-registry-enhancements.aspx

    http://blogs.technet.com/b/tip_of_the_day/archive/2014/01/14/some-hidden-dfsr-improvements.aspx

    http://blogs.technet.com/b/tip_of_the_day/archive/2014/01/17/managed-service-accounts.aspx

    NOTE: Tip of the Day is a random daily tip. The idea behind it harkens back to something I started when I was first hired at Microsoft.  I told myself, "I want to try to learn something new everyday. If I can learn at least one thing today, then I can call the day a success." Tip of the day is my attempt to share the things I pick up alone the way.

    Robert Mitchell
    Senior Support Escalation Engineer
    Microsoft Customer Service & Support

  • How to add a Pass-through disk to a Highly Available Virtual Machine running on a Windows Server 2012 R2 Failover Cluster

    I was recently asked how to add a Pass-through disk to a Highly Available VM running on a Windows Server 2012 R2 Failover Cluster. I tested the steps I was accustomed to for Windows Server 2008 and found the Disk to be in a ReadOnly state in the VM. As it turns out there are differences in how you add the disk and how Cluster refreshes the VM after the disk as added. Below are the steps to do this successfully:

    The first step is to add the disk to Failover Cluster. When you do this the disk will be placed in Available Storage. Note the Disk Number associated with your Pass-through disk for later use.

    image

    After adding the disk to Failover Cluster, assign it to the VM role and ensure that the disk is online. If it is offline when you perform the remaining steps, the disk will be ReadOnly in the VM with no way to fix it but to start over.

    image

    image

    Now that you have the Pass-through disk added to the VM role, all that is left is to modify the VM setting by adding the Pass-through disk to a virtual SCSI adapter. Before doing this you will need to Shut Down the VM and leave the Configuration resource online. Also ensure the disk is online.

    image

    Go to the VM Settings from within Failover Cluster administrator by right clicking on the VM and selecting Settings:

    image

    Click on the SCSI controller, select Hard Drive and then click on Add. You can use the existing SCSI controller the Operating System VHDX is attached too, or add a second one if you like.

    image

    Click the Physical hard disk radio button and from the drop down select the disk that corresponds to the disk you added to the VM role. This is the disk number you noted above. Click ok to complete the change.

    image

    Start the Virtual Machine and you will now have access from within the VM to your Pass-Through disk.

    image

    Here is an abbreviated list of steps if you are familiar with the interfaces and would just like to know what needs to be done so you can go do it.

    1. Add the disk that will be a Pass-through disk to Failover Cluster and assign the disk to the VM role.
    2. Online the disk if it is offline.
    3. Shutdown the Virtual Machine, but leave the Virtual Machine Configuration resource online.
    4. Add the Pass-through disk to the VM configuration. Use the existing SCSI controller or add a second.
    5. Start the Virtual Machine

    Steven Andress
    Sr. Support Escalation Engineer
    Platforms Global Business Support

  • Certificate Requirements for Windows 2008 R2 and Windows 2012 Remote Desktop Services

    Good morning AskPerf!  Kiran here with a question for you:  Why do we need certificates?  Well, certificates are used to sign the communication between two machines.  When a client connects to a server, the identity of the server that is receiving the connection and in turn, information from the client, is validated using certificates.

    This is done to prevent possible man-in-the-middle attacks.  When a communication channel is setup between the client and the server, the authority that issues/generates the certificate is vouching for the server to be authentic.

    So, as long as the client trusts the server it is communicating with, the data being sent to and from the server is considered secure.  This brings me to the next question:

    What type of certificate is required for RDS?

    The following blog contains information regarding the type of certificates and how you can create them using the Internal CA of the domain.

    http://blogs.msdn.com/b/rds/archive/2010/04/09/configuring-remote-desktop-certificates.aspx

    Basic requirements for Remote Desktop certificates:

    1. The certificate is installed into computer’s “Personal” certificate store.
    2. The certificate has a corresponding private key.
    3. The "Enhanced Key Usage" extension has a value of either "Server Authentication" or "Remote Desktop Authentication" (1.3.6.1.4.1.311.54.1.2). Certificates with no "Enhanced Key Usage" extension can be used as well.

    As the function it performs suggests, we need a ‘Server Authentication’ certificate.  This certificate can be generated using the ‘Workstation Authentication’ template (if required).

    Here is the exact process: 

    1. Open CERTSRV.MSC and configure certificates.
    2. Open Certification Authority.
    3. In the details pane, expand the instructor computer name.
    4. Right-click Certificate Templates and select Manage. Right-click Workstation Authentication and click Duplicate Template.
    5. On the General tab, change the Template display name to Client-Server Authentication and check Publish certificate in Active Directory.
    6. On the Extensions tab, click Application Policies then Edit. Click Add then select Server Authentication. Click OK until you return to the Properties of New Template dialog.
    7. Click the Security tab. For Domain Computers, click the checkbox to ‘Allow Autoenroll’. Click OK. Close the Certificate Templates Console.
    8. In the certsrv snap-in, right-click Certificate Templates and select New then Certificate Template to Issue.
    9. Select Client-Server Authentication and then click OK.

    This will be visible when viewing the certificate in the ‘Certificates’ MMC snap-in, as below:

    clip_image002

    When you open the certificate, the ‘General’ tab will also contain the purpose of this certificate to be ‘Server Authentication’ as seen below:

    clip_image003

    Another way to validate this, would be to go to the ‘Details’ section of the certificate and look at the ‘Enhanced Key Usage’ property:

    clip_image004

    The easiest way to get a certificate, if you control the client machines that will be connecting, is to use Active Directory Certificate Services.  You can request and deploy your own certificates and they will be trusted by every machine in the domain. 

    If you're going to allow users to connect externally and they will not be part of your domain, you would need to deploy certificates from a public CA.  Examples including, but not limited to: GoDaddy, Verisign, Entrust, Thawte, DigiCert

    Now that you know what type of certificate you need, let’s talk about the contents of the certificate.

    In Windows 2008/2008 R2, you connect to the farm name, which as per DNS round robin, gets first directed to the redirector, next to the connection broker and finally to the server that will host your session.

    In Windows 2012, you connect to the Connection Broker and it routes you to the collection by using the collection name. 

    The certificates you deploy need to have a subject name or subject alternate name that matches the name of the server that the user is connecting to.  So for example, for Publishing, the certificate needs to contain the names of all of the RDSH servers in the collection.  The certificate for RDWeb needs to contain the FQDN of the URL, based on the name the users connect to.  If you have users connecting externally, this needs to be an external name (needs to match what they connect to).  If you have users connecting internally to RDweb, the name needs to match the internal name.  For Single Sign On, again the subject name needs to match the servers in the collection.

    For our example, let’s consider my RDS deployment to contain the following machines:

    RDSH1.RENDER.COM                 Session Host with Remote Apps configured

    RDSH2.RENDER.COM                 Session Host with Remote Apps configured

    RDVH1.RENDER.COM                Virtualization host with VDI VMs configured

    RDVH2.RENDER.COM                Virtualization host with VDI VMs configured

    RDCB.RENDER.COM                   Connection Broker

    RDWEB.RENDER.COM               RDWeb and Gateway server

    When my client connects internally, he will enter the FQDN of the server that hosts the web page, i.e,: RDWEB.RENDER.COM.

    The name of the certificate needs to be this name, of the URL that the user will initiate the connection to.  But we need to remember that the connection does not just end here.  The connection then flows from the web server to one of the session hosts or virtualization hosts and also the connection broker.

    The certificate can be common on all of these servers.  This is why we recommend that the Subject Alternate Name of the certificate contain the names of all the other servers that are part of the deployment.

    In short, the certificate for my environment would be as follows:

    Type: Server Authentication

    Name: RDWEB.RENDER.COM

    SAN: RDSH1.RENDER.COM; RDSH2.RENDER.COM; RDVH1.RENDER.COM; RDVH2.RENDER.COM; RDCB.RENDER.COM  

    This is all you need as long as you have 5 or less servers in the deployment. But we have a problem when we have more servers in the deployment. This is because, by design, the SAN (Subject Alternate Name) on a certificate, can only contain 5 server names. If you have more of them, you will have to get a wildcard certificate issued to cover all the servers in the deployment. Here my certificate changes as follows:

    Type: Server Authentication

    Name: RDWEB.RENDER.COM

    SAN: *.RENDER.COM

    We still do encounter some challenges when it comes to the following scenario. Note, that this is true only when you have external users that access the deployment.

    External name: RDWEB.RENDER.com

    Internal Name: RDWEB.RENDER.local

    Here, if you get a certificate with RDWEB.RENDER.COM in the name, the certificate errors still do appear.  This is because the certificate is supposed to validate a server with the FQDN: ‘RDWEB.RENDER.COM’.  However, your server is ‘RDWEB.RENDER.LOCAL’ and the ‘.com’ to ‘.local’ magic only happens at your public firewall/router using port forwarding (most common scenario).

    In such scenarios, we previously recommended that the name on the certificate contains the ‘.com’ name and the SAN contains the ‘.local’ name.

    Recently, all public certificate providers are stopping issuing certificates with ‘.LOCAL’ in them. Starting with Windows 8 and Windows Server 2012, we no longer need the external and internal names to be contained in the certificate.

    In scenarios where you have external clients connecting in and you have a private internal domain suffix (DOMAIN.LOCAL), you can get a certificate from a Public CA with the external (RDWEB.DOMAIN.COM) name and bind it to the RD Web Access and RD Gateway roles, because these are the only roles that are exposed to the internet.  For RD Connection Broker – Publishing and RD Connection Broker – Enable Single Sign On, you can make use of an internal certificate with the ‘DOMAIN.LOCAL’ name on it.  This however, as mentioned earlier, will only work with clients connecting through RDC 8.0 or above.

    The RD Gateway and Remote Desktop Client version 8.0 (and above) provides the external users with a secure connection to the deployment. Once connected to the deployment, the internal certificate with the ‘.local’ name will take care of Remote App signing (publishing) and Single Sign-On.

    Now, lets look at where we configure the certificate we have:

    Open the Server Manager on the Connection Broker server and Click on Remote Desktop Services in the left-most pane.

    Once here, you will see your deployment shown as in the illustration below. Click on Tasks and select “Edit Deployment Properties”

    clip_image005

    This will bring up the property sheet of the deployment. Select the Certificates option in the left pane:

    clip_image006

    Now, as discussed earlier, you can select the certificate that was created using the ‘Select Existing Certificate’ button on the bottom of the screen.

    Just point it to the ‘.pfx’ file and allow it to import the certificate for the role.

    You can use a single certificate for all the roles, if your clients are internal to the domain only, by generating a simple wildcard certificate (*.RENDER.LOCAL) and binding it to all the roles.

    Note, that even if you have multiple servers that are part of this deployment, the Server Manager will import the certificate to all the servers in the deployment, place them in the trusted root of the machines and bind them to the respective roles.

    -Kiran Kadaba

  • The case of “Above normal” priority

    Good morning AskPerf!  If you’ve used Task Manager, you may have noticed that it allows setting an “instance-based priority”.  This is an option where you can choose to boost or reduce the priority of any process, whereby adjusting the amount of CPU attention the process receives.  But honestly, how many times have you used this feature for any business apps on your Workstations or Servers?  The answer is probably not much.  The default CPU scheduling algorithm is adequately designed to distribute CPU among running processes in most scenarios.

    So recently, one of our customers reported the following anomaly they saw in Task Manager:

    clip_image001

    About 70% of the running processes would launch as Normal, and within few seconds the priority would change to Above normal automatically.  This would happen for many arbitrary processes, and would not allow a fair CPU scheduling for LOB applications.

    So how do you drill it down?  Well, we need to check some basic settings first.  Any process on Windows platform can have one of the following priorities at a given time:

    • Realtime
    • High
    • Above normal
    • Normal
    • Below normal
    • Low

    clip_image002

    Per MSDN these priorities correspond to following classes:

    • IDLE_PRIORITY_CLASS
    • BELOW_NORMAL_PRIORITY_CLASS
    • NORMAL_PRIORITY_CLASS
    • ABOVE_NORMAL_PRIORITY_CLASS
    • HIGH_PRIORITY_CLASS
    • REALTIME_PRIORITY_CLASS

    A process always launches with its Base Priority (default) – which can be decided by the app developer – else will inherit to default NORMAL_PRIORITY_CLASS.

    If you are a developer, to adjust your process’ priority from Base Priority (to newer priority), you can use the SetPriorityClass function.  That is exactly what happens for a running process’s instance when you opt to adjust its priority from Task Manager.  So we followed that route and begin investigating who is calling this SetPriorityClass() function on affected machine.  We used our best friend XPERF (rather WPR, the latest version of it) with stackwalk enabled.

    Steps:

    1. Start WPR
    2. Launch a process (say, notepad.exe)
    3. Wait for few seconds till the priority gets raised from “Normal” to “Above normal”
    4. Stop WPR capture
    5. Load the output ETL file in WPA (Windows Performance Analyzer, tool that comes with WPR installation)

    In WPA, we focused on the stack flow for the process in question (notepad.exe in our example), and found below the stack where we see wsrm.exe calling SetPriorityClass() function. You can see this stack using just our public symbols (path: http://msdl.microsoft.com/download/symbols).

    Line #

    Process

    Stack

    Weight

    All Count

    28

     

    |    |    |- wsrm.exe!CCPUManager::UpdatePriorities

    4.891726

    5

    29

     

    |    |    |    wsrm.exe!CCPUManager::UpdatePriorities

    4.891726

    5

    30

     

    |    |    |    wsrm.exe!CCPUManager::UpdatePriorities

    4.891726

    5

    31

     

    |    |    |    |- wsrm.exe!CProcess::SetPriorityClass

    4.058269

    4

    32

     

    |    |    |    |    KernelBase.dll!SetPriorityClass

    4.058269

    4

    From screenshot of Windows Performance Analyzer:

    clip_image003

    So now we know what is causing the priorities to be bumped up, but why?

    Windows Server Resource Manager (wsrm.exe) is a great tool to manage server processor and memory usage with standard or custom resource policies.  If you find yourself in a similar situation, chances are that you need to review the WSRM configuration and policies in your environment.  Or, you can simply disable WSRM if you are not using it.  This blog discusses more about WSRM policies and configuration.

    Additional Resources

    Scheduling Priorities

    -Deepak

    BONUS: Task Scheduler launches tasks by default in Below normal priority.  To change the priority of a task, you would have to edit its xml file (<Priority>7</Priority>), and re-import it.  More info:  TaskSettings.Priority property

  • Windows 8.1 preview build reboots every 2 hours

    Today’s blog is regarding the expiration of the Windows 8.1 preview build which occurred yesterday January 15th, 2014.  If you installed the Windows 8.1 preview build and have not upgraded to 8.1 RTM you may notice that your machine is rebooting itself every 2 hours and you should also be getting the following notification when you login

    clip_image001

    For more information on this and how to update to the final RTM build take a look at the following page: 

    Update from Windows 8.1 Preview to Windows 8.1
    http://windows.microsoft.com/en-us/windows-8/update-from-preview

    Scott McArthur
    Senior Support Escalation Engineer